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 |