Kids all at Different Levels

Problem
Kids are all at different ages, levels of experience and not only that some will have missed lessons we may be trying to build on.

Possible Solutions

 * Use different rooms for different activities, that also are at different levels.
 * Don't try to have a linear progression from one lesson to the next.
 * Do creative activities, where the kids choose what html-adventure or what Scratch animation they will do, and mentors go round helping whatever level they are at.
 * Pair programming!
 * Example: Pair kids into novice/veteran duos with the veteran at the computer.
 * Instruct the novices to watch the veteran and look for syntax errors, typos, etc. It's also helpful for shy kids if you have an icebreaker introduction for partners.
 * Instruct veterans to explain their code to the novice, answering any questions they have.
 * After the first 30-60 min, switch places with the novice typing and veteran watching.
 * For more interaction, cycle novices around the room (or among veterans working with language XYZ )

Actual Experience
At Science Gallery CoderDojo we have a room for starting HTML, a room for intermediate HTML/css/Javascript and a lecture hall for pythonistas.

In UCD CoderDojo we have about 8 tables and the tables are very roughly sorted by age. There are more accompanying parents at the very youngest tables, and that helps a lot.

At Iowa City, we have used pair programming effectively with our HTML/css class. Our computer lab has large aisles, so two chairs at a computer easily fit. In addition, all our kids are ~the same age. It has been very effective in helping the girls in the class to feel more comfortable (they are a bit outnumbered by the boys).