Thoughts about Educational Computing from a secondary school Computing teacher.

Saturday, October 27, 2012

Greenfoot and Java - Michael Kölling

{Live capture of session at CASScot12 Conference}

Michael is introducing us to Greenfoot - a language specifically written to teach the concepts of Object Oriented Programming. Started by demonstrating Wombat. showed how easy it is to invoke methods and to check properties etc. you can also look at any object and see that they have the same fields but different values and you can see the fields change as the program is executed. As well as looking at the visual side of things, you can open up the Java code and see what underlies the Greenfoot World.

Early understanding of key concepts is important. Can use the Wombats world to introduce:

Class

Object

State

Behaviour

Two views of Greenfoot: teachers have a tool to teach programming concepts; pupils have a tool that lets them write games.

Motivation is important and games development can be a good way to engage. Worth thinking about different types of games though as shoot-em-up games can bias course towards boys. Can develop multimedia tasks which give scope for group work, e.g. One pupil develops graphics, another the sound, etc. (Demonstrated Asteroid game, piano keyboard and a marble game.

Great demonstration of a way to introduce if statements: program a turtle to move only if there is enough sound being picked up by microphone - pupils cheer to make turtle move and go quiet to make it stop.

Can set up a world and then save it which creates the code which recreates the world you've set up every time the program starts. You can easily plug in a game controller to use instead of keyboard control. You can create a game easily within an hour but you then have to build understanding.

Modification and ownership. Important to let students take control. (There can be gender differences and the objects/worlds created can shape where things go.)

Use open problems. Allows for differentiation. That's why games are good as it always possible to take things further.

Projects of discovery. It can be frustrating to write solutions to artificial problems such as: "write a program to print out the first hundred prime numbers." A closed and artificial problem. But "write a simulation of ants foraging for food" creates a program that can be explored and discussed.

Use real data. For example, pull in data and display on map. Having a real world context is very powerful.

Sharing is important. Greenfoot has a share button that posts to public site where others can play your creations. "It's YouTube for Greenfoot programs.” It is really motivating to see others have used your program.

Gadgets are motivating. Can plug in games controller and Kinect sensor. Outstanding demonstration of using Kinect to detect people and then use body to paint, e.g. Draw with right hand, change colour with right foot, etc. Code is surprisingly easy to write.

Question was asked, can you use it for Higher Computing? Answer: Greenfoot uses standard Java so you can goes as far as you like with it. No problem therefore in using it at pretty much any level. For example, third year university courses use it to introduce AI. Target audience is about 13/14 year olds. Younger children can understand the concepts but struggle with the syntax (matching brackets etc.). Really nice progression though from Scratch to Greenfoot. Scratch is object based but Greenfot class based.