Hi, I'm Geoff

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.

Here's a long bio. Perhaps you'd prefer something shorter? Or you could chat with my AI assistant?


Essays

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.

Latest

Here are my latest four essays. For the complete set, click here.

2025-08-25: UIUC Talkshow Interview

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.

2024-07-05: Divide and Blunder

Breaking large courses into smaller pieces doesn't make them better. It can easily make them worse.

2024-03-21: Ditch the Demo

Live teaching demonstrations are an ineffective way to interview teaching faculty. There's a better approach.

2023-06-14: Large Courses Should Be Better

Large university courses must and can be better. But they also fail in predictable ways, negatively affecting large numbers of students.

Random Selection

Here is a random selection from my archive. Enjoy!

2023-02-11: A Help Site Story

When the pandemic hit, we scrambled to create an effective approach to providing one-on-one support online. The process also led me to some insights about help site design, community building in CS1, and possible paths towards increasing diversity in our field.

For more essays, click here.