Beyond the Job: Three Reasons All Students Should Code

April 29, 2013

NewSchools is proud to announce their most recent investment in Tynker.  We’re supportive of more robust K-12 computer science education and Tynker is an anchor investment to help reach that goal. Tynker is a web-based visual programming language initially targeting elementary and middle schools and has just raised a seed round of $3.25 million from NEA, Felicis, 500 Startups, Ed-Mentor, GSV advisors, and others. While there is high demand for Tynker in the private sector (and they are working hard on churning out a high quality product for parents – fret not!), they are focused on serving teachers and schools first. NewSchools is backing entrepreneurs Krishna Vedati, Srinivas Mandyam, and Kelvin Chong in this mission. You can read more about their funding and recent schools release on Techcrunch, Gigaom, or Venture Beat.

“But wait!” you might ask, “Why should schools teach coding in the first place? And how?” Good question, and one I’m excited to explore in this post.

Lately, learning to code has been conflated with getting a programming job. Given the market need, pressure is growing in schools and universities to teach coding to prepare students for the job market of the 21st century. Yet training young techies also has the New Yorker worried that liberal arts are being pushed aside for vocational pursuits. Does such an outcomes-focused education belong in our schools? Yes, because computer science education solves more than simply professional demand. Coding should be taught in schools for (at least) three reasons: it is fundamental to the world around us, instrumental in self-expression, and essential to modern thought.

1. The world runs on code.

My friends, my money, and my words all have a facsimile in the digital world, in little electrons and wires and decision trees, yet I am shamefully ignorant of how it all works. Even with two terms of undergraduate computer science coursing through my neurons, something as simple as how a letter goes from my wireless keyboard to pixels organized on a screen still baffles me. Yet even just a half-year of CS education, with projects like word ladders, boggle, and maps, has changed how I see the digital world. When I open a folder I think about what its coordinates are on the screen. When I take money out of an ATM, I think about who coded its behavior. Computers are not magical, or responsible – they do exactly what someone tells them to.  Schools have always evolved to explain the physical world to students through teaching physics, biology, etc. The code that comprises omnipresent technology must be taught to all.

2. Digital creativity is the art of the future

Coding enables self-expression. For example, here’s a quick snapshot of my current desires fostered by using Tynker. To be able to communicate in the future, computational fluency must be attained. While many students are figuring this out on their own as social media develops (see Pinterest, Tumblr), I believe it is complex enough to warrant being taught. My old professor, Mehran Sahami, would talk about writing a program as if it were an essay. Michael Staton referred to the poetry of syntax just last week on a “coding as core curriculum” panel at ASU/GSV. And functionally, schoolteachers like Jeannie Smith are already finding ways to implement computer science in the curriculum. In an elective class called “Creative Computing” at Jordan Middle Schools, Jeannie guides 7th graders 4 times a week in the creation of digital content. They create flash animations using action script, edit photos and videos using Photoshop or movie editing software, and of course they create stories and tales using Tynker. Other classrooms are having students code animations of historical events in place of Powerpoint. The flexibility that comes with an understanding of code changes the limits of self-expression.

3. Coding is a liberal art

Coding should be thought of as a liberal art, which is to say an essential prerequisite for participation in a free and civil society. What counts as an art of the liberated has evolved over time and has come to include harder sciences like mathematics and astronomy in addition to the study of art and debate. What bonds the liberal arts together is an attitude that the knowledge should be pursued with a non-vocational intention. I opened by talking about the market pressure to produce coders. I think they miss half the point – learning to code is about learning to create, and the foundation of this is non-technical; it lies in the study of computational thinking. These are logical basics like iteration, for-loops, “if” statements, and data structures. To understand how this can be broken down for education, Karen Brennan has a very nice paper published out of MIT’s Media Lab categorizing computational thinking.

So where can you go to learn?

I hope to have shown by now that the need for schools to embrace coding is more than a need to prepare workers for the jobs of tomorrow. It is about preparing citizens to understand their world, express themselves, and be modernly educated. Beyond outliers like Jeannie Smith, K-12 classrooms are far behind. According to code.org, fewer than ten percent of high schools even teach Computer Science, and 41 states do not count a CS class towards graduation. Some companies, like Tynker and CodeHS (founded by my old CS teachers!), have been aimed at K-12 schools from the beginning. Others, like Treehouse or Codecademy, have adapted direct to consumer products to include offerings for schools. As readwrite.org points out, there is in fact a boom lately of companies that will teach you to code, most not aimed at K-12. I have an initial framework for thinking about them below, and it can be accessed and edited on this hackpad (please add and edit away! I will update this list as you add to the hackpad)

  • Professional training
    • Actual classes, all-in-one intensives like Dev Bootcamp, Startup School, Launch Academy, Apprentice.io (see more at http://hackercollective.ca/faq/
    • Online classes: Code School, Bloc.io, Lynda.com
  • Extra-curricular programs
    • Coder Dojo, CodeNow.org, ScriptEDnyc, Girls who code, black girls code,
  • Learn-a-language websites
    • CodeHS*, Treehouse*, Programr, Codecademy*, Khan Academy*, Code Avengers*, Learn Code the Hard Way, Hackety Hack, CodelearnComputational thinking/introduction to coding
  • Computational Thinking/Introduction to Coding
    • Beginner Languages: Small Basic, processing
    • Visual Programming: Kodu, Scratch, Tynker, Hopscotch, Blockly
  • Coding Physical Things
    • Arduino, Lego Mindstorm, Rasberry Pi

*Aimed at schools

Programming ought to be pursued by the intellectually curious in addition to the professionally ambitious. Above is a growing plethora of resources to try out until schools catch up. I believe our president said it best, so I will leave you with his words from a fireside hangout: “I want to make sure that [students] know how to actually produce stuff using computers and not simply consume stuff.”