I just finished cleaning up some older course websites and (finally!) switching all my stuff to use HTTPS. In honor of that, here’s a roundup of all the courses I’ve taught in the last four years.
- In fall 2018, I designed and taught a grad seminar, “Languages and Abstractions for Distributed Programming”. My students and I wrote a group blog that got some praise. Here’s the retrospective blog post.
- In fall 2019, at the start of my second year, I designed and taught another grad seminar, “SMT Solving and Solver-Aided Systems”. This one has a retrospective blog post, too.
- In winter 2020, I taught “Programming Abstractions: Python”, an almost-introductory, kinda data-sciencey, Python course for undergrads. The course design and most of the materials I used were based on ones created by my colleague Luca de Alfaro.
- I’ve taught undergrad distributed systems four times: spring 2019, spring 2020, spring 2021, and fall 2021. I created my own materials for this course, based on my colleague Peter Alvaro’s course design. The first time I taught the course, I had an optional zine-making project – check out the delightful zines my students made! Here’s a blog post about the zine project, which was inspired by Cynthia Taylor’s zine assignments for her operating systems and networking courses. Later, Pete Peterson adopted the zine project idea for his infosec course, and I eventually incorporated the idea into my CAREER grant proposal.
- In spring 2020 and spring 2021, I taught my distributed systems course live on Twitch! I blogged about my streaming setup and about how it went. You can watch all my distributed systems lectures from 2020 and 2021 on YouTube, and I still answer people’s questions in YouTube comments pretty often. Someday I’ll write up a FAQ.
- I’ve taught graduate distributed systems twice, in fall 2020 and fall 2021. Both times, I used a structured in-class discussion process based on an approach developed by Norman Ramsey, Kathleen Fisher, and Matt Ahrens in their courses taught at Tufts. My students created public wikis about the papers we read.
- Finally, in spring 2022 I taught undergrad programming languages for the first time (!). My colleague Owen Arden designed this course, which is heavily inspired by PL courses taught by Ranjit Jhala and Nadia Polikarpova at UC San Diego.
And that’s the last four years of teaching! In 2022-23, I’m scheduled to teach another grad seminar (maybe about distributed systems verification, but I’ll decide later) in winter, and undergrad PL again in spring.