## Teaching Experience

University of Colorado—Boulder- CSCI 3104: Algorithms, Spring 2018
- CSCI 7000-014: Tensors & Computational Complexity, Fall 2017

- Tutorial on Computation Theory, Complexity Explorer, released January 2018

- Lectures on Geometric Complexity Theory (17 hours), Fall 2012 - Winter 2013

- Lecturer, CS 102: Introduction to Programming for the World Wide Web II (in Java/JSP/MySQL/AJAX), Spring 2010
- Lab Instructor, CS 102: Introduction to Programming for the World Wide Web II (in Java/JSP/MySQL), Spring 2009 and Spring 2011
- Lab Instructor, CS 152: Introduction to Computer Science II (in C), Winter 2010
- Lab Instructor, CS 161: Honors Introduction to Computer Science I (in Haskell), Autumn 2009
- Lab Instructor, CS 106: Fundamentals of Computer Programming II (in C++), Winter 2007 and Winter 2008
- Teaching Assistant, CS 281: Introduction to Complexity Theory, Spring 2012
- Teaching Assistant, CS 152: Introduction to Computer Science II (in C), Winter 2012
- Teaching Assistant, CS 122: Computer Science with Applications II (in Java), Winter 2009
- Teaching Assistant, CS 121: Computer Science with Applications I (n Java), Autumn 2008
- Teaching Assistant, CS 271: Discrete Mathematics, Autumn 2006 and Autumn 2007
- Teaching Assistant, CS 154: Introduction to Computer Systems, Spring 2007

- Teaching Assistant, 18.510: Introduction to Set Theory and Logic, Fall 2004
- Tutor, Mathematics Department (calculus, differential equations, abstract algebra), Spring 2004
- Grader, 18.01: Calculus I, Fall 2003

## Students Supervised/Mentored

Undergraduate Researcher at CU Boulder- Samuel Schlesinger (U. Mass., Amherst), Summer 2018
- Jamie Tucker-Foltz (Amherst College), Summer 2017, resulting in this paper

- Sarah Brauner (internal advisor: Angélica Osorno), thesis: The Structure of Partial Orders in the Face of Lower Bounds.

- Ian Klasky (Bowdoin), Algorithmic coarsening of computationally irreducible complex systems, Summer 2016
- Roujia Wen (Minerva), Applying novelty search to the SAT problem, Summer 2016
- Sarah Brauner (Reed), Sorting and the information-theoretic bound: a structural analysis, Summer 2015 (abstract)

- Maxinder Kanwal (UC Berkeley; co-mentored with Nihat Ay), Quantifying complexity: An exploration of what one measure of complexity reveals about functional networks, autoassociative memory, and cellular automata, Summer 2015 (abstract)

- Paul Sacawa, Geometric complexity theory

- Elan Bechor, Statistical group theory
- Alexander Staples-Moore, Equitable partitions in graph theory
- Alex Rosenfeld, Understanding irreducible representations
- Isaac Ottoni Wilhelm, Packing triangles on a sphere
- Angelica Wong, Primes and quadratic reciprocity

- Noah Schweber, Constructive logic and sheaves (Winter 2010)
- Wai Lee Chin Feman, Computability theory and Kolmogorov complexity (Spring 2008)
- William C. Abram, Algebraic graph theory (Winter 2008)