Moving Beyond Scratch

Problem
The Scratch language has some limitations, such as the absence of subroutines so that it is not a good choice of language for larger projects. However, kids may not want to move from it. It can be hard to transfer knowledge from it to other languages. One particular difficulty is that it is hard to do anything at all in other languages.

Possible Solutions

 * Before attempting to move from Scratch, make sure to do some more advanced work with it, not just moving sprites. Use 'Stamp' so that there is awareness of use of the canvas, and use sin and cosine functions to introduce maths that is needed with graphics in other languages.
 * When teaching Scratch, start to use some of the terminology that gets used in other languages, for example nested loop, conditional, event.
 * When already quite advanced with Scratch, explore with the kids how you would do 'bounce' if it wasn't already part of Scratch.
 * Learn an editor such as Notepad++ (perhaps to edit HTML) and something of a graphics editor such as GIMP (perhaps to do more complex sprites in Scratch) before moving to a new language, so it is not everything at once.
 * If starting javascript, start with an example that has already been done in Scratch.

Actual Experience
In UCD CoderDojo we started with HTML and then moved to Scratch. We're not yet at the point where we need to move from Scratch.

In Science Gallery CoderDojo we initially didn't do Scratch at all, and it took us many sessions to get anywhere near those animations with javascript/html/css. Having seen the speed with which kids start understanding coding using Scratch, we started experimenting using BYOB, an elaboration of Scratch that adds functions, but essentially using it like Scratch.

In CoderDojo Drogheda we started with HTML/CSS/JS and ran scratch in parallel - we are now using Python and Turtle which has the same immediate feedback that kids love but while also hand coding. It is working well with those over 11 years old going for it. We are running all three (HTML/CSS, Scratch and Python) at the moment and kids seem to find the area they are interested in quickly while knowing they can move about.