NPR piece on Scratch

While the programming languages are simpler than the ones used by professionals, they’re still teaching kids the foundations of computer science, according to Karen Brennan of Harvard Graduate School of Education, who helped develop the Scratch program at MIT’s Media Lab.

“They were learning how to test and debug, they were learning how to break down problems,” Brennan told Here & Now. “They started seeing the world in a new way, that computers weren’t something that other people did or other people think about, but computation becomes something that they can use to express themselves, that they can solve problems.”

What a great article! It’s wonderful having such a positive introduction to computation for kids.

I’d love to have more resources for scaffolding CS education for kids after teaching them Scratch, actually the commenter at the end of the article says it quite well! I generally teach Alice afterwards and then Python, but as programming progresses from drag-and-drop game creation in Scratch, to wading through blocks of text in standard programming languages, a lot of kids lose interest.

It would be great if a program like Scratch also had the option for text-based programming along with drag-and-drop programming, giving kids more fine-grain control over their projects and a gentle introduction to text-based programming.

From what I’ve read, the Scratch group emphasized simplicity from the very beginning. An early version (?pre-release?) had procedure definitions but they were removed. Brian Harvey at UC Berkeley added procedure definitions, and other stuff, creating BYOB which has now become SNAP! Procedure definitions will be in Scratch 2.0. But I think that maintaining simplicity in Scratch is very important.

As far as text-based programming, a great follow-on to Scratch is Logo. Scratch is basically Logo with a beautiful GUI on top of it. Colleen M. Lewis ran an experiment while at UC Berkeley where she compared sixth grade students learning to program with Scratch and Logo. She published the results in a paper “How Programming Environment Shapes Perception, Learning and Goals: Logo vs. Scratch” available at http://abraham.cs.uml.edu/~heines/academic/papers/2010sigcse/CD/docs/p346.pdf Her results were a bit surprising…

Those are surprising results, thanks for sharing that paper! I wonder if you’d find any positive interaction effect in teaching kids Scratch first and then Logo as you’d suggested, instead of just teaching either one or the other? Logo is a friendly text-based language but it feels a bit outdated (as do its modern variants, Netlogo and others); I also think it might be confusing to go from an agent-based programming paradigm to a modern procedural or object-based programming language, especially when you never really see agent-based programming in the ‘real’ world.

I’m clearly exercising a lot of wishful thinking here, but I would love to see a language that builds on Python or Java using a simplified syntax and that is specifically designed for kids– similar to the way Processing is built on top of Java and designed for non-programmers (perhaps it could be adapted into a curriculum for kids?)

I’ve done some of the basic parts of computer programming with kids as young as 4 (in that case my own son, but I also worked with two different classrooms of 5 year olds). I used a modified form of Google’s Blockly programming language, but Turtle Art also works fine (at least for my son); it was just hard to access in time for the lesson I taught to the little kids.

I think the idea of object based programming (which is essentially what is used in Scratch) would be a bit beyond them, but they were able to see that they could control the output of the computer with their mini-programs, and they would sometimes have to debug their program a number of times before they would produce their hoped for output.