In the fall of 2012, I taught a seminar on mathematical understanding and cognition. In the fall of 2015, I taught a seminar on mathematical language.

In the fall of 2011, I taught a freshman seminar on the history and philosophy of mathematics.

In the spring of 2012, I taught the second semester of our core graduate seminar in philosophy, with the following syllabus: pdf.

I have co-taught the following seminars with Ken Manders (Department of Philososphy, University of Pittsburgh):

From 2006-2010, I was co-director of the Carnegie Mellon Summer School in Logic and Formal Epistemology. I taught a week-long workshop on Logic and Formal Verification in 2007, 2008, and 2009.

In the spring of 2007, I taught a seminar on practical decision procedures with Ed Clarke.

Reed Solomon and I organized a special session on effective aspects of measure theory and analysis for the ASL meeting in Montreal in Spring 2006. Ulrich Kohlenbach, Henry Towsner, and I organized an ASL/AMS special session, Logic and Analysis, at the Joint Mathematical Meetings in 2011.

In the summer of 2005, I taught a short course on proof theory with Henry Towsner.

Here are some of the courses I teach regularly at Carnegie Mellon:

Here are some notes on classical and constructive logic: pdf.

When I was in graduate school, I taught a summer course for high school students called "An intuitive approach to higher mathematics," with the Academic Talent Development Program.