Design and implementation of the program library CPH collections

M.Sc. Thesis by Jens Peter Svensson


The purpose of this work is to describe the design and implementation of the program library CPH collections. The library is implemented in Python and consists of a subset of the C++ standard library as specified in the C++ standard. The main body of the thesis is devoted to the description and justification of the design choices made and the implementation techniques used. At the end, some ideas and suggestions for the future development of the library are also given.

The main reason for implementing the library was the presumption that 1) it is easier to learn Python than C++, 2) it is easier to write programs in Python than in C++, and 3) it is easier to perform experiments in Python than in C++. In general, it should be easier for the students to learn, and for teachers to teach, algorithms and data structures, including algorithm engineering, using Python and CPH collections than using C++ and its standard library.

The foundation stone of CPH collections was laid in the course Algorithms and data structures held in spring 2010 at our department. In this course the students were assigned to develop components for the library based on the material provided in the textbook and by the instructors. Part of the thesis work was to collect the available components written by different people in different programming styles together to form a coherent library. The details of this exercise are not addressed in the thesis, but the work done by this early generation of students is greatly appreciated.

The following files are available for download: