Why is coding important? It's the Future
Regardless of whether you love it or hate it, we are currently experiencing a powerful digital revolution that is reshaping our society. Digital humanities and social science programs at universities are expanding. The start-up ethos is rapidly spreading and shaking up established industries. Digital production and fabrication techniques are becoming the norm, and more and more of the world is coming online. If one wants to shape this future, rather than be shaped by it, one has to be literate, one has to know how to code.
My student isn't technical, should he learn how to code anyway? Without a Doubt
Ari: Up to four years ago I didn't consider myself technical, yet now I am a proficient coder. Being able to code has helped me to create custom software and hardware that I've used in my art practice. It's helped me build websites to reach new audiences. It's allowed me to be critical about the technology I use, helping me to evaluate the benefits and detriments of each new gadget (Apple) or service (Facebook). Computer programming used to be the domain of only specialists, but now it is becoming a skill that people are expected to have in almost every industry.
What programming languages do you teach? Raspberry Pi, Processing, P5 and Python
The Raspberry Pi is a cheap micro-computer ($35) that is a superb tool for teaching students "what is a computer"? i.e. what is the CPU, GPU, memory and/or operating system. It is a cheap and effective introduction for working with hardware and software. Processing is a programming language that can easily introduce a student to the core concepts in computer science and creative coding. If a student ever wanted to take data from a satellite, a car or a cellphone and turn it into a dynamic visualization, this is what he or she would use. P5 is the web-version of Processing; if a student wanted to build a web site from scratch, a web application (with many users) or get data from other websites (like the NYT), this is the tool. Python is a robust back end programming language; if the student was interested in artificial intelligence, machine learning, scientific or engineering applications, this is where we'd focus.