I love to teach, and I love to code.
I teach students to code.
And I write code that helps 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.
Want to be notified when I post new content? Subscribe here:
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.
How and why we run untrusted Java bytecode in a secure in-process sandbox. (tl;dr: It's fast.)
A single exam isn't the solution to assessment. It's the problem.
I've created an interactive, immersive, and effective online learning experience for my CS1 students. As the first installment in a multi-part series, I'll provide an overview of my course infrastructure, and discuss a bit about how I got to this crazy place.
In today's advertures in maintaining your own CS1 infrastructure, how Windows line endings and a persistent student combined to bring down our entire homework grading backend.
Here is a random selection from my archive. Enjoy!
In Fall 2021 we began offering Kotlin as a language option in my CS1 course. Kotlin has proven to be a great choice, and represents a substantial improvement over other popular options like Python and Java.
For more essays, click here.