Generic Programming and Library Development

Quarter 4, 2007

   Assignments
   Course evaluation
>Course home page
   Course plan
   Essays on tools
   ISIS home page
   Mini-project
   Slides


The CPH STL
The CPH STL project
September 2000

The Open Tissue
The OpenTissue project
November 2003

Course description

The purpose of this course is to provide a deep understanding of the C++ programming language and its standard library. Advanced programming techniques such as static polymorphism, policy classes, metaprogramming, and expression templates are described, and it is shown how these techniques are used in modern library development. Most part of the examples come from libraries being developed at DIKU, but other libraries will be considered as well.

Warning: This is a work-intensive course!

Course team

Lectures

  • Tuesday from 9.00 to 11.00 in Store auditorium at DIKU
  • Friday from 9.00 to 11.00 in D317 at HCØ
  • First lecture on April 24 at Aud. 3, August Krogh Institut

Prerequisites

  • Students should have basic C++ experience
  • More than 20 students
  • No more than 48 students

Study credit

  • 7.5 ECTS (non-report documented) 

To get the credit

  • Each student must pass at least 2 assignments. To pass an assignment students must
    • Hand in max. 4 pages
    • PDF file using CPH STL LaTeX styles
    • before the given deadlines
  • Each student must give at least one oral presentation
    • 15 minutes
    • Hand in max. 2 pages
    • PDF file using CPH STL LaTeX styles
  • Each student must hand in a mini-project report
    • Hand in maximum of 12 pages
    • PDF file using CPH STL LaTeX styles
  • Each student must take the oral examination

Handing in is done by uploading PDF files on the ISIS course homepage. Assignments and presentations can be done in groups of at most 3 members.

Grades

Grades will be given according to grade points achieved by each students. It is possible to obtain grade points as follows:

  • Assignments: 20-40 points
  • Presentation(s): 10 points
  • Mini-project report: 0-20 points
  • Oral examination: 0-30 points

Grade points are converted into grades according to the following table:

Grade PointsGrade
50-57 points 6
58-65 points 7
66-73 points 8
74-81 points 9
82-89 points 10
90-100 points 11,13

Literature

Our main text book is

Handouts

  • Chapter 10, Steve McConnell, Code Complete: A Practical Handbook of Software Construction, Microsoft Press (1993).
  • Chapter 23, British Standards Institute, The C++ Standard: Incorporating Technical Corrigendum 1, BS ISO/IEC 14882:2003, John Wiley and Sons, Ltd. (2003)
  • Appendix E, Bjarne Stroustrup, The C++ Programming Language, Special Edition, Addison-Wesley (2000)

The web is a wonderful resource for finding papers. We will generally NOT provide any supplementary papers in class or as links on this page. Instead it is part of the exercise to find them. Use a search engine like Google (or Google Scholar or ACM Digital Library) to find the papers mentioned below as well as other relevant literature.

  • G.D. Reis and B. Stroustrup, Specifying C++ concepts. 2006.
  • Douglas Gregor et al., Concepts for C++0x (revision 1), Technical report N1849=05- 0018, ISO/IEC JTC 1 (2005)

Tools and software

Image Lab is located in Room S010 and includes the following equipment:

  • Windows PCs
  • Visual Studio® .NET 2005

Please follow the rules. The Visual C++ compiler for Windows can be acquired from MSDNAA.

CPH STL LaTeX style files can be downloaded from http://www.cphstl.dk/WWW/tools.html

For creating PDF files try The LaTeX Beamer Class Homepage

Other information

  • First announcement [txt]
  • Confused about quarters? [ISIS]
  • Our textbook [home page]
  • Course in Quarter 4. 2006 [home page]
  • The Performance Engineering Laboratory [home page]
  • Making projects for the CPH STL [HTML]
  • The Image Group [home page]
  • A selection of student project proposals from the image group [HTML]
This page was last modified by Jyrki Katajainen on 20.04.2008.