Instructor, Tufts University (Spring 2015, Spring 2016, Fall 2016, Fall 2017, Fall 2020) Taught COMP105 (Programming Languages), a required course for the Computer Science major. Added recitations to the course in 2015. Put course online as part of Tufts online masters program in 2020. (Spring 2015: 75 students, Spring 2016: 77 students, Fall 2016: 105 students, Fall 2017: 133 students, Fall 2020: 110 students).

Instructor, Tufts University (Fall 2014, Fall 2019) Developed Comp150PLD, a new course on Programming Language Design that focused on domain-specific languages (DSLs). Students read academic papers on example DSLs and on tools for building DSLs. They each designed and built a DSL in the domain of their choice during the semester. (Fall 2014: 11 students; Fall 2019: 21 students, mentored Matthew Ahrens as a GIFT Fellow in teaching this instance of the course).

Co-instructor, Stanford University (Fall 2010, Fall 2009, Fall 2008) Gave six lectures in cs242, Programming Languages, Stanford’s required masters’ level course on programming language fundamentals. Topics included an introduction to functional pro-gramming, type inference, type classes, the IO Monad in Haskell, software transactional memory, and nested data parallelism.