Concepts of C++ Programming
Contents
First, the module studies the basic concepts of the C++ language (syntax, strong typing, type deduction, focus on runtime efficiency). Then, the module studies the central, modern C++ programming concepts. The goal is that participants get a solid and thorough understanding of important and modern C++ concepts.
Organization
- Lecture with integrated exercises:
- Lecture with integrated exercises: Mon 14:30–17:00 (s.t.) in MW 0001 (live streamed/recorded)
- Exercise: Tue 14–16 (c.t.) in Interims II HS 2
- Exercises will include hands-on programming tasks
- Weekly homework assignments for grade bonus (0.3), submission using Git
- Language: English
- Module: CIT323000 (formerly IN2377). 6 ECTS, Bachelor/Master elective in various study programs
- Computer-based exam under supervision (90 minutes) with programming exercises, open book, own laptop required.
- Zulip stream for lecture
- Zulip stream for the homework assignments
Prerequisites
The course is aimed at bachelor/master students who have taken the following (or similar) courses:
- IN0001 Introduction to Informatics + IN0002 Fundamentals of Programming
- IN0007 Fundamentals of Algorithms and Data Structures
Prior experience in C++ or C is not required. Experience with imperative and object-oriented programming languages like Java is necessary.
Material
Material and exercises will be regularly provided throughout the semester.
Script (updated weekly with new lecture content, includes content of slides and additional information and comments): [book.pdf]
Introduction on how to use the exercise system: [introduction.md]
Note: The schedule below is preliminary and is likely to change during the semester.
Date | Topics |
---|---|
15.10. | Overview, Motivation, Hello World
[lec01.pdf] (tweedback)
Exercise: (no exercise session, lecture is on Tuesday) |
21.10./ 22.10. | Basic Syntax, Object Model
[lec02.pdf] (tweedback)
Exercise: TBD |
28.10./ 29.10. | Declarations/Definitions, Preprocessor, Linker
[lec03.pdf] (tweedback)
Exercise: TBD |
04.11./ 05.11. | References, Arrays, Pointers
[lec04.pdf] (tweedback)
Exercise: TBD |
11.11./ 12.11. | Classes and Conversions
[lec05.pdf] (tweedback)
Exercise: TBD |
18.11./ 19.11. | Memory Management and Copy/Move
[lec06.pdf] (tweedback)
Exercise: TBD |
25.11./ 26.11. | Templates
[lec07.pdf] (tweedback)
Exercise: TBD |
02.12./ 03.12. | C++ Standard Library I: Containers and Iterators
[lec08.pdf] (tweedback)
Exercise: TBD |
09.12./ 10.12. | C++ Standard Library II: Algorithms and Functions
[lec09.pdf] (tweedback)
Exercise: TBD |
16.12./ 17.12. | Memory Management II
[lec10.pdf] (tweedback)
Exercise: TBD |
23.12./ 07.01. | Compile-Time Programming and C++ Standardization
Exercise: TBD |
13.01./ 14.01. | Inheritance
Exercise: TBD |
20.01./ 21.01. | I/O and Testing
Exercise: TBD |
27.01./ 28.01. | Parallelism
Exercise: TBD |
03.02./ 04.02. | Larger Projects and "The Real World"
Exercise: TBD |