Resources for ScratchUpdated on July 31 2013
Scratch is an educational programming language developed at the MIT Media Lab in 2007 by the Lifelong Kindergarten Group ... don't let that throw you - not only can younger people use it, but it is being used in college introductory computer science courses at Harvard, an extension of Scratch called BYOB at UC Berkeley (lectures available) as well as the University of Alberta, and many others around the world. The intention of the software is to introduce programming concepts in an enjoyable manner where you can quickly see visual results. It requires no previous programming experience.
It was developed in 2007, using a version of Smalltalk-80 called Squeak. As some of you may know, Microsoft announced an SDK for the kinect on June 16, 2011 so you no longer have to rely on an Xbox to use kinect but can use the image/sound data directly on your PC. Stephen Howell (Institute of Technology Tallaght), an educator in Ireland, has generously made available his program to interface Scratch with the Kinect! The kinect is a depth perception camera that now you can use "motion capture" to control things on your pc directly. This is very cool!
See scratch and the kinect on vimeo and Steven Howell's Kinect2Scratch here.
Some interesting statistics can be found on the site here. There is even a community for educators called ScratchEd. Enjoy!
The user interface consists of:
- block palette on the left,
- current sprite area in the middle
- stage and sprite list on the right
The palette has 8 groups of blocks for organizing: movement, looks, sound, pen, control, sensing, operators, and variables.
The projects consist of objects called sprites. A sprite's look is defined by a costume. Sprite's instructions are given to them by snap together graphic blocks called scripts which run top to bottom. The stage is 480 x 360 units.
What scratch can teach you:Scratch is very good for introducing some of the basic fundamental concepts of programming but does not allow functions, file I/0 and is limited to one-dimensional arrays (lists). However concepts such as multi-threading, parallel execution and message passing/event handling are fundamental to the interface.
Iterations (loops), conditionals, coordinates, variables, random numbers are all used and more importantly, it emphasizes that programming requires clear and careful thinking.
They illustrate various sorting techniques using cards on youtube.
David Malan at Harvard has his lectures online. In particular, check out the sock algorithm about 24 minutes into the first video of the classes at Harvard with David Malan.