Advanced Programming - Winter 17
- Winter 17/18
- Lecture: Dr. rer. nat. Tobias Neckel, , Tutorials: Roland Wittmann, M.Sc., Jean-Matthieu Gallard, M.Sc.
- Time and Place
- Lecture: Thursdays, 4pm-6pm, CH 27402, Walter-Hieber-Hörsaal (5407.01.740B)
- Computational Science and Engineering, first semester (module IN1503)
- BGCE Supervised Teaching
- see below and TUMOnline for announcement and registration
- Semesterwochenstunden / ECTS Credits
- 4 SWS (2V+2Ü) / 5 Credits
- TUM Online Lecture TUM Online Tutorial Moodle
- No tutorial on Friday, February 9.
- Exam will take place on Friday, February, 23 in 101, Interims Hörsaal 1 (5620.01.101).
You are allowed to bring a single hand-written sheet of paper (DIN A4, both sides) as helping material to the exam. Besides that, no other helping materials are allowed, e.g. NO electronic devices.
- We will offer a Q/A session as part of the upcoming tutorials on Friday, February 2, and Tuesday, February 6th.
- No lecture on Thursday, October 19.
- No tutorials on Friday, October 20 and Tuesday, October 24.
- There will be a special "kickstart" a.k.a "compiler setup" session on Friday, October 27 for those who are interested.
- Regular tutorials will start on Friday, November 3 and on Tuesday, November 7.
The weekly lecture discusses selected programming topics, C++ concepts, and programming language techniques. Although we will have a short start-up phase on C/C++ programming, this course relies on many fundamental C++ aspects and programming skills. If the participants are not familiar with those concepts, they have to aquire them themselves prior to the lecture (self-study).
In the weekly tutorials, tutors participating in the Supervised Teaching programme first give a brief presentation on selected topics. These talks comprise outlooks and studies on topics not covered by the lecture and the exam that are however mandatory to program successfully today. Examples for topics are systematic testing and debugging, runtime measurements, build environments and so forth. Afterwards, the tutors present and discuss solutions on selected worksheet problems. The worksheets are published online roughly a week before the corresponding tutorials. This way, all participants have the opportunity to study the problems at home before they are presented solutions and additional information on the challenges. There is no mandatory homework however.
Our tutors are mentored by a senior Ph.D. student due to the Supervised Teaching programme and get didactic feedback and evaluation permanently.
Lecture Slides & Tutorial
Slides, information on lecture rooms, schedules, exam registrations, and so forth are available at Moodle. You can register via TUMOnline.
All organisational details on the tutorials as well as the rooms and dates can be found in TUMOnline. See the corresponding link on the top of this page. All lecture material for the tutorials is published in Moodle. See the link above as well.
- Helping material: a single hand-written sheet (DIN A4), nothing else (e.g. NO electronic devices)
- the exam will extend over all topics discussed in the lectures and tutorials (except where explicitly excluded)
These links provide further information on particular topics. For literature, please consult the module description IN1503 of the course.
- Using g++
- Difference between C and C++ (at least some of them)
- The Art of Computer Programming
- What Every Computer Scientist Should Know About Floating-Point Arithmetic
- Remarks on C (German)
- Eclipse with C/C++ Development Tooling
- Node Level Performance Engineering (Wellein,Hager)
Additional Training Material
Literature for Intro to C++
In case you do not have much experience with C++ and object-oriented programming, you really need to make up for that! Here are possible options:
- Walter Savitch, Kenrick Mock: Absolute C++
- Randall Hyde. Write Great Code I: Understanding the machine
- Randall Hyde. Write Great Code II: Thinking Low-level, Writing High-level
- Scott Meyers. Effective C++
- Scott Meyers. More Effective C++
- Bjarne Stroustrup. The C++ Programming Language