Notes and excercises from the MIT OCW course 6.00SC Introduction to Computer Science and Programming (Spring 2011)