This page contains links to courses that I taught at Rice University, in Houston, Texas.

COMP280: The Mathematics of Computation (spring 2000): This is my first attempt at a computer science-oriented discrete mathematics course. I believe that the discrete math courses offered in most CS departments are flawed for several related reasons:

- They serve as catch-all courses for pre-requisite material for other courses; they have no definition or focus of their own.
- They are structured as math courses that draw examples from computer science, rather than computer science courses that utilize mathematics.
- They lack the connection to previous courses needed to adequately motivate the material for students.

My course addresses these problems by focusing on modeling software problems. This draws on the programming experience that most students have prior to taking discrete mathematics, and highlights the true role of discrete math in computer science. The course aims to teach students how to develop, analyze, and prove statements about models common in software systems.

On-line lecture notes are not available at this time. I do plan to develop this course further in the next couple of years. I'd be glad to discuss the course outline and what I would do differently with anyone who is interested.

COMP210: Principles of Computing and Programming (fall 1999): This points to the assignments and notes from my version of the course.

COMP408: Applied Computer-Aided Verification (spring 1997)