The main purpose of the project is furtherance of the overall goal of the course: to develop intellectual tools that allow the programmer to attain a high degree of confidence that his or her programs have the important properties of generality, correctness, and efficiency. The projects are a way of consolidating and putting into practice some of the principles covered in the course, including not only programming techniques and language knowledge but also understanding of important computer science concepts and how they are related. |