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!")

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.

“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.

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.