Prev Up Next
Go backward to Teaching assistant
Go up to General Information
Go forward to Prerequisites

Brief overview

Correctness, efficiency, and generality are three of the most important properties of successful computer programs. The main objective of this course is to develop intellectual tools that allow the programmer to attain a high degree of confidence that his or her programs have all three properties. We will focus on an approach called generic programming, whose techniques permit the definition of algorithms and data structures at an abstract level, in effect accomplishing many related programming tasks simultaneously. Methods of structuring a library of generic software components for maximum usability will be studied and practiced using the C++ language. An important tenet of generic programming is that generality should be achieved without losing efficiency, and we will consider performance testing and tuning techniques that aid in achieving highly efficient generic programs. Throughout the course we emphasize the importance of program correctness, with attention both to testing and debugging techniques and to methods of rigorous mathematical specification and proof.


 

Prev Up Next