Scratch for Budding Computer Scientist
Created by Bruce Nightingale
last edited Jul 25 2013 by Bruce Nightingale
The following resource is courtesy of David Malan, Harvard University.
Learning to program is ultimately about learning to think logically and to approach problems methodically. The building blocks out of which a programmer constructs solutions, meanwhile, are relatively simple. Common in programming, for instance, are “loops” (whereby a program does something multiple times) and “conditions” (whereby a program only does something under certain circumstances. Also common are “variables” (so that a program, like a mathematician, can remember certain values).
For many students, the seemingly cryptic syntax of languages like Java tends to get in the way of mastery of such relatively simple constructs as these. Before we tackle a language like Java, then, with its curly braces and semicolons, we turn our attention to Scratch, a “new programming language that lets you create your own animations, games, and interactive art.” Although originally developed for kids by the Lifelong Kindergarten research group at the MIT Media Lab, Scratch is just as useful (and fun) for budding computer scientists. By representing programs’ building blocks with color-coded blocks (i.e., puzzle pieces), Scratch “lowers the bar” to programming, allowing budding computer scientists to focus on problems rather than syntax, to master programmatic constructs rather than syntax. Syntax, of course, will come later. But, for now, we focus on programming itself. It just so happens that programming, for now, will be more like putting together a puzzle than writing Greek.
This tutorial introduces budding computer scientists to the building blocks of programming by way of Scratch. It assumes that you are already familiar with Scratch’s usage and, accordingly, have a general sense of how to program with Scratch.
This tutorial aspires to formalize your understanding of programming, framing some basic programming constructs in the language of Scratch.
Level: For those learners who are starting to understand programming constructs.