Skip to main content

Help kids work in group to develop a game

Together with some friends I manage the events of a local CoderDojo group: we meet once a month, gathering together some kids that want to create something interesting and fun with computers. We use different technologies, but we mostly build little games or stories in Scratch, and one day we decided to run an experiment.

A typical Saturday afternoon starts with the mentors asking the kids what they want to create, but contrary to what it may seem this is not a simple task: some kids don’t have a clear picture of what they want to achieve and the greatest part of them tends to work individually.

To overcome these problems we thought to provide the kids a sheet of paper with printed some directions and to ask them to gather in groups and take half an hour to fill in the blanks before starting to code. Actually, some groups were suggested by the mentors, but in the end they worked.
The printed directions were simple and their goal was to lead the kids to create an outline of the game they were going to code afterwards. The hints were:
  • title of the game;
  • rules of the game;
  • backgrounds to be used;
  • characters and how they can move and act;
  • other elements and how they can move and act;
  • how the game ends.
At first the kids stared to us with a wondering look because this new task remembered them a school test for sure, but after we reassured them that they couldn’t give wrong answers they started to work.
Of course during the 30 minutes time frame the kids were not left alone: the mentors as usual moved among the tables asking and answering questions. Actually the process requires the mentors more to ask than to answer; for example when a kid was stuck on a character’s movement a typical question would have been: does your character move only horizontally, only vertically, or both? Does it jump? And so on. This way the kids find the answers by themselves and write them down on the paper.

The advantage we noticed was twofold. First, the hints helped the kids that have more difficulty in focusing their ideas to define better their game before starting to code, and this in turn avoids them to get lost in the middle of the development. Second, the kids discussed in groups how to structure the games and then the collaboration continued during the development: in some groups different kids were assigned different tasks, in others all kids worked each one on their own computer to create the same game but syncing once in a while and exchanging experiences.

Overall for us it was a positive experience because the advantages one can achieve with this approach are not restricted to the coding world but could be applied to other learning environments: writing down such a simple template for your activity and inviting the kids to fill it can go a long way in setting up the right organization in your team. For sure we will use the same approach again in other future events.

Comments

Most popular posts

Pairing the Raspberry Pi 3 with your Playstation 3 controller

While setting up the MAME emulator on the Raspberry Pi 3 I decided to experiment with the PS3 controller trying to pair it with the RPi. I found a useful guide here: http://holvin.blogspot.it/2013/11/how-to-setup-raspberry-pi-as-retro.html At section 4 the author describes how to compile sixpair utility, test that everything is working and compile the QtSixA tool. But there are some differences to be noted when working with the Raspberry Pi version 3. First, and most obvious, of all: the RPi 3 has already a Bluetooth device built in, so you don't have to plug a dongle in it, and it's compatible with the PS3 controller. 1. Sixpair The sixpair utility succeeds in coupling with the controller. But to test that it's working I had to test the js1 joystick port, and not the js0 as stated in the guide; so the actual command is: jstest /dev/input/js1 2. QtSixA The QtSixA download link must be changed, because the one shown doesn't compile with the latest

JSON Web Token Tutorial: An Example in Laravel and AngularJS

With the rising popularity of single page applications, mobile applications, and RESTful API services, the way web developers write back-end code has changed significantly. With technologies like AngularJS and BackboneJS, we are no longer spending much time building markup, instead we are building APIs that our front-end applications consume. Our back-end is more about business logic and data, while presentation logic is moved exclusively to the front-end or mobile applications. These changes have led to new ways of implementing authentication in modern applications. Authentication is one of the most important parts of any web application. For decades, cookies and server-based authentication were the easiest solution. However, handling authentication in modern Mobile and Single Page Applications can be tricky, and demand a better approach. The best known solutions to authentication problems for APIs are the OAuth 2.0 and the JSON Web Token (JWT). What is a JSON Web Token? A JSO

Software Release Management For Small Teams

Formalizing The Release Management Process (If There’s Any) In some team configurations, especially ones that are found in startups, there are no DevOps, nor infrastructure engineers, to provide support when releasing a new version of the product. Moreover, unlike large bureaucratic companies with defined formal processes, the CTO or Head of Software Development team in a startup is often not aware of the complexities of the software release management process; a few developers in the company may be aware of the complex details of the process, but not everyone. If this knowledge is not documented thoroughly , I believe it could result in confusion. In this article, I’ll try to provide some tips about how to formalize the release process, particularly from the developer’s point of view. Enter The Software Release Checklist You may be familiar with the idea of a checklist for some operations, as per the Checklist Manifesto , a book by Atul Gawande. I believe a formal release proc