I maintain a web page listing resources for using formal methods in education.
In the fall of 2015, I taught a seminar on mathematical language.
In the spring of 2012, I taught the second semester of our core graduate seminar in philosophy, with the following syllabus: pdf.
In the fall of 2012, I taught a seminar on mathematical understanding and cognition.
In the fall of 2011, I taught a freshman seminar on the history and philosophy of mathematics.
In the spring of 2007, I taught a seminar on practical decision procedures with Ed Clarke.
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.
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.