A full stack education in programming

Our goal is to create a “full stack” experience of programming. Our measure of success is not getting kids to solve a puzzle, but to actually learn enough about programming, tools, and culture that they can submit a pull request to the Hour of Node project on GitHub:

https://github.com/TheSwanFactory/hourofnode

The app itself is built like an onion (hat tip to Larry Wall). Eventually, we want high school programming classes to be able to walk through:
Playing the game via the GUI (now)
Editing and sharing game levels via the GUI (1.0)
Creating and sharing complete games via the GUI [next release]

After they master the semantics, we teach them the mechanics of Open Source participation
https://github.com/TheSwanFactory/hourofnode/wiki/Using-Git-to-Propose-Changes-to-the-Hour-of-Node

Cloning the project on GitHub
Creating complete games as CoffeeScript dictionaries
Pushing their changes into the repository

Then — and only then, after they’ve learned event-driven semantics, self-expression, and community participation — we can start teaching them syntax and tedium:
CoffeScript syntax
The SwanKit runtime
How to file and fix bugs

To get them there, we have adopted a Fully Open approach. All my daytime coding (and most planning) sessions are live on the Internet:

https://www.youtube.com/user/AwesomeStuffBadly

Instead of a slick polished Disney-esque experience the Hour of Code’s Elsa & Anna — which most kids could never imagine creating themselves — they get to see the messiness of real software development, and see exactly how they could build the very same thing.

  One thought on “A full stack education in programming

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: