Design of Computer Programs A free course taught by Peter Norvig programming courses peter norvig 10 months ago