The new curriculum and web science

There have been many arguments over the new computing curriculum. The more I look at it, the more concerned I am that it appears narrowly focused on programming, whereas computing can involve so much more.

One case in point is the course I’m currently studying at FutureLearn, the Open University’s contribution to the MOOCs (massively open online courses) currently sweeping the web. This particular course, sponsored by Southampton University, is called Web Science: how the web is changing the world. It looks at the effects the world wide web is having on society, and how we have influenced the web.

The topics it covers are ones that are important to understand, and that I spent time in the classroom trying to get across – that technology is new, but pervasive, and affects our lives in more ways than we can imagine. In fact, the same topic is covered in a book I’m currently reading in order to review: Digitized: The Science of Computers and how it shapes our World.

If children are truly to understand the importance of coding, and to be able to express themselves effectively using digital media, then they also need to understand the deeper concepts of computing, for example how it can help us to build a better world, and to better understand our own minds.

I’ve been quiet lately on here lately, as I left my teaching post in July. After a break away from classroom technology and learning for a bit, I’m getting restless and I’m starting to look for ways that I can help schools make the move forward from office-based computer skills to real computer skills. If anyone has any suggestions – or anyone in the Canterbury, UK area (or online) would like practical help – then please do get in touch. I will be resuming my quest to produce teaching materials in January, but not being in a classroom regularly makes it harder to keep up with the practical side of things.

Incidentally, there’s another MOOC coming up that ICT teachers really should be seeking out: Teaching Computing part 1 (part 2 to follow) from the University of East Anglia, which aims to prepare teachers to teach the new computing curriculum in both primary and secondary sectors. The course lasts for 4 weeks and is expected to take up around 4 hours per week, but of course anyone seeking to teach computing should be prepared to devote time to it – my biggest fear is that computing will go the way of ICT, with too many non-specialists stumbling through and not giving the subject the rigour that it deserves.

 

Advertisements

Gamemaker and GCSE

gamemaker environment

Gamemaker environment, with list of assets on the left and a room displayed

One piece of software that I’ve enjoyed playing with is Gamemaker. This is a 2d games engine, reasonably easy to use, that can produce games to be uploaded to the website or given to friends as a stand-alone executable file. Gamemaker Studio is the latest version, and is available in a feature-limited free version, an academic version or full professional version. Note that I’ve changed the skin – I find the new default skin (appearance) of the Gamemaker environment very hard on the eyes, and the monochrome effect makes it harder to identify the different icons (You can’t say the blue or the red circle when every single button is in green or grey!).

Gamemaker is a step between Gamestar Mechanic and Scratch or Greenfoot: it is mostly drag and drop elements with settings, rather than scripting (although there is a scripting option) but with more flexibility than Gamestar Mechanic – the interplay of the objects is completely within the creator’s grasp, and there is the full ability to add your own assets: graphics, sound etc.

While Gamemaker serves well as an introduction to programming concepts, it is not a programming environment; rather it is a tool to introduce logical thinking and game making skills.

Using Gamemaker

The Gamemaker environment consists of a list of assets: sounds, background images, sprites, objects, rooms etc. Note that here a sprite is a graphic file, while an object is something that can be added to the game, whereas in Scratch the costume is the graphic and the sprite is the thing that can be added. Each room is one screen (e.g. level selector, start/finish screen), or one game level.

The man object, showing the Event/action interface

The man object, showing the Event/action interface

The basic syntax of Gamemaker is Event -> Action; When this happens, Do this. The creator chooses an event that may happen, e.g. When colliding with… When keyboard <X> pressed… When No more lives left… and then orders the actions that should take place as a result. In this example, the man is designed to move in a maze. He should respond to key presses by moving in the appropriate direction, and should not move when he hits a wall or when no key is pressed.

The direction can be seen/set by double-clicking on the Move in Direction button.

A game can be built up by creating more and more objects, setting their behaviours appropriately and adding them to the game room.

One way to introduce Gamemaker is with a set type of game with recipe cards for extra objects to add in order to increase complexity. Lower ability children can follow the recipes exactly while more able children can start to experiment with settings, and as they gain experience in different types of games they will naturally mix and match.

I find the easiest way to start students on Gamemaker is to start with a maze game. The first objects needed are an avatar and a block to act as the walls. Once the objects are created correctly it is a simple matter to add to them to a room to  create a maze to explore. Then extra objects can be added easily, such as coins to pick up, a door to move to a next level and a bomb or moving enemy. This works especially well as the first step up from Gamestar Mechanic, as the principles of the game/level design should already be understood. With lower ability students, I have created the basics of the game so that they start with something very similar to Gamestar Mechanic, and once they have created the object to move to a new level they work independently on level design while waiting for support to create further objects.

Strengths of Gamemaker

Where Gamemaker excels over Scratch is its built-in facilities to handle things like lives. As it is purpose-built for games, commands already exist to deal with such common features, and it is as simple as saying Event: No more Lives -> Action: Restart game. The game will then finish automatically and restart.

Games such as platform games need a lot more thought, and many objects will stretch children’s ability to work through logically, although features like the built-in gravity property of objects help considerably. Children with low ability/experience will still have high expectations, and so balancing what they want to be able to do with what they can actually achieve by themselves can be a challenge. On the other hand, some children really take to Gamemaker and quite happily explore options by themselves and there are teaching materials available if you look around (some on my site). There are two very good books, The Gamemaker’s Apprentice and The Gamemaker’s Companion, but these are fairly technical and require a good level of ability in order to access them. They are also written for earlier versions of Gamemaker, so might require some checking/adjustment.

Using Gamemaker for coursework/assessment

I looked into using Gamemaker for GCSE and similar qualifications, and found mixed results: OCR GCSE ICT contains a unit on creative use of ICT, for which the solution can be a multimedia presentation, multimedia web pages or a computer game, so using Gamemaker would be a valid way of fulfilling the unit. Other GCSEs did not appear to have that facility, however. Edexcel offers a single and double award ICT, for which the double award contains a unit comparable with the Creative Use of ICT in OCR; information on the types of tasks covered is limited, but the Examiner’s Report suggests that the expectation for a game-based solution would be a scoring system, rules to play/win, single player or turn taking and the ability to include user-created assets, so that would suggest Gamemaker is indeed a viable option.

Other exam boards appear to focus on business use of ICT or traditional multimedia such as web pages or presentations. Even BTEC ICT overlooks game making as a valid use of multimedia, focusing instead on graphics, animation, video, sound or programming.

Gamestar Mechanic and the new computing curriculum

learn to design video games with gamestar mechanicOne resource I was pleased to come across was Gamestar Mechanic. This is a purely web-based resource that teaches elements of game design. It’s aimed at 4-9th graders (I make that 9-14 year olds) and offers them a chance to move from playing games through fixing games to making and sharing their own. Of the many resources I’ve used with key stage 3, it’s the one I see consistently used voluntarily by the students outside of formal lessons. As we’re partway through our year 7 computing unit, which so far has looked at Scratch, I thought I’d take a closer look at GSM and see exactly what offers in terms of learning and how it fits in with the new computer-orientated curriculum.

One feature that makes GSM easy to use in class is that the registration system does not require an email address. It does, however, have a system to recover passwords that depends on students being able to remember a username and sequence of favourite colour, subject and animal, which isn’t ideal (it can change from attempt to attempt, let alone lesson to lesson!) so this time round I intend to make students make a note of their user name and passwords somewhere secure. They can use any nickname as their user name as long as it’s not already taken, but often it’s easier to tell them to use their school log-on names and passwords rather than spend hours trying to think of something suitable.

Once registered, the student is presented with a quest to work through. There is one quest available free, while others are available for those with premium membership ($19.95 for premium membership, and it may well be that students are interested enough to get their parents to pay for it, but free membership is plenty for school use).

There are two other areas of the site that will also interest users: in the workshop they can create their own games, while in Game Alley they can publish their games and try out those made by others, but more of those later.

episode 1 screen

Episode 1 screen

There are teaching materials provided by the website to serve as an introduction to the site, in the form of five lessons. Lesson 1 works through episodes 1 and 2 of the quest and then provides an opportunity to reflect on learning so far. The resources provided for lesson 1 are a set of cards that can be printed and used for matching – one set provides images of various concepts, while the other set provides names and explanations of those concepts, which are grouped into mechanics, space and components. For example, under the space group you will find bounded and unbounded space, under components you will find health meter and avatar, and under mechanics you will find collecting mechanic and exploring mechanic. This will give the students a whole collection of key terms and concepts to build the rest of the unit on, but I wonder just how many they will be able to take in and remember. The suggestion is that in small groups they work to pair up concepts and images and then everyone goes through the answers. I’m considering giving them worksheets with the concepts on and the cards with the names on, so they can fill in their worksheets and keep them for reference.

Lesson 2 introduces the core design elements, which are defined as space, components, rules, mechanics and goals. Episodes 3 and 4 of the quest provide a chance to investigate ways of changing each of these and showing the effect on the games. The resource provided for this lesson is a graphic to serve as a reminder of the core design elements.

Lesson 3 looks at balance, investigating how the different core design elements balance a game to achieve the right level of difficulty. This focuses on episode 5 and then gives students the first opportunity to build their own game. This ability is there right from the beginning, by the way, via the workshop, but each challenge the player completes in the episodes unlocks another feature they may use, either a different sprite, different background or something similar, so the further through the quest they get the more they have to use in their own games.

gamestar mechanic game creation screen

Games design screen

Lesson 4 gets the students to design their own game, and offers challenge cards for different themed games should you wish to use them.

Lesson 5 encourages students to play-test each other’s games and give feedback via the sheet provided. This guides them into answering questions like “What were the core mechanics of the game?” “how well was this game balanced?” and “how could this game be improved?”.

So far so good, but what got me really thinking was when I started looking at the new computing curriculum and how Gamestar Mechanic might be considered to fit into it, because that was when I struggled to find anything in there that would link easily to games design. While games design is only a small part of what computing offers, at the age of these students it’s their most immediate attraction and links in most closely with what they already enjoy doing, so whether it fits into the computing curriculum or not,  I feel it has a lot to offer.

One aspect of the computing curriculum is to use two or more programming languages. Does this provide a programming language? Well no not really, but it does provide objects that have attributes. By changing those attributes the student interacts with elements of the game and causes changes. While this does not count as a programming language, I would certainly argue that it is an important step towards moving into object oriented programming in systems such as Greenfoot, by providing a way to play with parameters and settings in a very controlled and accessible way.

Object oriented programming gets no mention in the computing curriculum, which is a shame. I’m starting to get the impression that it was written without the needs of children in mind; I can’t imagine too many children being excited at learning sorting algorithms, but give them a chance to learn games programming and they’ll be much more engaged (I know that object oriented programming and games design are not the same, but the latter provides a very good way into the former). What they learn via games design can then be applied more widely as they develop their skills.

game alley screen

Game Alley – published games

What about the creative element of the computing curriculum? Undertake creative projects that involve selecting, using and combining multiple applications … to achieve challenging goals… well it’s selecting, using and combining multiple elements and experimenting to see how they work together in order to achieve a playable game, does that count? It’s not really multiple applications, although it is multiple elements, which can include sound. What students can’t do with this, as far as I can see, is design their own elements. I’ll be taking a look at Gamemaker very soon, which is a natural successor to Gamestar Mechanic and does offer this facility.

Create, reuse, revise and repurpose digital information and content with attention to design, intellectual property and audience – well it’s doing some of that, not intellectual property maybe, but attention to design and audience, and combining the elements in a suitable way, particularly if you use the challenge cards to set a specific purpose or setting for the game.

Maybe Key Stage 2 would fit it better? After all, if the students haven’t been through computing at key stage 2 there’ll be some need for overlap for a year or few. Here we have solve problems by decomposing them into smaller parts, use sequence, selection and repetition in programs; work with variables and various forms of input and output, use logical reasoning… I would argue that it covers all those, although maybe not in the way those who created the curriculum were expecting them to be covered.

What it does do is provide a common language and set of concepts for games design that can then be developed further in many directions, so that students can move on to programming their own objects while already aware of concepts like level design, object interaction, responding to events and parameters.

Key stage 4? Here we fare much better.  It should provide a chance to develop their capability, creativity and knowledge in computer science, digital media and information technology and to develop and apply their analytic, problem-solving, design and computational thinking skills, all of which I would say it does. Considering the restrictions on it, however, I would suggest that GSM would need to be used as a springboard to Gamemaker, Greenfoot or Scratch, all of which are much more versatile and provide more opportunity to incorporate a wide variety of imported assets. It does, however, have the advantage of allowing students to focus on the game design elements and how they interact without worrying too much about how they create them, so they are not trying to learn everything at the same time.

So strangely, this seems to fit in far better with the older key stage than with the younger ones (although, of course, the key stage 4 curriculum was deliberately left very vague in order to fit in with the many ICT and computing qualification courses already available).

profile page showing badges earned

Each games designer earns badges as they learn

Looking at the old ICT levels, Gamestar Mechanic seems to fit in much better: strand 1 covers planning, developing and evaluating systems, using feedback to develop work, strand 2 covers creating sequences of instructions and changing variables and explaining the impact, and strand 3 covers presenting information in a range of forms for specific purposes and audiences.

In summary, while GSM doesn’t completely seem to fit the new computing curriculum, it does seem to have a lot to offer as an introduction to game making, and as part of a larger unit or with explicit teaching on various aspects such as changing parameters and looking at audience and purpose, it does have a place in either late key stage 2 or early key stage 3 learning. More importantly, I would argue, it engages students and keeps them coming back for more, and shows them the satisfaction of creating their own games for others to play and comment on. Any frustration they eventually feel at the limitations of games created through this method can then be directed into Scratch etc, where they have much more control but need to create the behaviours themselves.

game review screen - players encouraged to fill in detailed responses

Game review screen

And that reminds me of another aspect that appears to be missing from the new computing curriculum: there is no mention of collaboration in there, of working together as a team to achieve a common goal and of supporting each other in their learning. This was present in the old system (use ICT to communicate and collaborate) and would appear to be a vital digital literacy skill, considering the extent to which young people use ICT to share ideas in the real world. In Gamestar Mechanic they have a chance to do this by writing reviews for games.

Still, until the new computing curriculum is confirmed and we have more concrete information about what it entails and how to deliver it I’m happy that my students will indeed experience the games design fun of gamestar mechanic.

 

 

BBC Basic

In my look at different languages for use in GCSE computing, I never even considered BBC Basic*, so it was a surprise to discover that it’s the language used in examples given out by OCR and the language used in a new coursebook.

BBC Basic was one of the original languages used in schools, on the BBC Micro.  Back in those days, as I recall, all users learned a form of BASIC – I myself learned Sinclair Basic, on the ZX81.  At that point, each line of code needed a line number, and it was possible to jump from one line of code to another using a command called GOTO, which could result in code that could be hard to read.

password checker in BBC Basic (from OCR)

password checker in BBC Basic

Now it seems that BBC Basic has been updated into a version for Windows.  There is a free version available for evaluation purposes, which limits the size of programs and prevents you producing a stand-alone version of the code.  A paid-for licence is available to lift these restrictions.

My concern is that I cannot understand why this language would be a language of choice for teaching computing.  It’s described as easy for beginners to learn, and it’s based on a language that may be familiar to those who learned their programming a couple of decades ago, but I can see no inherent benefit in using a language that’s purely for teaching and not used in any professional developments, as far as I’ve been able to find out.

I’ve tried hard to show an interest in this language, really I have.  I don’t know whether I have some deep-seated aversion to Basic, but to me this looks clumsy and hard to read, and there seem to be other languages that are free, used professionally and are far easier to read and understand at a glance than this one.  There seems to be no hook to say that BBC Basic is better because…, just the feeling that BBC Basic was the original teaching language so it should still be used.

password checker in Python

password checker in Python

Am I missing something?  Is there some aspect of BBC Basic that makes it better than Python or Java to use?  Because I’m disappointed that OCR have chosen to release their sample code in this one language rather than provide a selection of examples.  The justification given in the book for using the language is that BBC Basic is very close to pseudocode, but I don’t see that it’s any closer than other languages, and I’m left with a feeling similar to one I felt when I originally learnt Basic – that it’s all very well, but it’s not a proper language that is actually used to create real projects.

Feel free to correct me, but this feels to me like something that is being pushed for nostalgic purposes rather than because it’s a good tool for the job. Or am I just carrying over my old teenage prejudices, with all the frustration of trying to write fast, playable games with a tool that was just too slow to work that way?

PS: Originally BASIC was always given in capitals, as an acronym for Beginners’ All Symbolic Instruction Code, but these days it seems to be adopted as just Basic. 

Indecision

It’s getting to the point where I need to make a decision how I’m going to proceed in  September.  I think it’s fairly straightforward to declare that I intend to use Scratch/BYOB to introduce various programming topics, as it’s straightforward to put the code together and the user can focus on structure without worrying too much about typos, syntax etc.

Then I feel I need to move onto a “proper” typed up language, and that’s where I hit the problem.

So far this summer I’ve been dabbling in all sorts of things.  I’ve tried Small Basic, Python and Java mainly, Java being both through Greenfoot and Processing.

Small Basic concerns me because I discovered that it seems to overthink – when I tried adding strings together, because each string consisted of what it recognised as integers, it added them as integers.  I wonder what else it has up its sleeves, and I also feel concerned about teaching a Microsoft-specific language.

Python seems much more straightforward, and I like the way you can work quickly and easily from the command line as well as writing programs.  Getting a basic program up and running is really fast and simple.  There’s no fuss about declaring the type of variables and no worry about semi colons.  Instead, the fuss is moved to layout, and spaces/tabs.  There’s also the issue, though, of Python 2 v Python 3.   This seems to be a matter of preference, but some of my resources are for 2 and some for 3.  This isn’t necessarily a drawback; if I finish working through the resources for version 2, I should know enough to adapt the version 3 resources if necessary, but I’d like to stick to 2 for now because it’s what I’m using in the Udacity courses and with Google App Engine.  It also seems a very viable language to move forward with in either version.

Java has a wonderful tool in the form of Greenfoot, and Processing is another tool using Java as its base that is really quick and easy to start working with.  My reservation with Java comes in the form of not being so easy to work with straightforward input/output.  That’s possibly because I lack recent experience with it: I know I can use tools like Eclipse to write simple programs, but I find it horribly complex and would not like to introduce students to it as a learning tool when they first start programming!

Of the other tools, MIT App Inventor looks wonderful to use, and I would love to use it with key stage 3 who have already worked with Scratch, but again it’s graphic-based and I’m not sure how I would use it for the OCR GCSE computing tasks, which seem in the main heavily console based.  I don’t like the way I’m having to choose tools that are suitable for the assessment rather than tools that are best for learning, but maybe that’s something that will change as the qualification matures and newer assessments are added in.

So in summary, it looks like I need to consider Python 2 as first choice, while continuing to work through Greenfoot and Processing as these are my two favourite options.  As I’ll be using Scratch/BYOB at the start, while ensuring that other software is available on the school system, there is still flexibility for a while longer, and I would like to continue working in both Python and Java for my own purposes anyway.

The bottom line is that the real challenge when programming is knowing the structures to be used and how to use them efficiently, and in the end the choice of language matters little.  The main issue is to be able to form correct syntax and layout for the language.  As with everything, what you say is vital; the form you choose to say it in is less important.

 

Using my skills

It strikes me that on the one hand the way to get better at anything is to practise, and on the other hand there’s little point in having a skill if you’re not going to use it.

So I hereby vow that I’ll be looking for ways to use my ICT and programming skills to develop resources and show what can be done.

I have made an animation about the intranet/extranet/internet, and I use extended facilities in our school Moodle system wherever I can.  I’ve also made screen capture videos explaining how to do various things related to games creation and web design (I like your videos Miss but I have to keep watching them over and over and keep stopping them! Me: that’s the point of them).  Now it’s time to step up and really start seeking out ways to use and develop my skills and resources.

One thing that I intend to do is to create a seat planning tool.  In my classroom I’m lucky enough to have computers round the edge of the room plus tables in the main area, so each seating plan I create has to have two related spaces for each child – I try to keep the place at the table related to the position of the computer they use.  So a plan where I drag a name to a place at the tables and their computer place is automatically labelled too would be useful.

There are many topics where detailed written, well laid out step by step instructions would go well side-by-side with tutorial videos, so students can choose their preferred way of working.

I’m sure there are many topics suited to a multimedia, multi-pathway approach of presentation (yes, the dreaded OCR Nat unit 4, but in something other than a simple powerpoint, hopefully!).

I’m also sure that there are many other possibilities I haven’t even thought of yet.

Getting the students used to seeing high quality resources and knowing they were created by someone they know should be a good step towards inspiring them to see what can be done and that the gulf between creators and users doesn’t have to be as massive as it is currently.

Any other suggestions for projects more than welcome!

 

Online learning – MOOCs

There are many ways to learn: attend college or university, try to teach yourself from a book or videos, and now a new way – MOOCs – massive open online courses.  These are very new to the scene, but many of the big universities are quickly picking up on the idea.   I’m currently enrolled in courses from two different providers, Udacity and Coursera.  Both provide their learning through videos and online questions with instant feedback, plus quizzes or other work to be completed independently and assessed (assessment is done either automatically or via peer assessment).

Udacity offers, among others,  CS101 introduction to computer science,  which is a basic introduction to programming via Python.  This course not only offers a good grounding in programming, but also does it via building a search engine, thus showing some of the secrets behind google; one of the first tasks you do is build your own web crawler to collect links.

Coursera offers Internet history, security and technology, which shows how computing and the internet developed and some of the issues involved, a course which requires no technical skills and is recommended for anyone who uses the internet regularly.

I do recommend you check these out: each course has thousands of students from around the world enrolled and learning, and the forums tend to be very supportive places.  If you keep up and complete the materials by the deadlines a certificate is usually offered, which is good to show what you have done but probably holds no actual merit; the main benefit is in the learning itself.

There are examples on the websites of students who have gained jobs following their studies and some impressive projects that students have built, and udacity is starting to offer formal tests of their learning in the on-line learning centres around the world.

One word of warning though: they do involve proper learning, and you will get the best out of them if you take them seriously and set aside time each week to work through the materials and attempt the tasks.