Welcome to my comprehensive note directory. These typeset works are the product of untold hours of study and synthesis of various graduatelevel topics in computer science. They were created specifically for Georgia Tech’s graduate program, but most of them should be selfcontained and wellstructured enough to serve as a gentle introduction to many different topics:

My notes on Computational Perception are the ones that started it all. This 330+ page behemoth provides a (relatively) gentle introduction to computer vision and computational photography. It starts with basic image processing, builds up to “old school” vision techniques, and eventually closes out with applications of machine learning algorithms to vision. It requires a strong mathematical foundation: a basic understanding of concepts from linear algebra and calculus is assumed, though helpful links to outside resources are provided where it’s relevant. This is by far my largest and most comprehensive set of notes and is available for purchase on LeanPub.

Applied Cryptography starts from scratch and builds up a theoretical foundation for formally analysing, evaluating, and verifying the security properties of both symmetric (block ciphers, keyed hash functions, etc.) and asymmetric (key exchange, digital signatures, etc.) cryptographic primitives. The third section slowly explores advanced topics in cryptography as I learn them, like ZKPs.

Machine Learning similarly starts from a baseline of basic mathematical maturity (linear algebra, statistics) and provides a foundation in three schools of ML: supervised learning (decision trees, neural nets, etc.), unsupervised learning (clustering, randomized optimization, etc.), and finally reinforcement learning (Qlearning, game theory).

Algorithms covers the fundamental algorithms of computer science: dynamic programming, graphs, and NP are an improper subset of the covered topics.

Machine Learning for Trading provides a gentle introduction to both machine learning and finance. It starts off with basic formulas for processing stock data, then dives into the life of a hedge fund manager. Finally, these two areas are combined with basic machine and reinforcement learning algorithms to create models for predicting (and profiting from) shortterm stock behaviours. Knowledge of Python is assumed, and knowledge of its popular data processing library Pandas helps.

Artificial Intelligence for Robotics opens up with the (incomplete) probability theory behind localizing a robot in a known world, then dives into sensing the world, planning actions in the world, and executing those actions. It closes with a method of simultaneously localizing and mapping a robot in an unknown world.

Operating Systems does not feature full notes; rather, I simply have coursespecific review guides available for both the midterm and final exams.