Course catalog:
252-0856-00L,
252-0856-AAL
Lecturers:
Felix Friedrich,
Malte Schwerhoff
Primary educational objective is to learn programming with C++. After having successfully attended the course, students have a good command of the mechanisms to construct a program. They know the fundamental control and data structures and understand how an algorithmic problem is mapped to a computer program. They have an idea of what happens “behind the scenes” when a program is translated and executed. Secondary goals are an algorithmic computational thinking, understanding the possibilities and limits of programming and to impart the way of thinking like a computer scientist.
The course covers fundamental data types, expressions and statements, (limits of) computer arithmetic, control statements, functions, arrays, structural types and pointers. The part on object orientation deals with classes, inheritance and polymorphism; simple dynamic data types are introduced as examples. In general, the concepts provided in the course are motivated and illustrated with algorithms and applications.
Date | Message |
---|---|
18.12. |
Link to online exams: moodle link |
3.1.2020 |
The full handout and full slide set published before Christmas was incomplete. This has now been fixed. As announced before Christmas, the chapter on polymorphism, inheritance and subtyping is not exam relevant. |
8.1.2020 |
In order to get access to the master solutions of the moodle mock exams, we have now made the corresponding code-expert course accessible here . You can subscribe to this course here . |
9.1.2020 |
Permitted examination aids: You may take up to 4 A4 sheets (= comprising 8 pages) into the exam. There are no constraints regarding content and layout (text, images, single/double page, margins, font size, etc.). Electronic devices and digital documents are not allowed. |
This is a plan. No plan survives contact with reality. We will constantly update lecture material before the lectures.
Registration for the exercise sessions will open on Friday, September 20th.
The following exercise sessions are offered:
Time | Place | Assistant |
---|---|---|
Wed 10-12 | CAB G 56 | Vanessa Sennrich |
Tue 13-15 | HCI F 8 | Florian Pauschitz |
Wed 10-12 | LFW B 3 | Sebastian Balzer |
Tue 13-15 | HIT K 52 | Joshua Aurand |
Tue 15-17 | HG E 33.1 | Vytautas Astrauskas (EN) |
Tue 15-17 | CHN E 42 | Reza Sefidgar (EN) |
Tue 15-17 | HG E 33.5 | Enis Ulqinaku (EN) |
Assistants marked with EN teach in English, all others in German. Please note that the English exercise sessions already start in the first week of the semester. In case you miss the first session, please do the C++ tutorial and read the exercise session slides on the course organisation (will be published).
Role | Assistant | Notes |
---|---|---|
Head TA | Vytautas Astrauskas (EN) | Main contact for administrative questions |
There will be 3 bonus exercises during the semester (see the agenda above for the schedule). By solving these exercises you will get up to 0.25 grade points added on top of your exam grade. In order to access the bonus exercises you need to unlock them in Code Expert by solving assignments from previous weeks and earning sufficiently many experience points (XP).
To facilitate the introduction to the lecture, especially for beginners in programming, we will provide an introductory tutorial, which can be completed autonomously. We strongly recommend to complete it in the first week of the semester.
Hint: The tutorial is available in both German and English. You can switch the language any time.
Bjarne Stroustrup: Einführung in die Programmierung mit C++, Pearson Studium, 2010 | Also available online from the ETH Domain
Stephen Prata, C++ Primer Plus, Sixth Edition, Addison Wesley, 2012
Andrew Koenig and Barbara E. Moo: Accelerated C++, Addison-Wesley, 2000.
Prof. Dr. Bernd Gärtner and Dr. Michael Hoffmann kindly provided a script (lecture notes) that covers the material presented in the lecture.
In order to get access to old exams and master solutions, please mark that you have understood the statement.