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.

More on BBC Basic

Since my previous post about BBC Basic I’ve been prompted into looking into the topic further, and it appears the language might have something going for it after all – it’s very similar to the pseudocode used by OCR, and OCR seems to be supporting it, as they have provided training materials using BBC Basic to illustrate solutions.

One problem the language does seem to have is a lack of materials available, so I decided to have a go at remedying that, and have produced a KS3 workbook, similar to my Python workbook, which provides guidance into the first few steps of programming – input, output, variables, IF statements and loops – using BBC Basic, including simple exercises. My intention is that the booklet provides enough information for the more able students to progress by themselves, while others will benefit from extra guidance from their teacher.

I myself missed out on BBC Basic, as by the time it was introduced in schools I was at the top end and about to leave, but I did start off with Sinclair Basic, which was very similar. I do miss the old days of line numbering, but I have to admit that these days it’s far easier! If there is a generation of teachers out there who need to learn how to teach computing in a hurry and they’re already familiar with – or even just have a passing acquaintance with – BBC Basic, then capitalising on that would seem to be a viable way forward.

I intend to look further still into BBC Basic and pseudocode, as students are expected to understand pseudocode anyway for OCR GCSE Computing, and being able to write programs in pseudocode that translate directly into executable code would be useful, but I do feel that there needs to be some sort of introduction to another language as well. Watch this space for more news on training materials.

I remember reading once (a long time ago, admittedly!) that universities don’t want students who have already learned a programming language because they get confused when learning a second, but on the other hand those who already have experience in two find it far easier to learn a third. I myself have found that it’s the thinking and planning skills that are vital – once you understand exactly what you are trying to do, finding the exact syntax in the language of your choice becomes the easy bit. It’s like learning to drive a car: when you first learn, you’re bothered by every small difference in another car – the side the indicator is on, the biting point of the clutch – but once you gain more experience you’re aware of the differences and can work better with the similarities. In the end it doesn’t matter what sort of car you learn to drive in, as long as your skills and knowledge can be easily transferred to any car.

Hopscotch – programming on iPad

Hopscotch's interface with code blocks on the left and coding area on the right

Hopscotch looks similar to Scratch in many ways

I’m always on the look-out for interesting ways to introduce children to programming, and recently I came across Hopscotch, a free iPad app.

At first glance, Hopscotch looks very much like Scratch, but it is much simpler, while making full use of the interface possibilities of an iPad.

Blocks available to use are limited to

  • motion: move, rotate, set heading, change x by, change y by, set speed
  • lines: leave a trail… end, set line color, set line width, clear
  • controls: repeat… end, wait
  • looks: scale by, set opacity, change costume
  • operators: random

Each script starts with an event trigger:

  • When play button pressed
  • when I shake the iPad
  • When I tap the stage
  • when I tilt the ipad down/left/right/up
  • when I tap the object
  • when I hear a loud noise
  • when [this object] collides with……
The program can produce simple graphics

The program can produce simple graphics

One sample program that came with the app produces this output, by using several sprites to each draw a section of the image:

Part of the code for the Sydney Opera House program

Part of the code for the Sydney Opera House program

My first reaction was that not having the full functionality of Scratch is a real disadvantage – there is no possibility of embedded maths, for example, because the only operator offered is one that generates a random number.

However, on reflection, this could also be a strength, as limiting the code that can be used forces attention on those that can be used, so the coder can really explore the possibilities without getting too bogged down in complicated code blocks.

It’s my impression that the app is constantly under review and development, as since I first investigated it the collision function was added, so it’s very possible that within a few months Hopscotch turns out to be a fully developed, child-friendly graphical app design tool.

top of the code area showing sprites on different tabs and a graph showing the x and y position of the sprite

Tabs show different sprites in the program, while a simple diagram helps with placement on screen

In the meantime, it does offer basic functionality that enables creators to create interactive animations and activities involving basic logic. Its Event -> Action format would also serve as a good introduction to Gamemaker or other similar products, and of course the drag and drop graphics make it very easy for even young children.

I suspect that older children would find this rather limiting after a while, but I would certainly recommend it at key stage 2 for exploring possibilities in programming, and even as a cross-curricular maths tool, exploring distances and angles, for example giving a drawing to copy and seeing if children can describe the sequence needed to draw it.  Results could of course be recorded by screenshot and drawings to copy can be as simple or complex as needed, leading to natural differentiation by task.

There is a limited selection of cartoon-like graphics that can be added to projects, plus a text object. This limits what can be done rather, but again I suspect that this could well be developed in the near future, including hopefully the ability to import your own graphics.

There is a limited selection of objects available, plus a text object

There is a limited selection of objects available, plus a text object

In summary, a basic tool that provides a good introduction to programming for younger children and has strong possibilities, but which at the moment is likely to be rapidly outgrown by anyone who has already experienced Scratch, as the interactivity offered by the iPad is negated by the limited instruction set.

If you have a class set of iPads, then this is would be useful. If you haven’t, then you’re not missing very much.

 

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.

 

 

Python at key stage 3

a simple programI recently had the pleasure of introducing some year 8 and year 9 pupils to Python. They had previously dabbled in Scratch, but the idea of writing formal text-based programs was new to them, so we took it slow and steady.

The first lesson was mostly taken up with getting to know Python – we started by typing commands directly into the shell, and then they learned how to open up a new window, type a simple program into it and run the program. By the end of the first lesson they could type up print statements and simple maths statements into a program listing, save it correctly and run it.

Lesson 2 introduced the idea of variables and input. I reminded students at the beginning of the session how to start up a new window and create a program rather than type into the shell, and how to save their program with .py on the end to conserve the colour coding. They were also starting to discover the pleasures of debugging, and learning to look carefully at their code to spot errors. They helped each other out with this, and I showed them how to check not only the area of code that Python highlighted as a concern, but to check just before it as well, as often the error was missing speech marks or closing brackets.

Lesson 3 was where the real fun began, as we looked at if statements. Combining these with input meant that we could create a question and answer program, and combining that with a variable called score gave them the option of creating their very own quiz. Reactions varied, as some struggled to get their program running and grew frustrated while others started to really fly, creating inventive listings that checked for a user name and password before allowing access to the quiz. Generally, they seemed to enjoy the sessions, and my favourite reaction was that of frustration expressed as the code refused to work, followed by that surge of satisfaction and achievement as the error was spotted and fixed.

Our work developed by way of writing programs to solve problems, and for this I used my flash resources. This had the advantage of offering different levels of challenge and support, so that those who were able could work at a higher level while I could help those who were really struggling. By the end of the sessions all students understood a little more about how programs are made and they had learned that little details like capitals and spelling really matter. Most were starting to see how their program worked and how to fix errors and develop the functionality, while a small number really enjoyed the unit and were starting to come up with their own ideas and solutions.

This was only a very brief introductory look at programming, but it was enjoyable and worthwhile as a taster of computing rather than ICT, especially for those going into options, and encouraged students to think carefully and increase the accuracy of their written work. I saw expressions of satisfaction from both ends of the ability level, as those who struggled finally got something working while those who experimented showed off what they had managed to work out for themselves. Students whose first reaction as “This is stupid” moved over to “Oh, I see what the problem is”, as they learnt that the computer would do exactly what was it was told to do, and discovered for themselves the harsh realities of Garbage In Garbage Out. Even if they never see another Python statement, I believe they’ve taken away the understanding of how carefully you need to express yourself in order to be properly understood and how accuracy leads to better results.

As a result of my experiences I’ve developed a workbook and some flash resources, which you can find on my website here.

 

A Flash resource for Python

As I introduce Key Stage 3 groups to Python, I’m finding that some of them really “get it” and have started trying to develop and experiment with code, while others really struggle to make any sense of it at all.

In order to help them work more independently at all levels, to free me up to give more targeted help where needed, I wanted a resource I could use that would offer support at all levels.

I had an idea for an interactive Flash resource, to offer different levels of challenge, with support available if needed. I keep looking at Flash, telling myself that it’s not worth going into, and then reconsidering, so it was an ideal opportunity to see if I could make good use of it after all.

developing a resource in flash

Developing a resource in Flash

I came up with a simple idea for a coding project – working out the costs of something with a fixed element and a sliding element – that was within their mathematical understanding as well as programming experience but complex enough to require some thinking. Once the basic idea was there, I found ways to develop it, from a simple changing of the fixed and sliding costs to adding a discount which would require an if statement, and started to build my resource.

This was my first time creating an interactive flash resource for a specific purpose, but having tried out various tutorials I had at least a vague idea of how it worked, and as I progressed I found that all that theory started to make sense and I got a much clearer idea of how to proceed.

The end result was a resource that posed a problem, provided listings for students to copy if they needed, and then provided three levels of challenge, each of which could be tackled independently, again with code to copy if needed.

I tried it out with students of various abilities, all of whom are very new to Python, and all completed the basic program, the majority tried at least one challenge and the bravest went straight to the highest level of challenge.

Easy challenge

Easy challenge

While I wouldn’t recommend copying code indefinitely, students at the early end of learning to program definitely benefit from having something to work from, as checking capitals and spelling can be enough of a challenge to start with! They are starting to look more carefully at what they do, and to see how to adapt their code, and some are starting to show the buzz of excitement at getting a program running that shows they are getting a real sense of achievement at coding rather than just being an end user of software.

I’ve since adapted my resource to a second project, and while the first took a couple of evenings to complete the second one took only a couple of hours, and felt much easier to do, proving that Flash is a viable tool for creating interactive resources.

Both resources are available on my website.