# 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.

## Java

- Getting Started
- Fields and Methods
- Variables, Conditionals, and Loops
- Arrays and Matrices
- Lists:
`ArrayList`

s and`LinkedList`

s - Abstraction
- Exercise 1: Conway’s Game of Life
- Exercise 2: Storing User Data
- Exception Handling
- Abstract Data Types
- Recursion
- AP Computer Science A Practice FRQs
- Stacks and Queues
- Binary Search
- Sorting Algorithms, Part 1
- 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.*

For learning x86 assembly (lessons 3 through 5 below), which is often a component of learning about computing systems and also benefits from using a Linux machine, I wrote a tutorial on how to easily code in x86 without SSHing or using a virtual machine here. It allows you to code in your own online web-browser using an online IDE called `repl.it`

, which is *substantially* easier to use.

- Introduction
- Bitwise Operations
- Integer Types
- x86 64-Bit Assembly, Part 1: Computer Architecture
- x86 64-Bit Assembly, Part 2: Registers and Instructions
- x86 64-Bit Assembly, Part 3: Reading and Writing Assembly
- Pointers in C
`struct`

s and`.h`

Header Files`malloc()`

## Calculus

- Limits and Continuity
- Existence Theorems: IVT and EVT
- Introduction to Derivatives and the Mean Value Theorem
- Evaluating Derivatives
- Higher Order Derivatives
- The Chain Rule
- Derivatives of Trigonometric Functions
- Derivatives of Exponential and Logarithmic Functions
- Implicit Differentiation
- Putting It All Together: Part One
- Derivatives of Inverse Functions and Inverse Trig Functions
- L’Hopital’s Rule
- Derivatives: A Wrap Up (AP FRQs)
- Introduction to Integration
- Basics of Evaluating Integrals
- $u$-Substitution
- Integration Practice Problems, Part 1
- Accumulation Functions and the Fundamental Theorems of Calculus
- Integration by Parts
- Integrals of Rational Functions
- Solids of Revolution
- Arc Length
- Improper Integrals

## Physics (with Calculus)

- Newton’s Laws and Kinematics
- Mechanical Equilibrium
- Friction
- Pulleys
- Mechanical Equilibrium Practice
- Springs and Harmonic Oscillation
- Damped Oscillations
- Spring Energy and Kinetic Energy
- Pendulums
- Momentum and Collisions
- Newton’s Laws Revisited - Rotational Motion
- Mechanical Equilibrium Revisited - Rotational Motion
- Moment of Inertia and Rotational Energy
- Conservation of Angular Momentum
- Electrostatics: Coulomb’s Law and Gauss’s Law

## Introduction to Statistical Learning

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