Advanced Programming - Winter 13

From Sccswiki
Revision as of 18:01, 24 October 2013 by Weinzier (talk | contribs)
Jump to navigation Jump to search
Winter 13
Lecture: Dr. rer. nat. Tobias Weinzierl, Alexander Breuer, Tutorials: Gerrit Buse, Roland Wittmann, M.Sc.
Time and Place
Lecture: see TUMOnline
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


- 8 August 2013: Some notes on lecture concept online.



The weekly lecture discusses selected programming topics, C++ concepts, and programming language techniques. As this is not a preparatory course and as programming skills are among the prerequesites, we rely on many fundamental C++ aspects. If the participants are not familiar with those concepts, they have to aquire them themselves prior to the lecture (self-study). The lecturers publish checklists/slides prior to the session on knowledge required for the lecturers.

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 two senior Ph.D. students due to the Supervised Teaching programme and get didactic feedback and evaluation permanently.

For motivated students, we provide a course project accompanying the lectures and tutorials. This project is part of a Ernst Otto Fischer teaching award and is voluntary. Interested students are given access to the FRAVE installation at LRZ. They get access to complex software environments and state-of-the-art visualisation and computing environments. Strating from this environments, the worksheets hold additional programming tasks that are to be realised within this software environment. Step by step, they realise a complex simulation framework. The tasks are to be tackled either individually or in small groups (preferred), and shall give extraordinary motivated students the opportunity to train and improve their programming skills at hands of real-world simulation challenges. Extraordinary successful groups will be given the opportunity to present their results at an national or international conference.

Lecture Slides & Tutorial

Week Requirements Lecture Exercise Remarks
October 14-18, 2013 No tutorials, no lecture due to CSE introductory week
October 21-25, 2013 - Introduction and motivation, the von Neumann architecture, Flynn's taxonomy no tutorials but support to install compilers, software, and so forth
October 28-November 1, 2013 Variable declaration, identifier naming rules, built-in data types, simple expressions C/C++ memory layout, SSE/AVX data types, integer and float representations, automatic type conversion, auto keyword t.b.a.
November 4-8, 2013 Functions Functional programming: Call semantics, scoping, recursion, call-stack and register save mechanisms, lambda expressions t.b.a.
November 11-15, 2013 Loops Applicative programming: Branches and scopes, header and implementation files, global variables, instruction reordering (outlook) t.b.a.
November 18-22, 2013 Linear algebra Heap management: Cache architectures, new and delete, garbage collection, the restrict keyword, classic container realisations (single-linked list, trees, ...) t.b.a.
November 25-29, 2013 t.b.a. t.b.a. t.b.a.
December 2-6, 2013 t.b.a. No lecture (dies academicus) t.b.a.

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.


Exam duration: 90 min.

Helping material: Any hand written or printed material (no electronic devices) may be used during the exam.

Content: All topics of lecture and tutorials.

Repetition: There will be a repetition of the exam. This will take place at the end of the summer term. Registration is due to TUMOnline and mandatory. Please doublecheck a priori with your course regulations whether you are allowed to take part in any case or whether your are allowed only if you have failed the first try.

Participation/registration: Only persons who have registered at TUMOnline are allowed to take part.

Recommended Reading

These links provide further information on particular topics. For literature, please consult the modul description IN1503 of the course.