Is Programming The New High School Diploma?

Daniel Markham makes the case for incorporating programming into what we consider literacy in his post “Programming is the new High School Diploma”.

I’m not sure I’d go as far as he would, but this is not an idea to dismiss out of hand as quite a few folks did in a Metafilter thread I was following that led me to post the following:

Actually there are many, many folks circling in on the idea that programming *is* part of a new definition of literacy.

I believe people should have basic programming skills, in as much as they have basic writing skills.

NOT simply to ‘know how a computer works’. Programing is far more than the act of giving instructions to computers to do things.

The idea isn’t to create more programmers/software engineers/computer scientists, just as teaching writing isn’t done for the sole aim of creating more authors (although it more easily opens the door). Instead, programming should be taught as a means to explore science, health, social studies, history, and math. Just as reading and writing are. Instead of creating a book report, create an interactive story with visualizations. Maybe work with other students in its production.

Even the most rudimentary programming skills enable us to better communicate with one another, to tell stories, to create our own games, and to better participate in the networked world we live in.

New tools like MIT’s Scratch are coming along to make much of this possible. Check it out.


Bret Victor – Inventing on Principle from CUSEC on Vimeo.

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”:


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”

Programming, along with Reading, Writing, and Arithmetic – start NOW

Matt Ruzicka wonders what could have happened if his school was visited by someone who shared how programming has less to do with something he could learn in college, and more to do with what he was actually doing in class in his post “School, Math, and Code”. (via “Life and Code”)

More than a few of us from CIM are active in our communities, including my former manager Aaron Held, who received this note from a thankful student who needs more support from others.

Knowledge of programming, not the use of specific kinds of software (word processors for example), is a necessary part of literacy today.


MIT Scratch

Invent Your Own Computer Games with Python

Google: Exploring Computational Thinking

Program or Be Programmed

Computer Programming for Everybody

Knowing and Doing: “Programming for Everyone — Really?”

MediaShift: Aran Levasseur: “Learning in a Digital Age: Teaching a Different Kind of Literacy”