Introducing Programming in College with Scratch

I’ve mentioned Scratch as a way to introduce children to programming, but it works just as well, maybe even more so, as a way of introducing teenagers and adults to programming! Don’t take it from me though, take it from Harvard’s CS50, by David J. Malan (who is fantastic in these lectures btw), which has adopted Scratch (it moves on to C and other languages and tools), to help students make some connections early on.

YouTube: “CS50 / Week 0: Friday”:

Harvard: CS50.tv

Academic Earth: “Introduction to Computer Science I”

Scratch: “Starting with Scratch (literally) in CS 1”

“A guided walk through of CS50”

Some thoughts on Project-Based computer science education

Recently I had the pleasure of assisting someone who lives at Connelly House, managed by Project HOME, in bringing his music to YouTube. He was a 50ish year old man, suffering from disability, with no internet or real computing experience to go by, but he had a project. In the journey to produce that single video for YouTube, he learned some basic concepts around navigating the web, managing an email account, and using search, that empowered him not only to produce a single video, but to go on and produce over 30. Now, one experience does not a conclusive study make, but I came away from the this convinced that it is a technique I’d love to try with K-12 students, building an interactive story or video game, and along the way, having a goal for them to learn the basics of computational thinking, problem solving, and basic programming. The software to do this is free and with cloud-based storage (Dropbox) regular access to a basic machine in the home, the technology you need is already here.

This is not an original idea (I don’t believe in original ideas by the way), and there are many who have brought this up as a successful path to introduce programming in the past. Here go some great links to ponder:

Knowing and Doing: Eugene Wallingford: “Problems are the Thing”

Philip Greenspun: “Improving Undergraduate Computer Science Education”

Edutopia: “Project-Based Learning”

“Invent Your Own Computer Games with Python”

A Mathematician’s Lament: on education

Paul Lockhart wrote an accessible read on what is wrong with math education and the popular perception of math that is reinforced in culture that has been shared on the Web in quite a few corners. It deserves a wider read: “A Mathematician’s Lament”:

The art of proof has been replaced by a rigid step-by step pattern of uninspired formal deductions. The textbook presents a set of definitions, theorems, and proofs, the teacher copies them onto the blackboard, and the students copy them into their notebooks. They are then asked to mimic them in the exercises. Those that catch on to the pattern quickly are the “good” students.

The result is that the student becomes a passive participant in the creative act. Students are making statements to fit a preexisting proof-pattern, not because they mean them. They are being trained to ape arguments, not to intend them. So not only do they have no idea what their teacher is saying, they have no idea what they themselves are saying.

Even the traditional way in which definitions are presented is a lie. In an effort to create an illusion of “clarity” before embarking on the typical cascade of propositions and theorems, a set of definitions are provided so that statements and their proofs can be made as succinct as possible. On the surface this seems fairly innocuous; why not make some abbreviations so that things can be said more economically? The problem is that definitions matter. They come from aesthetic decisions about what distinctions you as an artist consider important. And they are problem-generated. To make a definition is to highlight and call attention to a feature or structural property. Historically this comes out of working on a problem, not as a prelude to it.

The point is you don’t start with definitions, you start with problems. Nobody ever had an idea of a number being “irrational” until Pythagoras attempted to measure the diagonal of a square and discovered that it could not be represented as a fraction. Definitions make sense when a point is reached in your argument which makes the distinction necessary. To make definitions without motivation is more likely to cause confusion.

Related:

Kevin Devlin: “Lockhart’s Lament – The Sequel”

Slashdot: “A Mathematician’s Lament — an Indictment of US Math Education”

G.H. Hardy:

A mathematician, like a painter or poet, is a maker of patterns. If his patterns are more permanent than theirs, it is because they are made with ideas.

Program or be Programmed at Webvisions 2011

Programming, along with critical thinking skills, should be taught in K-12 along side reading, writing and arithmetic. Douglas Rushkoff has been making the case, not for jobs, or for just economic concerns, but for a healthy society.

Webvisions 2011: “Douglas Rushkoff: Program or be Programmed”:

If you have a child in Kindergarten, up to grade 12, who has never experienced programming, download MIT’s Scratch. It is free and it opens the gate.