At UC Berkeley | |
| 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 Analysis Project: Proof-Carrying Verifiers, with Evan Chang; led to this paper |
| CS 301: | Teaching Techniques for Computer Science |
| Fall 2004 | |
| CS 261: | Computer Security Project: Byte Bouncer: Efficient Enforcement of Least Privilege Using Certified Binaries, with Arindam Chakrabarti and Evan Chang |
| CS 278: | Complexity Theory Project: Survey on Proof Complexity |
| CS 294-3: | Techniques for Automated Deduction Presentation on Coq |
| Spring 2004 | |
| CS 270: | Combinatorial Algorithms and Data Structures Project: Graph Partitioning to Optimize Searching, with Dave Mandelin Scribe notes |
| CS 276: | Cryptography Project: Survey of Symbolic Techniques for Protocol Analysis Scribe notes |
| Fall 2003 | |
| CS 262A: | Advanced Topics in Computer Systems Project: Deluge: Multi-hop sensor network reprogramming at scale, with Gil Tolle and Jonathan Hui |
| CS 263: | Design and Analysis of Programming Languages Project: An untrusted verifier for Typed Assembly Language [see also my MS project report for an expanded version] |
| Math 225A: | Metamathematics |
At Carnegie Mellon University | |
| 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 |
Advanced Placement credit | |
| Calculus BC | |
| Chemistry | |
| Computer Science AB | |
| English Literature | |
| European History | |
| Physics C: Mechanics | |
| Physics C: Electricity and Magnetism | |
| U.S. Government & Politics | |