After successful completion of the course, students are able to select a suitable programming language (C or C++) based on the language properties and available tools in order to solve tasks under given framework conditions (e.g. platform, runtime, functionality). In addition, students learn how to design and implement programs in the system-oriented languages C and C++. A further aim is for students to be able to design tests for their own computer programs. Students will also learn how to make the most of language features to design functional and object-oriented interfaces.
In addition to introducing more general language aspects (types, variables, expressions, operators, loops, conditions, scopes, memory management and templates) in the C++20 and C11 language standards, the course content includes the following points:
1. Expressive design of function signatures (parameter types and return value)
- Passing parameters as a copy or reference (pointer)
- Passing parameters with write or read access
- Provision of the result by means of a return value or reference parameter
- Function templates
2. Expressive design of object interfaces
- Construction and destruction
- Classes without private data (aggregate types)
- Classes with private data (and access via methods)
- Abstract interface classes (base classes)
- Class templates
3. Overview of the functionality in the standard libraries with a focus on
- Character strings
- Text output
- File input and output
- Algorithms (and their interfaces)
4. Runtime optimization and numerics
- Floating point numbers (IEEE standards): Basic knowledge of the representation and reproducibility of results
- Basic knowledge of compiler optimization mechanisms
5. Source code organization
- Reproducibility of results (version management)
- Formatting standards
- Standards for commenting
The course consists of lecture units as well as practical units which take place in the lecture hall. These are accompanied by weekly homework exercises to ensure successful learning outcomes. Furthermore, mandatory lab exercises are held in which code examples are implemented in the computer lab of the institute. In order to answer individual questions in the context of the homework, the LVA team offers weekly Q&A sessions which can be attended voluntarily.
Consultation hours (organizational)
The next consultation hour is on:
June 24th, 2024
Location: CD 0519
Time: 2:00 p.m. to 4:00 p.m
For organizational questions: prog@iue.tuwien.ac.at