I gave the class a set of 3 successively more difficult programming tasks for their homework over the first couple weeks of the project:
Angle surface collision detection Logic from the book Mathematics and Physics for Programers by D. Kodicek Ricardo Sanchez, July 2009
Combined with Minim Sine Wave Example by Daniel Erwin, August 2010
Source code: bounce_generated5 Ball CircleButton Wall
Built with Processing