teaching / guides / curriculum

Programming Curriculum


My vision for this site is for it to contain pretty much every topic I’ve learned over the years. Here’s a general roadmap of what I’m planning:

curriculum roadmap

Each of those circles could be its own class. Processing is great for introducing the fundamentals, and it leads pretty logically to both JavaScript and Java, and those both lead to more advanced topics.

With that in mind, if you’re planning a curriculum that spans across multiple classes, here’s how I would organize it:

Primary Students

In a perfect world, students would be introduced to computer science at an early age. I don’t have any experience with this side of things, but you might want to check out the teaching primary students guide.


Processing is great for introducing the basics, since it makes it easy to create animated and interactive programs without a ton of boilerplate code. So far this is the main focus of the site.

HTML and JavaScript

After a student knows Processing, it leads pretty naturally to learning about HTML and JavaScript through Processing.js. Since students have learned the basics in Processing, you don’t have to teach them again. Instead, focus on what makes JavaScript different from Processing.

I’ve started adding HTML and JavaScript tutorials to the site.

JavaScript then leads to more advanced topics such as P5.js, JavaScript libraries, and more complicated web development.


Processing is built on top of Java, so students have already been programming in Java. But Processing also hides a lot of stuff from the user. I’d use a Java course to introduce more advanced topics like inheritance and interacting with complicated libraries.

This can happen before or even at the same time as the HTML and JavaScript class.

Java then leadds to more advanced topics such as server development, Android, and robotics.

Java tutorials are coming soon.