Monday, June 26, 2006

teaching programming skills using game maker and blogging

I have designed a game making / multimedia course for Year 11 students. This article describes the theory and practice of a part of that course. The full course can be found at

  1. game making – for motivation, engagement initially but also for worthwhile objects to think with blogging – for opening up new channels of communication in the classroom
  2. explicit instruction about programming, just in time approach
  3. educational game design (instructional design) – designing and teaching for learning, going beyond a technical programming challenge to also include an instructional design challenge.


In developing this course I have been influenced by the learning theories of Seymour Papert (constructionism, mathetics), the Instructional Software Design Project (Harel and Papert) and the more recent Connectivism of George Siemens. These theories have helped to guide the course I have designed and implemented.


Constructionism is Seymour Papert’s word which is made up from the Piaget’s word constructivism (children develop their own internal structures of mind) with the word construction. Papert’s idea was to accelerate learning by working with objects like the logo programming language and LEGO TClogo robotics

Papert and Harel argued for the importance of learners discovering good objects to think with, with these characeristics:
  • appropriability – some things lend themselves better than others to being made one’s own
  • evocativeness – some materials are more apt than others to precipitate personal thought
  • integration – some materials are better carriers of multiple meanings and multiple concepts

Papert Mathetics
One of Papert’s learning principles is that a good conversation is an important part of learning. How do we set up good conversations in IT class?

Instructional Software Design Project
Idit Harel integrated the theories of Piaget, Papert, Vygotsky and Perkins (“Knowledge as Design”) to develop a project where children designed and built educational software, using logo, for other children to learn with.

She reported improvement in a wide variety of areas such as collaboration, design skills, self management skills, programming language fluency, expressive writing about mathematics and technology, cognitive resilience (learning not to give up), time management, faith in one’s own thinking, teaching skills and empathy with younger students.

Marc Prensky has put forward the slogan “Engage me or Enrage me” (motivation is central to learning).

Struggle – A theory of struggle in education has been advanced by Garth Boomer, that education is mainly about struggle and design. McGee has theorized the struggle which takes place between assimilation and accommodation and has theorized that play has an important role in this process


George Siemens has observed that the relevant life or half life of knowledge or content is shrinking and that informal learning experiences are becoming more important, that 80% of our learning arises informally

In this relatively new situation, the capacity to know more is more critical than what is currently known, that nurturing and maintaining connections is needed to facilitate continual learning and that rather than have a knowledge silo it is often better to be well connected and have the ability to learn knowledge in Just In Time fashion


Why choose Game Maker as the programming language?

Game Maker has a free version (but not open source), has a great drag and drop interface, low entry and high ceiling programming capabilities, extensive support materials and a large, active community (Game Maker forum). Since the software is free it was included on a CD with other free and open source software which was made available for students to take home.

Game making challenges – the focus on challenges rather than demonstrations or tutorials

The initial part of the course consists of skill building in the use of Game Maker through solving a series of challenges that are accompanied by hints. By solving the challenges students learn some of the basic skills of game programming such as:
  • what Events mean (Create, Step, Alarm, Collision, etc.)
  • how to link Events to Actions
  • the coordinate system (x, y space) and direction
  • how to use the random() function to vary motion
  • how to make characters shoot and targets explode
  • how to turn actions of temporarily using Boolean T/F variables and Alarm clocks
  • how to make one character follow another character
  • how to control game flow using conditionals
  • how to draw text on the screen
  • how to push things around a room

All of the challenges are available at this URL:

In general, I think challenges are more effective than either Demonstrations or Tutorials for teaching and learning. Why? Challenges involve both construction and struggle!

Challenges – student has to struggle for mastery, the teacher is a guide on the side providing hints or direct guidance occasionally.
Demonstrations – teacher shows how to do it, student is relatively passive at first, construction is optional.
Tutorials – Step by step instruction provided by teacher, student follows. This can be too passive, not enough exploration or struggle is required.

I think you need the full range of tutorials, demonstrations (which are more show and tell) as well as the challenges / hints (explore, think, do, ask questions) but overall I'm trying to push my students towards the latter mode.

Why blogging?

As well as the curiosity and appeal of a new technology I was motivated by other reasons to incorporate blogging into the course.

Writing and documentation is an important part of programming (including comments within code) and improves the employability of a programmer. The method of writing every day is a good one because writing improves with regular practice.

The teacher ability to communicate with students is quite limited in a face to face setting with a class size of 20. Opening up another regular written communication channel vastly improves teacher-student communication. This can be used extensively for feedback and also enables students to share off topic thoughts with the teacher.

Once students have setup blogrolls of other students on their blogs then student-student communication increases as well. This can be used for both fun and learning.

Explicit instruction – why favour a just in time approach?

I'm always on the lookout to minimise the amount of time I spend out the front giving instructions to students. Although sometimes desirable and essential in my experience too much broadcast does not work very well. Many students just don't seem to listen.

Design: why ask students to design an educational game (rather than a free choice)?

The issue is to avoid design of a clone of game they already know. In that situation, the design component becomes a non creative activity.

One possible answer to this is to require students to design an educational game. This part of the course has yet to be implemented.

- written during week 9 (30th March 2006) of an 18 week course

The blogroll of all students in the class can be found here on the teachers blog:

The initial setting up of blogs did take some time but in the longer term it was time well spent.

Some students adapted quickly to both game making and blogging, others took several weeks to become productive and a few did not engage sufficiently in one or the other parts of the course.

The teachers marking scheme gave 5 marks for each game maker challenge. Students had to complete the challenge (they could ask anyone for help), blog about how they solved the problem (3 marks), about who helped them (1 mark) and include a screen shot of their solution (1 mark). The teacher kept an up to date open marks book which students could look at to monitor their progress at any time. Assigning percentages and grades two weeks before assessment period was a powerful motivator for some students who were behind to catchup.

Students could also get marks for off topic blogging (limited to one mark per week), writing how to tips about game maker, game maker problems and setting up their blog expertly (theme, blogroll, leaving comments on other blogs).

Writing about how a problem was solved does help to reinforce the learning process.

Quite a few students did read the blogs of more advanced students, who had detailed descriptions, for tips about how to solve problems. Pikmik and JRB01 were two favourites for this. (plan to do a survey about this)

The teacher setup an RSS feed at bloglines which collected all student blogs in one place and informed him when their blog had been updated. This was very convenient and make it possible for the teacher to give more regular feedback than in previous years. It was also possible for the teacher to obtain a more rounded picture of student interests through their off topic posts. This built rapport and lifted morale.

Some students obviously enjoyed leaving comments on each others blogs, this was seen as a fun activity.


Harel, Idit. Software Design for Learning: Children’s Construction of Meaning for
Fractions and Logo Programming. June, 1988.

Harel, Idit and Papert, Seymour. Software Design as a Learning Environment. MIT, January 1990

Kerr, Bill. Invitation to Immersion. April 1997

Kerr, Bill. Papert’s Ideas: Mainly from Mindstorms. October, 1991

Siemens, George. Connectivism: A Learning Theory for the Digital Age. December, 2004

No comments: