Advanced Programming

Modul IN1503

Dieses Modul wird durch Fakultät für Informatik bereitgestellt.

Diese Modulbeschreibung enthält neben den eigentlichen Beschreibungen der Inhalte, Lernergebnisse, Lehr- und Lernmethoden und Prüfungsformen auch Verweise auf die aktuellen Lehrveranstaltungen und Termine für die Modulprüfung in den jeweiligen Abschnitten.

Modulversion vom WS 2017/8 (aktuell)

Von dieser Modulbeschreibung gibt es historische Versionen. Eine Modulbeschreibung ist immer so lange gültig, bis sie von einer neuen abgelöst wird.

verfügbare Modulversionen
WS 2017/8SS 2012WS 2011/2

Basisdaten

IN1503 ist ein Semestermodul in Englisch auf Master-Niveau das im Wintersemester angeboten wird.

Das Modul ist Bestandteil der folgenden Kataloge in den Studienangeboten der Physik.

  • Allgemeiner Katalog der nichtphysikalischen Wahlfächer
GesamtaufwandPräsenzveranstaltungenUmfang (ECTS)
150 h 60 h 5 CP

Inhalte, Lernergebnisse und Voraussetzungen

Inhalt

- von-Neumann architecture; definition of algorithms; machine languages: compiler, linker, and interpreter; machine code
- variables, identifiers & expressions; comments & documentation; built-in datatypes, expressions, and assignments
- control structures, branches & scopes; while loops
- functions & functional programming; call-stack and the memory layout; call-by-reference, call-by-value, and call-by-const-reference; overloading; recursion
- applicative programming; source code organisation and the C precompiler; namespaces; for loops; enumerations
- pointers and arrays; dynamic memory allocation; structs
- dynamic data structures; simple sorting algorithms as demonstrator use case; algorithm complexity
- object-based programming; functions vs. operations; constructors and destructors; const operations
- object-oriented programming; polymorphism & inheritance
- type-generic programming

Lernergebnisse

At the end of the module, students have a sound expertise in C/C++. They are able to remember and explain the underlying machine behaviour and the corresponding efficiency aspects. The participants can describe the C/C++ instruction set and, in particular, can distinguish the impacts and effects of high level language constructs on the machine level.
They are able to define and explain the fundamental programming paradigms and how they are represented by the C/C++ language. The students are able to analyse real-world problems and to design and implement an efficient software solution using the programming paradigms for considerably complex problems. They are able to verify the implementation critically.

Voraussetzungen

Sound programming skills in one of the standard programming languages (such as Java, Python, Fortran, C/C++) are expected, experiences with an object-oriented programming language will be helpful.

Lehrveranstaltungen, Lern- und Lehrmethoden und Literaturhinweise

Lehrveranstaltungen und Termine

ArtSWSTitelDozent(en)Termine
VO 2 Advanced Programming (IN1503) Gallard, J. Neckel, T. Wittmann, R.
Leitung/Koordination: Bungartz, H.
Do, 16:00–18:00, CH 27402
UE 2 Practical Advanced Programming Gallard, J. Wittmann, R.
Leitung/Koordination: Bungartz, H.
Termine in Gruppen

Lern- und Lehrmethoden

This module comprises lectures and accompanying tutorials. The contents of the lectures will be taught by talks and presentations. Students will be encouraged to study literature and to get involved with the topics in depth. In the tutorials, concrete problems will be solved - partially in teamwork - and selected examples will be discussed.

Medienformen

Slides, whiteboard, exercise sheets

Literatur

- 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++
- Walter Savitch. Absolute C++
- Bjarne Stroustrup. The C++ Programming Language

Modulprüfung

Beschreibung der Prüfungs- und Studienleistungen

The examination consists of a written exam of 75 minutes in which students show that they are able to find solutions to advanced problems arising in the field of programming with C/C++. Questions are used to assess the participant’s knowledge about the machine behavior and the computational efficiency arising from C++ statements. Definitions and properties of fundamental programming paradigms are examined by questions and code examples. Code snippets with questions or small implementation tasks are used to test the capability of designing, verifying or formulating code in terms of efficiency.

Wiederholbarkeit

Eine Wiederholungsmöglichkeit wird am Semesterende angeboten.

Aktuell zugeordnete Prüfungstermine

Derzeit sind in TUMonline die folgenden Prüfungstermine angelegt. Bitte beachten Sie neben den oben stehenden allgemeinen Hinweisen auch stets aktuelle Ankündigungen während der Lehrveranstaltungen.

Titel
ZeitOrtInfoAnmeldung
Advanced Programming
Fr, 23.2.2018, 13:30 bis 15:00 101
Import bis 15.1.2018 (Abmeldung bis 16.2.2018)

Kondensierte Materie

Wenn Atome sich zusammen tun, wird es interessant: Grundlagenforschung an Festkörperelementen, Nanostrukturen und neuen Materialien mit überraschenden Eigenschaften treffen auf innovative Anwendungen.

Kern-, Teilchen-, Astrophysik

Ziel der Forschung ist das Verständnis unserer Welt auf subatomarem Niveau, von den Atomkernen im Zentrum der Atome bis hin zu den elementarsten Bausteinen unserer Welt.

Biophysik

Biologische Systeme, vom Protein bis hin zu lebenden Zellen und deren Verbänden, gehorchen physikalischen Prinzipien. Unser Forschungsbereich Biophysik ist deutschlandweit einer der größten Zusammenschlüsse in diesem Bereich.