Years ago, I lost my temper while arguing with my brother, and said, "Jeff, I could teach you everything I know and you'd still be an idiot." Please keep that in mind as you read this site.

Recent posts

GSoC 2018

It’s been a couple of years since I supervised a Google Summer of Code project, but I still enjoy browsing the projects and seeing what people are up to. Whi...
April 30, 2018

Version 3 Feedback

Version 3 of How to Teach Programming (and Other Things) is now kinda sorta maybe ready for feedback: if you have time to go through 270 pages and tell me wh...
April 28, 2018

Is This a Notional Machine for Python?

Mark Guzdial was kind enough to take a few tweets last week to try to explain the idea of a “notional machine” to me. If I understand correctly, it’s a compe...
April 12, 2018


I’d like to teach scientists how to program, but that would be a lot easier to do if we had better software tools to offer them.
April 01, 2018

The Undergraduate Software Project Guide

Back in 2007, I tried to condense everything I had learned from supervising undergraduate thesis projects at the University of Toronto and elsewhere into a s...
April 01, 2018