The defibrillators are warming up to put another jolt into Hour of Code this week during Computer Science Education Week (Dec 7-13). If you’re not aware of the event, the official definition is ‘a one-hour introduction to computer science, designed to demystify code and show that anybody can learn the basics.’ It’s a fantastic global grassroots movement that essentially happens year-round; however, you’ll see a ramp up of publicity, events and it’s presence in various apps over the next week.
Code.org is the repository of actual tutorials you can get stuck into through just your browser, that includes web programming learning blocks in even the popular flavours of Minecraft, Star Wars and Frozen.
Game-oriented Intro to Programming Apps [geared towards K-12]:
There are a few great apps that run with this game-oriented approach of easing into coding. Many of them with free LITE Hour of Code versions or lessons:
- Lightbot : Programming Puzzles (iOS) – These are actually a suite of 4 versions of this app that immerse you directly into developing programming logic by guiding a little robot to his destination. Other variants: Lightbot Jr : Coding Puzzles for Ages 4+ (iOS), Lightbot : Code Hour (iOS), and Lightbot – Programming Puzzles (Mac).
Kids’n’Code (iOS) – Another visually engaging app for learning basic programming concepts. It’s based off of well-known visual programming languages.
Tynker (iOS) – a very deep and visually engaging toolkit to learning programming principles, event develop your own mini-games. Just added Hour of Code Tutorials.
Hopscotch: Hour of Code Edition (iOS) – focused around making games. This is the Free Hour of Code Edition. There is a fully-unlocked version, Hopscotch For Schools (iOS) that has all the characters unlocked.
CodeQuest – Learn how to Code on a Magical Quest with Games (iOS) – the focus is on beginning website development. No Hour of Code material.
Visual Programming Languages
Code is daunting to look at and can be a turn-off to the uninitiated (of any age) – like any foreign language really. Fortunately there are some very powerful yet quite easy to pickup Visual programming languages that have been around since the 1960s. I’ll highlight 3 that are a great starting place and which are still in active use today.
Scratch was developed by the MIT Media Lab and first released in 2003 for ages 8 and up. It is highly impressive, still actively developed, supported by many of the top computer companies and sports a thriving community of over 14 million freely available programming projects. Beyond the desktop, it can be found in LEGO Mindstorm and Arduino robotics applications besides their own native languages (more on these later).
Alice was developed in Germany at the Programming Systems Laboratory. It is another top language to introduce beginners into programming in a 3D environment and the concepts of event and object-oriented programming.
Deeper Dive: Leveling up to more powerful programming languages
What an amazing era we are in where the fundamentals of almost any school of learning can be had for admission price of simply having access to a computing device and the internet. I realise there is still a significant barrier of entry beyond the first-world, but that is rapidly changing.
There are unlimited educational resources (of varied quality) for free & paid on the internet of course. I’d suggest starting with the official links above which will lead to many quality resources. There are too many that are ever-changing to begin listing here but there’s a nice collection by educators I discovered recently for Swift Education.
For an app-based approach you’ll find both dedicated language apps as well as most of the higher-caliber sources offering a portal to their entire e-learning course catalogs.
Single course apps (Free)
- Python Tutorial: Learn Python Quickly (iOS) – 13 lectures
Learn Python Pro (iOS) – game-like social competitive learning
Major online learning portals (Free to Freemium)
edX (iPhone only)
Lynda.com – not free but is offered free by most universities in the world. Their catalog is exhaustive on just about every subject.
Robotic/Mini computer kits
And when you’re ready to take this into the physical space, there’s been no better time to cheaply enter into the wonderful world of DIY computer and robotic projects. Venture out and pick up one of the many variants of these kits of awesome:
- LEGO Mindstorm – the most kid-friendly introduction to robotics but even used at the university level. It’s a serious investment of $400-500 though for the most recent EV3 kits, but earlier versions can be found for cheaper online. You can program them with it’s own native visual programming language but can be extended with Scratch using a free helper library or check out this amazing open-source online programming environment Open Roberta Lab.
- Raspberry Pi – the smallest cheapest computer with a complete Linux server OS on it. There is a fantastic and fervent online community around it and it highly adaptable like the Arduino. You can even combine the two boards for hybrid projects taking advantage of connectivity of Arduino with the compact computing of the Pi. Fusion-Ha!
Coding for Visual Arts
Any language can produce 2D or 3D visuals that can be displayed on a screen or projected or transmitted through external sources. One in particular that is intentionally suited for this (and that I occasionally tutor in at the university level) is called Processing. It is Java-based and thus can be written and compiled on Mac/Windows/or several Linux variants, even iOS to a degree. However it the processing language is a simpler layer above that (about the same complexity as Python) that compiles into Java behind the scenes. The beauty of it for beginners is being able to write as little as a dozen lines of code that grants some immediate gratification in computer graphics. It doesn’t end there thought as it can be extended with hundreds of external libraries that open the doors to 3D animation, typography, music, data manipulation and visualisation, external device control and so on.
Coding for Music
This topic is close to my heart, so I’ll cover a few avenues where you can explore the intersection of music and code. There are 3 open-source music languages that have been around for awhile:
MobMuPlat (iOS) – is only a front-end for a Pd music app you write on your Mac and control it from MobMuPlat.
I’d be really stoked if someone came out with an iOS environment for the object-oriented language SuperCollider, but there is:
CsoundPad (iPad) – a free Csound compiler.
Modular Synthesis anyone?
- AnalogKit (iPad)
audulus (iOS) – highly-anticipated shiny new 3.0 version coming out Dec 8. Previous version has been pulled until then.
zMors Modular (iPad)
UPDATED 2015-12-07: added info on Swift and began a list of Special Events during Computer Science Education Week.
UPDATED 2016-04-16: added Kids ‘n’ Code app and section on Visual Programming languages.