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.

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 to Statistical Learning

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