
I love to teach, and I love to build.
I teach students to build—with code and AI.
And I build things that help them learn.
My goal is to teach computer science to as many people as possible. I do this by creating interactive learning environments that scale. You can explore an example of my materials at learncs.online. I'm also building a new course on using and understanding AI for non-technical students, and rethinking how we teach programming in the age of AI.
Here's a long bio. Perhaps you'd prefer something shorter? Or you could chat with my AI assistant?
I post essays here on teaching, technology, and the overlap between the two. I try to keep my essays on teaching accessible to teachers who don't program, and my essays on technology interesting to programmers who don't teach.
Here are my latest four essays. For the complete set, click here.
Practicing what you profess.
AlphaGo didn't just beat humans—it changed how we understand Go. AI coding agents will do the same to software development, if we let them.
In 2023 I sat down with Aaryaman Patel and Juan David Campolargo Hoyos for a five-hour conversation that touched on education, life, meaning, and everything in between.
Breaking large courses into smaller pieces doesn't make them better. It can easily make them worse.
Here is a random selection from my archive. Enjoy!
Live teaching demonstrations are an ineffective way to interview teaching faculty. There's a better approach.
For more essays, click here.