I am just been watching this course and it just sets the picture so well for me,
http://www.cs75.net/ it is a Harvard online course as such, you do not get marked !!.. but you can watch the videos and also do the course work :).
Just thought that I would post it :) and I am going to do the assignments :)