H. Freeman. Programming Methodology - Download free content from Stanford. Best Course You'll Find by mrfrizzlefry This professor is just a gifted teacher, plain and simple.
He grasps the concepts fully and completely, and explains them from the ground up in a way that's both interesting and totally understandable. You don't have to sit and study and try to decipher what he's talking about; you just sort of watch and learn.