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 let me know through email at myao at caltech dot edu.


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

Computing Systems

Note: These topics assume that you’re familiar with introductory programming. I strongly recommend going over the Java topics above first before starting with this material.

  1. Introduction
  2. Integer Types
  3. Bitwise Operations


  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
  15. Basics of Evaluating Integrals
  16. $u$-Substitution
  17. Integration Practice Problems, Part 1
  18. Accumulation Functions and the Fundamental Theorems of Calculus
  19. Integration by Parts

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
  11. Newton’s Laws Revisited - Rotational Motion
  12. Mechanical Equilibrium Revisited - Rotational Motion
  13. Moment of Inertia and Rotational Energy
  14. Conservation of Angular Momentum

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