Teaching Material

Education is important. In working with high school students and college undergraduates, I have developed a number of teaching materials on a variety of topics ranging from computer science and mathematics to physics and chemistry. These are by no means comprehensive, but can serve as helpful review guides and/or topic outlines for current students.

If you find any errors with any of the teaching modules, please do let me know through email at myao at caltech dot edu.


  1. Getting Started
  2. Fields and Methods
  3. Variables, Conditionals, and Loops
  4. Lists and ArrayLists
  5. LinkedLists and Matrices
  6. Abstraction
  7. Lists: A Review
  8. Exercise 1: Conway’s Game of Life
  9. Exercise 2: Storing User Data
  10. Exception Handling
  11. Abstract Data Types
  12. Stacks and Queues
  13. Recursion


  1. Limits and Continuity
  2. Existence Theorems: IVT and EVT
  3. Introduction to Derivatives and the Mean Value Theorem
  4. Evaluating Derivatives
  5. Higher Order Derivatives
  6. The Chain Rule
  7. Derivatives of Trigonometric Functions
  8. Derivatives of Exponential and Logarithmic Functions
  9. Implicit Differentiation
  10. Putting It All Together: Part One
  11. Derivatives of Inverse Functions and Inverse Trig Functions
  12. L’Hopital’s Rule
  13. Derivatives: A Wrap Up (AP FRQs)
  14. Introduction to Integration

Physics (with Calculus)

  1. Newton’s Laws and Kinematics
  2. Mechanical Equilibrium
  3. Friction
  4. Pulleys
  5. Mechanical Equilibrium Practice
  6. Springs and Harmonic Oscillation
  7. Damped Oscillations
  8. Spring Energy and Kinetic Energy
  9. Pendulums
  10. Momentum and Collisions

Introduction to Statistical Learning

These notes are based on a publicly available course offered by Professor Konstantin Zuev at Caltech on statistical learning.

  1. Learning Problems and Statistical Decision Theory
  2. Methods in Regression Problems
  3. Methods in Classification Problems and the Bias-Variance Trade-Off
  4. Linear Algebra of Linear Regression