The lessons consist of theory combined with practical exercises
and course assignments. During the semester the student will have
to hand in a number of mandatory course assignments. These
assignments are used as a base for the oral examination.
Kursets varighed:
[Kurset følger ikke DTUs normale
skemastruktur]
Evalueringsform:
Bedømmelsesform:
Tidligere kursus:
EJ2C++-U1,
Obligatoriske forudsætninger:
Anbefalede forudsætninger:
Overordnede kursusmål:
C/C++ still holds the absolute leading position in the Open Source
community. The amount of existing and still active C/C++ code lines
is immense.
The course will focus on differences with Java. Java does many
things behind scene; C/C++ has more freedom but is often regarded
as more complicated when handling the larger freedom.
The goal is to handle C/C++ especially concerning the many choices
this language enables you to use. The expertise you learn in C/C++
will be useful in real job experience in many years from now.
Læringsmål:
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
Define and identify the basic differences between Java and
C/C++
Define and identify the basic pitfalls using C/C++
Define and identify basic distinctive features in C/C++
Identify examples of bullits 2. and 3. above in the students
own solution, and identify and describe examples in the students
own solutions
Analyze the consequences of falling into pitfalls in C/C++
Analyze some advantages and disadvantages in different generic
programming strategies (templates, traits, policy classes, meta
programming)
Discuss solutions involving items listed in the
"Kursusindhold"
Reflect on a C/C++ application
Discuss quibbling pitfalls in C/C++
Kursusindhold:
• Compilers, linkers, and precompilers.
• Copy constructor, copy assignment operator, and destructor (“big
three”).
• Handling of memory. Global, heap, and stack.
• Pointers.
• Operator overloading
• Exceptions
• Inheritance
• Polymorphic behaviours; virtual functions
• Precondition and post condition specifications
• Templates; Generic programming.
• Standard Template Library (STL)
• Smart Pointers
• Traits
• Policy Based Class Design
• Meta programming
Litteraturhenvisninger:
Supplementary literature:
Mark Allen Weiss: ”C++ for Java Programmers, Pearson Prentice Hall,
2004
Andrei Alexandrescu: Modern C++ Design, Generic Programming and
Design Patterns Applied, Addison-Wesley, 2001
Herb Sutter, More Exceptional C++, Addison-Wesley, 2002
Bemærkninger:
Evaluation (ref. bullits in Learning Outcomes)
02: if the student fulfils the criteria from bullits (1, 2, 3, 4)
7: if further the criteria from bullits (5, 6, 7) are met
12: if all criteria from bullits (1 through 10) are met
Oral examination based on assignments. Moreover general questions
to the topics of the principal content will be raised.
Through the course the students will have to solve a number of
compulsory course assignments. To be admitted for examination all
compulsory assignments have to be handed in within the time limits
indicated in the assignment. Furthermore all assignments have to be
approved.