Learning objectives:
The students acquire the skills to
- understand typical language tools of a modern programming language in depth and be able to apply them in practice at an advanced level,
- analyze and create more complex programs with advanced program elements,
- be able to use important elements of the C++ programming language and the C++ standard library in practice,
- have acquired basic knowledge and skills for a deeper and broader understanding of the practical programming of information processing systems,
- be able to make basic use of a modern version management tool.
Course content:
Consolidation and expansion of selected programming techniques relevant in practice, such as
- Processing structured text files and binary files
- Generic programming, templates (parametric polymorphism)
- Simple graphical user interfaces
- Unit tests
- Use of libraries
- Further language tools from the C++ standard library (e.g. containers, iterators, stream iterators)
- exemplary, practical implementation of advanced algorithms and data structures, such as search trees, hash tables, index or pointer tables, graphs, path searches
- Outlook on other programming languages and paradigms, e.g.
- Event-oriented programming
- Functional programming
- Declarative programming
- Regular expressions
- Lambda functions