- Su16 - Introduction to Python (TBA)
- Sp16 - CSE555: Theory of Computation (25). Syllabus
- Sp16 - CSE355: Introduction to Theoretical Computer Science (275). Syllabus
- Fa15 - FSE100: Introduction to Engineering, Instructor (43). Syllabus
- Introduction to Java Part 1. A quick, but gentle introduction to the Java programming language. It covers all of the material taught in the first-semester course CSE110 at ASU, and is around 50 pages. Provides exercises as well as examples.
- "[T]his is my first time dealing with programming and with your lecture notes everything seems much more explainable and understandable."
- Complexity Theory. A graduate-level introduction to the field of complexity theory. The main topics are: Polynomial Hierarchy + Alternating TMs, Boolean Circuits + Hastad's Switching Lemma, Randomization, Interactive Proofs, PCP Theorem and Hardness of Approximation, Decision Trees, Counting Complexity, and Parameterized Complexity.