Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

SPiC - Vorlesung im SS 2018

UnivIS Informationen

Systemnahe Programmierung in C (SPiC)

Dozentinnen/Dozenten
Dr.-Ing. Volkmar Sieh, Akad. ORat, Dr.-Ing. Jürgen Kleinöder

Angaben
Vorlesung
2 SWS, ECTS-Studium, ECTS-Credits: 2,5, Sprache Deutsch, Studierende der Studiengänge Mathematik mit Wahlfach Informatik und Technomathematik können alternativ zu dieser Veranstaltung auch die Veranstaltung "Systemprogrammierung 1" belegen.
Zeit und Ort: Di 8:15 - 9:45, H7; Einzeltermin am 12.4.2018 10:15 - 11:45, H7; Bemerkung zu Zeit und Ort: ACHTUNG: Zusätzlicher, einmaliger Vorlesungstermin in der ersten Semesterwoche!

Studienfächer / Studienrichtungen
WPF MT-BA ab 5
WPF M-BA 2
PF ME-BA 2
WPF TM-BA 2
WPF MT-MA-BDV 2

Vorlesungsüberblick

Die Vorlesung soll aufbauend auf den Informatik-Kenntnissen aus GdI und ersten Programmiererfahrungen mit der Programmiersprache Java grundlegende Kenntnisse der systemnahen Programmierung vermitteln.

Während sich moderne Anwendungsprogrammierung primär an den Zusammenhängen und Begriffen des Anwendungsproblems orientiert und von den tatsächlichen Abläufen im Rechner weitgehend abstrahiert wird, sind bei systemnaher Programmierung gerade diese Abläufe im Rechner/Mikrocontroller das zu lösende Problem. Damit stehen die mächtigen Abstraktionen eines Betriebssystems, einer Middleware oder einer virtuellen Maschine nicht oder zumindest nur in geringerem Umfang zur Verfügung.

Eine in diesem Umfeld weit verbreitete Programmiersprache ist C, die im Rahmen der Lehrveranstaltung als Grundlage für Vorlesung und praktische Übungen dienen wird.

Obwohl C aus softwaretechnischer Sicht nicht mehr aktuell ist und für den Aufbau größerer Anwendungssoftwaresysteme äußerst kritisch gesehen werden muss, ist ein großer Teil der heute in Betrieb befindlichen Software in dieser Sprache geschrieben und man ist dadurch häufig mit der Wartung oder Weiterentwicklung solcher Software konfrontiert.

Vor allem im Bereich von eingebetten Systemen und allen anderen Arten von systemnaher Programmierung wird C auch heute noch häufig für Neuentwicklungen eingesetzt. Viele Entwicklungswerkzeuge sind auf diese Sprache ausgerichtet und in den Entwicklergruppen ist die Erfahrung mit der Programmiersprache und der damit verbundenen Art der systemnahen Programmierung nach wie vor sehr weit verbreitet.

Der Fokus der Lehrveranstaltung liegt einerseits auf der Architektur systemnaher Software und den Zusammenhängen zwischen den Abstraktionen der Programmiersprache und den tatsächlichen Strukturen und Abläufen in der Hardware (z.B. Zeiger in C, virtueller Speicher, Speicherzellen des Hauptspeichers). Andererseits wird besprochen, wie man bei der gerade im ingenieurwissenschaftlichen Bereich wichtigen systemnahen Programmierung - z.B. für für eingebettete Systeme - vorgeht und diskutiert, wann und wo man eine sinnvolle Grenze zwischen systemnaher Software und der immer umfangreicher und komplexer werdenden Anwendungssoftware ziehen sollte. Im Vergleich zu Java sollen dabei vor allem auch die aus programmiertechnischer Sicht problematischen Seiten von C und die daraus resultierenden Gefahren beleuchtet werden.

Übungen

Die ersten Übungsaufgaben sind "zum Warmwerden" mit der Sprache gedacht (Umgang mit den Sprachkonstrukten). Danach planen wir Aufgaben, in denen wir zunächst die Programmierung in C auf der Schnittstelle eines Betriebssystems wie Linux üben und dann im Gegensatz zu dieser "high-level"-Programmierung mit einem Simulator für einen Mikrocontroller (AVR-Prozessor) einfache Probleme, wie sie in einer eingebetten Umgebung typisch sind, programmieren. Interessierten Studierenden werden wir auch anbieten, die Software dann auf einem echten System laufen zu lassen.

Folien der Vorlesung

Die Folien bilden den roten Faden durch die Vorlesung. Sie können (und sollen) eine ergänzende Vorlesungsmitschrift und die ausführliche Erläuterung der Themen in der Fachliteratur nicht ersetzen!

Das Handout der Vorlesungsfolien wird in der Vorlesung (in mehreren Teilen im 2x2 Format) ausgeteilt.

Für die komfortable Anzeige am Bildschirm und als Referenz stehen sowohl das Handout als auch die Präsentationsfolien (mit Einblendeanimationen) in einer Gesamtversion im PDF-Format zur Verfügung (durchsuchbar, mit klickbaren Querverweisen und Links).

Zur Zuordnung der Folien zu den einzelnen Vorlesungen (sowohl Planung im Voraus als auch Protokoll im Nachhinein) siehe "Terminübersicht (Semesterplanung)" auf der SPiC-Hauptseite.

Version vom Folienvarianten
05.04.2018 Handout und Präsentation
   
Wir beeinhalten uns vor, das Skript regelmäßig zu verbessern und aktualisieren, deshalb die Angabe eines Versionsdatums. Änderungen betreffen jedoch in der Regel nicht das gesamte Skript. Auf den Folien ist jeweils aufgeführt, wann sich das entsprechende Kapitel zuletzt geändert hat Datum der letzten Änderung

All slides are copyrighted © 2006–2018 by Daniel Lohmann, Jürgen Kleinöder, and Volkmar Sieh, University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!