Systemnahe Programmierung in C (SPiC) im SS 2016
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: Do 16:15 - 17:45, H11; Einzeltermin am 13.4.2016 16:00 - 17:30, H8; Bemerkung zu Zeit und Ort: ACHTUNG: Zusätzlicher, einmaliger Vorlesungstermin in der ersten Semesterwoche am Mittwoch, 16:00 - 17:30 im H8!
- Studienfächer / Studienrichtungen
- WPF M-BA 2
PF ME-BA 2
WPF TM-BA 2
WPF MT-BA ab 5
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.
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 im Format 2x2 in der Vorlesung ausgeteilt. Diese Foliensätze werden hier im PDF-Format angeboten.
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.
Für die komfortable Anzeige am Bildschirm steht außerdem das Gesamt-Handout im Format 1x1 zur Verfügung (verfügt über ein Inhaltsverzeichnis; Querverweise und Links sind klickbar). Da der Vorlesungsstoff parallel zur Vorlesung entsteht, ist diese Datei noch nicht vollständig; sie wird sukzessive ergänzt. Änderungen bleiben vorbehalten.
All slides are copyrighted (C)2006–2016 by Daniel Lohmann and Jürgen Kleinöder,
University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!