cs176 notes