While it’s often assumed that programming is difficult to learn, many 8 to 14 year olds are now learning programming skills using a specially designed programming tool developed at MIT called Scratch. Scratch is a free program that runs on Mac, Windows and Linux. First released in 2007, it now has an extensive following of students around the world. The developers saw Scratch not just as a programming tool, but an opportunity for students to explore and be creative with computers. Although today’s digital natives can ‘read’ computers, until now most wouldn’t have the first idea about ‘writing’ for computers – i.e. programming. That might change as more students discover Scratch.
Learning to program has so much going for it that it’s probably only a matter of time before it becomes regarded as an essential part of learning for children of all abilities. Not only does it develop logical reasoning and problem solving skills, but programming can creative and challenging at a number of ability levels. Since programming lets students create projects connected to their own particular interests, projects are more likely to be ones that students find relevant and more meaningful, and so more likely to have the motivation ingredients found in a self-directed learning activity. Perhaps best of all, programming fosters a healthy attitude to mistakes and setbacks. Analysis of results by review and reflection are fundamental programming skills. Last but not least, programming can also be a lot of fun.
Early attempts to get children interested in programming with programs such as Logo and eToys had limited success, but Scratch, seems to have found a nice balance between ease of use and enough programming power to achieve gratifying results. The Scratch developers at MIT (also the home of Logo and Alice) were able to apply the lessons learned from earlier children’s programming environments of Logo, eToys (one of the eToy developers joined the Scratch team) and Alice to create a programming tool successfully meets their challenging design criteria – a low floor, wide walls learning environment. It was extensively road-tested with children (targeting the 8 – 14 year old age group) during development and the observations of children using the program were used to fine tune the product. The Scratch site has an ample amount of help, including short video tutorials (usually less than two minutes). The Reference Guide, a downloadable pdf document, is a 23 page manual with a liberal supply of large diagrams.
To eliminate the frustrating tedium of typing errors and syntax errors often encountered when programming, Scratch provides logically arranged programming blocks that can be dragged and dropped into a sequence of instructions. In addition to the supplied help files, a help window for each block can be displayed by right-clicking on a block. These windows have examples of using the block, and can remain open while blocks are being positioned. However this drag-and-drop sequencing of blocks is still a complete programming language, with the usual program flow commands of repeat loops and conditional commands such as if, and if…else. Different block shapes provide visual clues for their use, such as the ‘repeat’ and ‘if’ blocks which are “C” shaped blocks that wrap around their contained sequence blocks. These can be nested if required. Although Scratch is targeted at young children, it uses well established object-orientated programming techniques, complete with mouse and keyboard events to develop good programming techniques.
While using Scratch, students learn more than programming. Mathematician Seymour Papert, creator of Logo and colleague of Piaget, enthused about the potential of a computer programming language to “make intangible mathematical concepts more tangible”. Programming provides children with the opportunity for hands-on, learn-by-doing experimentation and practice with mathematical concepts such as percentage, cartesian co-ordinates, variables and negative numbers, trigonometry and more.
The Scratch website was launched in 2007, and now has nearly 2 million registered users and an average of 80,000 user created Scratch projects are submitted each month. If Scratch programmers strike a problem, a forum posting will generally have a reply within a few hours. Scratch users are encouraged to submit their projects to the site, and to develop variations of programs created by other users. In effect it’s collaborative learning with a team of thousands. It’s the way learning in the computer age should be.