The development of C++ from C and Simula to ISO standard.
Overview of all parts of C++ according to the ISO standard, including classes, simple and multiple inheritance, overloading, generic functions and classes, exceptions, constant declarations, streams, name spaces, type equivalence and type compatibility, the preprocessor.
Program design with C++: good programming style, procedure at object-oriented development in C++, rules of thumb and tips for design and implementation of C++ programme, support for modularisation, memory handling, making the program code more efficient, common errors and traps, Unicode and localisation, use of the standard library, tools for testing, troubleshooting, static and dynamic linking and name mangling, portability.
The laboratory part (LAB1) consists of two labs and a project assignment. The laboratory part is expected to take about 100 hours.
On completion of the course, you should be able to
- program with dynamic memory allocation
- apply the standard library
- write correct C++ syntax
- write test code
- relate to advanced C++ literature
- program generics with type parametrization
- apply, in C++, your prior knowledge of object-oriented programming
- model an extensive object-oriented project
- present and justify an object-oriented model
The ambition is to as well as possible, given the allocated time, prepare you on the requirements of the industry on a programmer. On completion of the course you should experience that you master all parts of C++ and that you have obtained a self-confidence so that you can enter existing C++ projects in the industry and develop or maintain their code.
As programmer on a company, you can land in a situation where you are absolutely alone when taking decisions. Then it is important that you master the most central concepts. In the middle of the course there will be given an exam testing the central concepts and also your ability to lookup and explain more difficult concepts.
C++ is a copious and complex language compared to e.g. Java. Some new programming concepts such as dynamic memory handling and type parametrized programming. In addition to be tested in the exam, you will have the opportunity to exercise these concepts in the first labs.
The last assignment is written to be solved with classical object orientation. You are assumed to know object-oriented programming before the start of the course, and your knowledge will be supplemented by the specifics of object orientation in C++.
The last assignment is your way to show that you master central parts of the language C++: that you know how polymorphism and virtual work, that you can put restrictions on data using public/private/friends/const and that you can handle memory allocation correctly.