Homework for CS61C as seen here: http://www-inst.eecs.berkeley.edu/~cs61c/su14/