Finished first programming assignment.

Includes optional and extra credit exercises.