All past courses:
I've collected and curated resources for my classes in CS Codex.
My research is focused on analyzing infeasible constraint systems, specifically on extracting information that either points to "causes" of their infeasibility or indicates portions of a problem that are irrelevant to the conflict. Much of this work is implemented in MARCO and CAMUS, both tools for performing such analyses - source code is available for both. See my publications for more details.
Every now and then I make a small script or other program to scratch an itch. I collect these on the tools page in case others might find them useful as well.