stanford course ee316 notes