There’s been a lot of buzz about a recent video featuring Mark Zuckerberg (founder of FaceBook) and Bill Gates (co-founder of Microsoft). You can watch it at http://www.code.org/. The video advocates the teaching of programming to students (including young students). The reasons are varied but two major ones are to meet a high-demand job need and to teach a valuable way of thinking.
Parents should know that we have been teaching programming here in Williamsburg Schools for over fifteen years. I would like to describe our current programming curriculum, which has evolved and expanded over the years.
Our innovative elementary robotics-based engineering curriculum has a strong programming component, which contains a deliberate progression of programming concepts starting in preschool continuing every year to grade 6. Preschool and kindergarten students program mobile BeeBot robots to move in different ways. BeeBots (http://www.terrapinlogo.com/bee-bot.php). BeeBots have a small number of on-board programming buttons: left, right, up, down, go, clear, and, pause. Here are some examples of BeeBot programming tasks.
- Students program (teach) the BeeBots to make letter shapes by tracing masking tape letters on the floor.
- Students program (teach) BeeBots to add and subtract number facts on a number line.
- Students program (teach) their BeeBots to start at their hive and find a flower going around an obstacle. This introduces students to an important class of computer science route finding problems.
Grade 1 to 4 students program their LEGO Education WeDo (http://www.legoeducation.us/) robots every year in variety of projects. They use a visual, icon based language to create programs by dragging icons into a sequence and setting parameters for each icon. Important programming concepts are loops, waiting for sensor input, and parameters.
Grade 5 and 6 students use a more sophisticated programming language LEGO Education Mindstorms NXT (http://www.legoeducation.us/) similar to WeDo. They continue to use loops, do much more with parameters, and also start to explore general-purpose algorithms such as programming their NXT robot cars to get out of a classroom from any place in the room.
Grade 3 students use a visual, programming-by-example, simulation language called StageCast Creator (http://www.stagecast.com/). They create a maze game of their own design. Students explore the ideas of randomization and simulation. Some years, grade 4 students create a predator-prey (grass, rabbits, and coyotes) simulation just like scientists do. By varying the initial conditions, students can see if the system is sustainable or crashes (for example, too many rabbits would eat all the grass causing the rabbit and hence the coyote populations to crash).
Grade 6 students program in LOGO (http://www.alancsmith.co.uk/logo/) to explore mathematical concepts related to regular polygons. They also use the Scratch programming language (available for download free at (http://scratch.mit.edu/) to recreate the classic Pong video game and then design their own video game.
Some years, I have students explore classic computer science problems such as the map-coloring problem (http://en.wikipedia.org/wiki/Four_color_theorem). I have adapted this and some shortest path problems for younger students to explore using pencil and paper. As a former software engineer and computer scientist, my view is that computer science is different than just teaching the mechanics and syntax of programming but involves algorithmic thinking and software engineering concepts. Our program teaches skills that amplify human capabilities such as word processing and presentation programs but has a strong emphasis, unlike many programs, on technologies that are also capable of reorganizing cognition (Pea, 1985) such as programming. Our hands-on approach has been show to be both very popular with students and to teach important technological concepts and skills.
Pea, R. (1985). Beyond Amplification: Using the Computer to Reorganize Mental Functioning. Educational Psychologist, 20(4), 167–182.