These are notes and programs I am using for tutoring. Many of the programs and concepts are borrowed from MIT OpenCourseware's excellent 6.001 course (2011).