LGfL offers J2Code that offers a two level turtle based programming interface and suggested learning activities. Consider moving children from single step programming to multiple step using the advanced option. There is plenty of information on languages available online. For Scratch a good place to start is this inspirational talk by Mitch Resnick or the Educators section on the Scratch website. For an introduction to Logo with signposting to resources try the Logo Foundation. For Kodu, Microsoft's Kodu Gamelab site provides an introduction and resources.
Create and debug simple programs
The best way for pupils to learn what an algorithm is, and how it can be implemented as a program, is to write some programs themselves. Programming involves taking an idea for doing something and turning it into instructions the computer can understand. In the infant classroom this could be writing a set of commands for a Bee-Bot, Pro-Bot or Roamer, or snapping on-screen program building blocks together in Scratch.
When you write a program you need to have a clear idea of what it will do and how it should do it. This is where algorithms come in, and thinking algorithmically is an integral part of the craft of programming.
Most programs don’t work as they should first time round; professional programmers have this experience all the time! One of the most rewarding aspects of programming is finding and fixing these mistakes. Mistakes in programs are called ‘bugs’, and finding and fixing them is ‘debugging’.
As a teacher, you should identify clear steps that pupils can follow so that they can fix their code. These might involve identifying what the fault is, finding out which part of the code is creating the problem, and then working towards a fix.
Pupils should be encouraged to work together to identify bugs, as programmers are often blind to their own mistakes. Although it might be appropriate to help pupils compare code or identify which section to look at, it is rarely helpful for you to fix a bug for pupils until they have worked through the stages of debugging themselves. Debugging code develops valuable learning skills that are transferable right across the curriculum, such as independence, resilience and persistence.