|
|
Module code: PIB-PRG4 |
|
3V+1P (4 hours per week) |
5 |
Semester: 4 |
Mandatory course: no |
Language of instruction:
German |
Assessment:
Written exam
[updated 24.02.2018]
|
PIBWI50 Applied Informatics, Bachelor, ASPO 01.10.2011
, semester 5, optional course, informatics specific
PIB-PRG4 (P221-0123) Applied Informatics, Bachelor, ASPO 01.10.2022
, semester 4, optional course, informatics specific
|
60 class hours (= 45 clock hours) over a 15-week period. The total student study time is 150 hours (equivalent to 5 ECTS credits). There are therefore 105 hours available for class preparation and follow-up work and exam preparation.
|
Recommended prerequisites (modules):
None.
|
Recommended as prerequisite for:
|
Module coordinator:
Prof. Dr.-Ing. Matthias Jung |
Lecturer: Prof. Dr.-Ing. Matthias Jung
[updated 16.02.2023]
|
Learning outcomes:
After successfully completing this module, students will: _ be proficient in the basic language concepts (data types, expressions, control structures, functions, exception handling) of C++. _ be proficient in the special C++ concepts of object orientation (classes, objects, inheritance, polymorphism) and be able to implement them in programming terms. _ be capable of using function and class templates in programs. _ be able handle basic classes and algorithms of the C++ standard library (e. g. strings, input/output, container classes, generic algorithms) confidently. _ be able to develop solutions to difficult problems in small teams and implement them in a well-structured manner.
[updated 24.02.2018]
|
Module content:
The course will introduce students to structured, object-oriented and generic programming with C/C++. C/C++ language elements will be introduced and their use practiced in exercises on the basis of the knowledge imparted in the Programming 1-3 modules. The use of the C/C++ standard library will be emphasized. 1. Introduction - History - Use - Development of C/C++ programs - A comparison of C++ and Java 2. The basics 2.1 The basics and data types 2.2 Arithmetic 2.3 Type transformations 2.4 Control structures 3. Functions and structures 3.1 Functions and references 3.2 Structures 3.3 Preprocessor directives 4. Data types 4.1 Enums and arrays 4.2 C strings 4.3 The string class 4.4 Pointers 5. In/Output 5.1 In/Output 5.2 Input/Output formatting 5.3 File handling 6. Classes 6.1 Structure of classes 6.2 Using Doxygen 6.3 Copy constructor and assignment operator 6.4 Class attributes and _methods 6.5 Friends 7. Overloading operators 7.1 Overloadable operators 7.2 A rational number class 7.3 Various applications 7.4 Smart pointer 8. Inheritance 8.1 Introduction 8.2 Virtual functions 8.3 Copy constructor and assignment operator 8.4 Abstract classes 8.5 Multi inheritance 8.6 The dynamic_cast operator 9. Exception handling 10. Templates 10.1 Function templates 10.2 Class templates 11. Standard template library 11.1 Introduction 11.2 Sequence containers 11.3 Iterators and algorithms 11.4 Associative containers 12. Runtime Type Information (RTTI)
[updated 24.02.2018]
|
Teaching methods/Media:
Transparencies, projector, lecture-specific homepage
[updated 24.02.2018]
|
Recommended or required reading:
Breymann, Ulrich: Der C++ Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen., Hanser-Verlag Stroustrup, Bjarne: Einführung in die Programmierung mit C++, Pearson Studium Eckel, Bruce: Thinking in C++; Second Edition; Prentice Hall: www.bruceeckel.com Grimm, Rainer: C++11: Der Leitfaden für Programmierer zum neuen Standard Addison-Wesley Will, Torsten T.: C++11 programmieren: 60 Techniken für guten C++11-Code Galileo Computing; Meyers, Scott: Effektiv C++ programmieren: 55 Möglichkeiten, Ihre Programme und Entwürfe zu verbessern; Addison-Wesley Schäling, Boris: The Boost C++ Libraries; Xml Press Bjarne Stroustrup´s C++ Style and Technique FAQ: http://www.stroustrup.com/bs_faq2.html The C++ Resources Network: http://www.cplusplus.com/ C++ Reference: http://www.cppreference.com Boost-Library: http://www.boost.org/
[updated 24.02.2018]
|
Module offered in:
SS 2024,
SS 2023,
SS 2022,
SS 2021,
SS 2020,
...
|