This document summarizes notes from Andrew Ng's CS229 lecture on support vector machines (SVMs). It begins by introducing the concept of margins and how SVMs aim to find a decision boundary that maximizes the geometric margin between positive and negative examples. It then formulates the SVM optimization problem to find this optimal margin classifier and discusses how solving the dual formulation using kernels allows SVMs to work in high-dimensional spaces efficiently.