How to Choose Courses

There are many friendly environments like Scratch and Tynker for kids learning to program. Those can provide a good preparation for my courses. I focus mostly on kids who are ready to write code in mainstream programming languages, usually those kids in grade three and up who can type, and who are good with math and logical thinking.


Python is a good language to start with because there are very few concepts that have to be learned before writing a simple program, such as this one, which, when run, displays a “Hello, world!” greeting:

print("Hello, world!")

“Processing” with Python, Java or Scala

Processing is fun, powerful tool for making 2D and 3D graphics and animation. It provides an excellent platform for learning computer programming while making amazing visuals.

p5.js with JavaScript

p5.js is very much like Processing, but the language used is JavaScript. It’s easy to make graphical works and make them visible to anybody on the Web. Unlike with Processing, you don’t have to install any software.

Sonic Pi and Ruby

Sonic Pi is an application for making electronic music using the Ruby programming language.

My Sonic Pi web page (under development)

Phaser and JavaScript

JavaScript, along with the Phaser Sandbox, is a bit more complicated, but highly motivating because I can present challenges, like “Make the character jump higher”, which motivate students to understand the code so they can change it.

Scala with Kojo

Kojo provides (from the website): A productive, fun, and friendly graphical environment – where computer programming is used to explore and play with Math, Art, Music, Animations, and Games.

The language it uses is Scala, an excellent mainstream language used by some of the best programmers.


These are some formal classes I have taught. For current students, I often pull material from these resources.