Harvard's cs50 2011 course problem sets