Grinnell College
- CSC 151: Functional Problem Solving—Summer 2020, Fall 2020 (Term 1)
- CSC 161: Imperative Problem Solving and Data Structures—Spring 2016, Summer 2016, Spring 2017
- CSC 207: Algorithms and Object-oriented Design—Fall 2015, Spring 2016, Fall 2016, Spring 2017, Fall 2017
- CSC 208: Discrete Mathematics—Fall 2017, Spring 2018, Fall 2019, Spring 2020, Fall 2020 (Term 2), Spring 2021 (Term 2)
- CSC 216: Computer Networks—Spring 2018
- CSC 312: Programming Language Implementation—Spring 2018
- CSC 341: Automata, Formal Languages, and Computational Complexity—Spring 2016, Fall 2019, Spring 2020
- CSC 395: Modern Programming Principles—Fall 2016, Human-Centered Programming—Spring 2020
- CSC 499: Mentored Advanced Project—Summer 2016, Summer 2017, Fall 2017, Summer 2018
- TUT 100: First-Year Tutorial—Fall 2017 (The Beauty and Joy of Expertise), Spring 2021 (Term 1) (The Beauty and Joy of Play)
- TUT 195: First-Year Experience—Fall 2019
University of Pennsylvania
- Engineering Summer Academy at Penn (ESAP), Computer Science—Summers 2012–2016 (instructor).
- ESE 350: Introduction to Embedded Systems and Microcontroller Laboratory—Spring 2014 (co-instructor)
- Homotopy Type Theory Reading Group—Fall 2013
- Penn Institute for Computational Sciences (PICS) C/C++ Bootcamp—Fall 2013, Spring 2014 (instructor)
- CIS 277: Introduction to Computer Graphics Techniques—Spring 2013 (co-instructor)
- CIS 110: Introduction to Computer Programming—Fall 2011 (instructor)
- CIS 190: C++ Programming—Fall 2010 (instructor)
- CIS 193: C# Programming—Spring 2010, 2011 (instructor)
- CIS 399-005: Introduction to Programming in C#—Spring 2009 (TA)
- CIS 262: Automata, Computability, and Complexity—Fall 2008 (grader), Autumn 2009 (TA)
University of Washington
- CSE 143: Computer Programming II—Autumn 2005, Winter 2006 (TA)
- CSE 142: Computer Programming I—Spring 2005, Spring 2006 (TA)
- CSE 421: Introduction to Algorithms—Winter 2005 (TA)
- CSE 322: Introduction to Formal Models—Autumn 2004 (TA)
- CHID 496 S: Game Design Lab—Spring 2006 (organizer)
- CHID 496 J: The Effects and Design of Video Games—Winter 2006 (organizer)
- CHID 496 F: Perspectives on Open Source—Spring 2005 (organizer)