Assignment 1, parts 1 and 2, added direct from SVN repository.