|
Systemnahe Programmierung in C (SPiC)5 ECTS (englische Bezeichnung: System-Level Programming in C)
(Prüfungsordnungsmodul: Systemnahe Programmierung in C)
Modulverantwortliche/r: Volkmar Sieh Lehrende:
Volkmar Sieh, Jürgen Kleinöder
weitere Studienfächer/Prüfungsordnungsmodule:
Einfrieren der UnivIS-Modul-Beschreibung: 2.3.2019
Systemnahe Programmierung in C (39393)
M2 Ingenieurwissenschaftliche Kernmodule (BDV) (42936)
Vertiefungsmodule aus dem Sockel beider Studienrichtungen (43093)
Start semester: |
SS 2019 | Duration: |
1 (+1)
semester | Cycle: |
jährlich (SS) |
Präsenzzeit: |
60 Std. | Eigenstudium: |
90 Std. | Language: |
Deutsch |
Lectures:
-
-
Systemnahe Programmierung in C (SS 2019)
(Vorlesung, 2 SWS, Volkmar Sieh et al., Thu, 14:15 - 15:45, HG; Thu; single appointment on 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)It is recommended to finish the following modules before starting this module:
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:
- Mechatronik (Bachelor of Science): 2. Semester
(Po-Vers. 2009 | TechFak | Mechatronik (Bachelor of Science) | weitere Pflichtmodule | Systemnahe Programmierung in C)
Dieses Modul ist daneben auch in den Studienfächern "Mathematik (Bachelor of Science)", "Medizintechnik (Bachelor of Science)", "Medizintechnik (Master of Science)", "Physik (Bachelor of Science)", "Physik mit integriertem Doktorandenkolleg (Bachelor of Science)", "Technomathematik (Bachelor of Science)" verwendbar. Details
Studien-/Prüfungsleistungen:
Systemnahe Programmierung in C (Prüfungsnummer: 31701)
(englischer Titel: Machine-oriented programming in C)
zugeh. "mein campus"-Prüfung: | - 31701 Systemnahe Programmierung in C (Gewichtung: 100.0 %, Prüfung, Form: Klausur, Zehntelnoten, Dauer: 90, 5 ECTS, Prüfung).
- 31701 Systemnahe Programmierung in C (Gewichtung: 50.0 %, Prüfung, Form: Klausur, Zehntelnoten, Dauer: 90, 5 ECTS, Prüfung).
- 31701 Systemnahe Programmierung in C (Gewichtung: 50.0 %, Prüfung, Form: Klausur, Zehntelnoten, Dauer: 90, 5 ECTS, Prüfung).
|
- 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
1. Prüfer: | Volkmar Sieh (100548) |
- 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 11
|
|
|