Assignments of MIT  programming methodology open course http://www.stanford.edu/class/cs106a/