|
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 10.00 to
12.00 in Aud 3 at HCØ
-
Afternoon films on 29 April & 3 June from 13.00 to 15.00 in N037
-
Inspection meetings on 27 May from 12.00 to 18.00 in
N034 & N037 & Jyrki's office
- Friday from 10.00 to 12.00 in
Aud 3 at HCØ
- First lecture on 22 April
Prerequisites
- Students should have basic C++ experience
Study credit
To get the credit:
- Each student must pass at least two of the four assignments. To pass an assignment students must
- hand in max. 4 pages
- PDF file using the CPH STL LaTeX style
- before the given deadlines.
- Each student must give at least one oral presentation
- 15 minutes
- hand in 5-10 slides
- PDF file using, for example, the CPH STL LaTeX style.
- Each student must hand in a mini-project report
- maximum of 12 pages (excluding the appendix)
- PDF file using the CPH STL LaTeX style.
- Each student must take the oral exam.
Handing in is done by uploading PDF files on the ISIS course
homepage, or by committing the associated files to the CPH STL
CVS repository. Reviews, mini-projects, and
and presentations can be done in groups of at most three people.
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: 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 points | Grade |
0-49 points | F, Fx |
50-59 points | E |
60-69 points | D |
70-79 points | C |
80-89 points | B |
90-100 points | A |
Literature
Our main textbook is
Handouts
- Chapter 21, Steve McConnell, Code Complete: A Practical Handbook of Software
Construction, 2nd Edition, Microsoft Press (2004)
- 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.
-
Alexandre Duret-Lutz,
Thierry Géraud, and
Akim Demaille,
Design patterns for generic programming in C++,
Proceedings of the 6th Conference on USENIX Conference on
Object-Oriented Technologies and Systems (2001)
- Gabriel Dos Reis and Bjarne Stroustrup,
Specifying C++ concepts, ACM SIGPLAN Notices, 41,1 (2006),
295-308
- 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/tools.html
For creating slides try The LaTeX Beamer Class Homepage
Other information
- Confused about quarters? [ISIS]
- Our textbook [home page]
- Course in Quarter 4. 2007 [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]
|