Study Guide@lith

Linköping Institute of Technology

Valid for year : 2017
TDDD38 Advanced Programming in C++, 6 ECTS credits.
/Avancerad programmering i C++/

For:   CS   D   DAV   DI   I   Ii   IP   IT   SY   U   Y  


Prel. scheduled hours: 84
Rec. self-study hours: 76

  Area of Education: Technology

Main field of studies: Computer Science, Computer Engineerring, Programming

  Advancement level (G1, G2, A): A

The purpose of this course is to give deep knowledge about constructs and mechanisms in the programming language C++. Less focus is on advanced applications, i.e., the course is not a systems development course, a problem solving course, or alike. Upon completion of this course the student should be able to:
  • Explain non-trivial C++ language constructs and their semantics, e.g. classes, derivation, polymorphism, templates, exception handling, namespaces, types, type conversion, temporary objects, etc.
  • Explain the overall design principle of the C++ standard library, especially the container, iterator and algorithms related parts.
  • Design and implement usable, correct, error-safe, non-trivial classes and polymorphic classes.
  • Design and implement advanced program components, such as e.g. traits classes, policy classes and function object classes.
  • Use different components from the C++ standard library in combination to solve non-trivial computation problems, e.g. combine standard containers algorithms, iterators, function objects, an own function objects, to design computations.

Prerequisites: (valid for students admitted to programmes within which the course is offered)
Good knowledge and skills in programming in at least one procedural and/or object-oriented language (e.g. Ada, C, Pascal, Java or C++), and knowledge about fundamentals of object-oriented programming (class, inheritance, polymorhism).

Note: Admission requirements for non-programme students usually also include admission requirements for the programme and threshhold requirements for progression within the programme, or corresponding.

The course is to a great extent a self-study course, and is given continuously each semester. A series of lectures is given during the first half of the course. Self-studies exercises and different kind of information sources are available on the course web pages. Tutoring is mainly given via e-mail. Computer resourses are scheduled for self-studies. The course is examined four times per year.
The course is offerd twice every year: Vt1+Vt2 and Ht1+Ht2.

Course contents:
Classes, operator overloading, derived classes, inheritance, polymorphism, lambda expression, namespaces, exception handling, templates. C++ Standard library: strings, streams, containers, iterators, algorithms, function objects, traits and policy classes. C++-specific design patterns.

Course literature:
Stanley B. Lippman, Josée Lajoie, Barbara E. Moo: C++ Primer 5/E, Addison-Wesley, 2012. Traditional text book for education.
Bjarne Stroustrup: The C++ Programming Language 4/E, Addison-Wesley, 2013. If you already can program some in C++ or similar languages.

Computer examination
There are 4 examination occasions per year, in the examination periods "påsk" (Easter), Vt2 (May/June), August, and Ht2 (January). The computer exam length is 5 hours and IDA's Sun computer system is used, which demands familiarity with that system, the C++ programming environment and text exiting facilities available on that system.

Course language is English.
Department offering the course: IDA.
Director of Studies: Ahmed Rezine
Examiner: Klas Arvidsson
Link to the course homepage at the department

Linköping Institute of Technology


Contact: TFK ,
Last updated: 02/02/2017