|
Systemnahe Programmierung in C (SPiC)5 ECTS (englische Bezeichnung: System-Level Programming in C)
Modulverantwortliche/r: Volkmar Sieh Lehrende:
Volkmar Sieh, Jürgen Kleinöder
Startsemester: |
SS 2019 | Dauer: |
1 Semester | Turnus: |
jährlich (SS) |
Präsenzzeit: |
60 Std. | Eigenstudium: |
90 Std. | Sprache: |
Deutsch |
Lehrveranstaltungen:
-
-
Systemnahe Programmierung in C (SS 2019)
(Vorlesung, 2 SWS, Volkmar Sieh et al., Do, 14:15 - 15:45, HG; Do; Einzeltermin am 23.4.2019, 16:15 - 17:45, H7; Alternativtermin: GSPiC Vorlesung (behandelt den gleichen Stoff). ACHTUNG: Zusätzlicher, einmaliger Vorlesungstermin in der ersten Vorlesungswoche: Dienstag (23.04.2019) von 16:15 Uhr bis 17:45 Uhr im H7!)
-
Übungen zu Systemnahe Programmierung in C (SS 2019)
(Übung, 2 SWS, Benedict Herzog et al.)
-
Rechnerübungen zu Systemnahe Programmierung in C (SS 2019)
(Übung, 2 SWS, Benedict Herzog et al.)
- Wiederholungsübungen im WS
Empfohlene Voraussetzungen:
Grundlegende Kenntnisse der Programmierung
(unabhängig von der Programmiersprache)Es wird empfohlen, folgende Module zu absolvieren, bevor dieses Modul belegt wird:
Grundlagen der Informatik (als Prüfungsleistung) (WS 2018/2019)
Inhalt:
- Grundlegende Konzepte der systemnahen Programmierung
Einführung in die Programmiersprache C (Unterschiede zu Java, Modulkonzept, Zeiger und Zeigerarithmetik)
Softwareentwicklung auf „der nackten Hardware“ (ATmega-μC) (Abbildung Speicher <> Sprachkonstrukte, Unterbrechungen (interrupts) und Nebenläufigkeit)
Softwareentwicklung auf „einem Betriebssystem“ (Linux) (Betriebssystem als Ausführungsumgebung für Programme)
Abstraktionen und Dienste eines Betriebssystems (Dateisysteme, Programme und Prozesse, Signale, Threads, Koordinierung)
Lernziele und Kompetenzen:
Studierende, die das Modul erfolgreich abgeschlossen haben:
erläutern die grundlegenden Elemente der Programmiersprache C: Datentypen, Operatoren, Ausdrücke, Kontrollstrukturen, Funktionen, Variablen, Präprozessor.
bewerten C im Vergleich zu Java im Bezug auf Syntax, Idiomatik und Philosophie.
nennen wesentliche Unterschiede der Softwareentwicklung für eine Mikrocontrollerplattform versus einer Betriebssystemplattform.
beschreiben die Funktionsweise von Zeigern.
beschreiben die Realisierung von Strings und Stringoperationen in C
verwenden spezifische Sprachmerkmale von C für die hardwarenahe Softwareentwicklung und den nebenläufigen Registerzugriff.
entwickeln einfache Programme in C für eine Mikrocontroller-Plattform (AVR ATmega) sowohl mit als auch ohne Bibliotheksunterstützung.
entwickeln einfache Programme für eine Betriebssystemplatform (Linux) unter Verwendung von POSIX Systemaufrufen.
erläutern Techniken der Abstraktion, funktionalen Dekomposition und Modularisierung in C.
beschreiben den Weg vom C-Programm zum ausführbaren Binärcode.
reproduzieren die grundlegende Funktionsweise eines Prozessors mit und ohne Unterbrechungsbearbeitung.
erläutern Varianten der Ereignisbehandlung auf eingebetteten Systemen.
verwenden Unterbrechungen und Energiesparzustände bei der Implementierung einfacher Steuergeräte.
erläutern dabei auftretende Synchronisationsprobleme (lost update, lost wakeup) und setzen geeignete Gegenmaßnahmen um.
beschreiben Grundzüge der Speicherverwaltung auf einer Mikrocontrollerplattform und einer Betriebssystemplattform (Stackaufbau, Speicherklassen, Segmente, Heap).
erläutern die Funktionsweise eines Dateisystems.
verwenden die grundlegende Ein-/Ausgabeoperationen aus der C-Standardbibliothek.
unterscheiden die Konzepte Programm und Prozess und nennen Prozesszustände.
verwenden grundlegende Prozessoperationen (fork, exec, signal) aus der C-Standardbibliothek.
erklären die Unterschiede zwischen Prozessen und Fäden und beschreiben Strategien zur Fadenimplementierung auf einem Betriebssystem.
erläutern Koordnierungsprobleme auf Prozess-/Fadenebene und grundlegende Synchronisationsabstraktionen /(Semaphore, Mutex).
verwenden die POSIX Fadenabstraktionen zur Implementierung mehrfädiger Programme.
Literatur:
- Manfred Dausmann, Ulrich Bröckl, Dominic Schoop, et al. C als erste Programmiersprache: Vom Einsteiger zum Fortgeschrittenen. Vieweg+Teubner, 2010. ISBN: 978-3834812216. URL: http://www.springerlink.com/content/978-3-8348-1221-6/#section=813748&page=1
Brian W. Kernighan, Dennis M. Ritchie. The C Programming Language. Englewood Cliffs, NJ, USA: Prentice Hall PTR, 1988. ISBN: 978-8120305960
Weitere Informationen:
www: http://www4.informatik.uni-erlangen.de/Lehre/SS19/V_SPIC/
Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan: Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:
- Technomathematik (Bachelor of Science)
(Po-Vers. 2015w | NatFak | Technomathematik (Bachelor of Science) | Nebenfach Informatik | Systemnahe Programmierung in C)
Studien-/Prüfungsleistungen:
Systemnahe Programmierung in C (Prüfungsnummer: 31701)
(englischer Titel: Machine-oriented programming in C)
- Prüfungsleistung, Klausur, Dauer (in Minuten): 90, benotet, 5.0 ECTS
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
Die Rahmen der Übungen gestellten Übungsaufgaben können abgegeben werden und werden in diesem Fall bewertet. Auf Basis des Ergebnisses dieser Bewertungen können bis zu 10 % Bonuspunkte erworben werden, die zu dem Ergebnis einer bestandenen Klausur hinzugerechnet werden.
- Erstablegung: SS 2019, 1. Wdh.: WS 2019/2020
- Termin: 02.08.2019, 08:00 Uhr, Ort: Tentoria
Termin: 15.06.2020
Termin: 14.08.2020, 15:30 Uhr, Ort: Tentoria
Termin: 24.03.2021, 11:00 Uhr, Ort: H 11Termin: 02.08.2019, 08:00 Uhr, Ort: Tentoria
Termin: 15.06.2020
Termin: 14.08.2020, 15:30 Uhr, Ort: Tentoria
Termin: 24.03.2021, 11:00 Uhr, Ort: H 11Termin: 02.08.2019, 08:00 Uhr, Ort: Tentoria
Termin: 15.06.2020
Termin: 14.08.2020, 15:30 Uhr, Ort: Tentoria
Termin: 24.03.2021, 11:00 Uhr, Ort: H 11
|
|
|
|
UnivIS ist ein Produkt der Config eG, Buckenhof |
|
|