CS61C, Electrical Engineering and Computer Sciences, University of California, Berkeley
http://inst.eecs.berkeley.edu/~cs61c/