| |

Spring 2007 | |

CS 294-5: | Dynamic Program Analysis, Testing, and Debugging (audited) |

Fall 2006 | |

CS 294-9: | (Instructor) Interactive Computer Theorem Proving |

Spring 2006 | |

EECS 219C: | Computer-Aided Verification |

CS 294-2: | Software Synthesis (audited) |

Spring 2005 | |

CS 172: | (TA) Computability and Complexity |

CS 264: | Program AnalysisProject: Proof-Carrying Verifiers, with Evan Chang; led to this paper |

CS 301: | Teaching Techniques for Computer Science |

Fall 2004 | |

CS 261: | Computer SecurityProject: Byte Bouncer: Efficient Enforcement of Least Privilege Using Certified Binaries, with Arindam Chakrabarti and Evan Chang |

CS 278: | Complexity TheoryProject: Survey on Proof Complexity |

CS 294-3: | Techniques for Automated DeductionPresentation on Coq |

Spring 2004 | |

CS 270: | Combinatorial Algorithms and Data StructuresProject: Graph Partitioning to Optimize Searching, with Dave MandelinScribe notes |

CS 276: | CryptographyProject: Survey of Symbolic Techniques for Protocol AnalysisScribe notes |

Fall 2003 | |

CS 262A: | Advanced Topics in Computer SystemsProject: Deluge: Multi-hop sensor network reprogramming at scale, with Gil Tolle and Jonathan Hui |

CS 263: | Design and Analysis of Programming LanguagesProject: An untrusted verifier for Typed Assembly Language [see also my MS project report for an expanded version] |

Math 225A: | Metamathematics |

| |

Spring 2003 | |

15-399: | Constructive Logic |

15-412: | Operating System Design and Implementation |

15-453: | Formal Languages, Automata, and Computation |

80-180: | The Nature of Language |

Fall 2002 | |

15-381: | Introduction to Artificial Intelligence |

15-411: | Compiler Design |

21-355: | Advanced Calculus I |

85-100: | Introduction to Intelligence |

Spring 2002 | |

15-312: | Programming Language Design and Processing |

15-451: | Algorithm Design and Analysis |

21-700: | Mathematical Logic II |

80-120: | Reflections on Science |

15-212: | (TA) Principles of Programming |

Fall 2001 | |

15-212: | Principles of Programming |

15-213: | Introduction to Computer Systems |

21-300: | Basic Logic |

36-325: | Introduction to Probability and Mathematical Statistics I |

85-213: | Information Processing Psychology and Artifical Intelligence |

Spring 2001 | |

15-211: | Fundamental Data Structures and Algorithms |

15-251: | Great Theoretical Ideas in Computer Science |

21-260: | Differential Equations |

21-341: | Linear Algebra |

Fall 2000 | |

15-151: | Mathematical Foundations of Computer Science |

21-259: | Calculus in Three Dimensions |

33-232: | Physical Analysis |

76-101: | Intepretation and Argument |

79-104: | Introduction to World History |

| |

Calculus BC | |

Chemistry | |

Computer Science AB | |

English Literature | |

European History | |

Physics C: Mechanics | |

Physics C: Electricity and Magnetism | |

U.S. Government & Politics |