Algorithm Library Design: Lecture Notes
http://www.mpi-inf.mpg.de/~kettner/courses/lib_design_03/notes/index.html
Library design is language design. [Stroustrup] Course Goal To learn how to implement software libraries, such as STL, CGAL, LEDA, ..., that have a focus on algorithms and data structures. To learn advanced programming techniques in C++, such as templates, generic programming, object-oriented design, design patterns, and large-scale C++ software design.