Seminar: Lectures on the Curry--Howard Isomorphism   [Summer '24]

Let's read a classic textbook.

CS 6110/5110: Software Verification   [Spring '24]

Learn verification tools. Read classic papers. Start a research project.

CS 3520/6520: Programming Languages   [Fall '23]

Programming language concepts with SHPLAIT and big boss Matthew Flatt.

CSCI 2950-X: Topics in PL and Systems: Tables and Humans   [Spring '21]

Seminar on two topics: language (especially type system) support for programming with tables, and human factors in programming languages.

CS 4500: Software Development   [Fall '20]

The biggest software development yet at Northeastern: three sections, two instructors, tens of staff, one on-campus secretary (me), and over 100 students.

CS 4500: Software Development   [Fall '18]

Pair programming, code walks, client / server game.

CS 2500: Fundamentals I   [Fall '16]

"In the end, everybody must understand for himself."
-- Per Martin-Lof, Constructive Mathematics and Computer Programming, 1985.

CS 3500: Object-Oriented Design   [Spring '16]

Java, music editor, partners, code swaps.

CS 3110: Functional Programming and Data Structures   [Spring '12][Spring '14]

This course is great. The official description says: "Advanced programming course that emphasizes functional programming techniques and data structures." All true, but it's also most Cornell students' first true experience with computer science. It was my first, and I had a blast. Shouts out to RDZ and the staff for teaching a great semester in Fall 2011.

As a Teaching Assistant for CS 3110, I got to work with some awesome people. Being a TA here was more than leading recitations, holding office hours, and grading piles of exams. There were also the hacking sessions where we thought of interesting (and sometimes ridiculous) problems, the 3am runs to Coldstone Creamery after a marathon grading session, and of course, the Zardoz screenings. Zardoz is an experience.