|
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
Studienfächer/Prüfungsordnungsmodule:
Einfrieren der UnivIS-Modul-Beschreibung: 2.3.2019
Systemnahe Programmierung in C (16367)
Systemnahe Programmierung in C (39393)
M2 Ingenieurwissenschaftliche Kernmodule (BDV) (42936)
Vertiefungsmodule aus dem Sockel beider Studienrichtungen (43093)
Startsemester: |
SS 2019 | Dauer: |
1 (+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:
- Mathematik (Bachelor of Science): 2. Semester
(Po-Vers. 2007 | NatFak | Mathematik (Bachelor of Science) | alte Prüfungsordnungen | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
- Mathematik (Bachelor of Science): 2. Semester
(Po-Vers. 2007 | NatFak | Mathematik (Bachelor of Science) | alte Prüfungsordnungen | Gesamtkonto | Nebenfach Informatik | Systemnahe Programmierung in C)
- Mathematik (Bachelor of Science): 2. Semester
(Po-Vers. 2009 | NatFak | Mathematik (Bachelor of Science) | Nebenfach Informatik | Module im 1. Studienjahr | Systemnahe Programmierung in C)
- Mathematik (Bachelor of Science)
(Po-Vers. 2015w | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Wahlbereich 2 | Systemnahe Programmierung in C)
- Mechatronik (Bachelor of Science): 2. Semester
(Po-Vers. 2007 | TechFak | Mechatronik (Bachelor of Science) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
- Mechatronik (Bachelor of Science): 2. Semester
(Po-Vers. 2009 | TechFak | Mechatronik (Bachelor of Science) | weitere Pflichtmodule | Systemnahe Programmierung in C)
- Medizintechnik (Bachelor of Science): 5-6. Semester
(Po-Vers. 2013 | TechFak | Medizintechnik (Bachelor of Science) | Kern- und Vertiefungsmodule der Kompetenzfelder | Studienrichtung Bildgebende Verfahren | B8 Vertiefungsmodule ET/INF | Vertiefungsmodule aus dem Sockel beider Studienrichtungen)
- Medizintechnik (Bachelor of Science): 5-6. Semester
(Po-Vers. 2013 | TechFak | Medizintechnik (Bachelor of Science) | Kern- und Vertiefungsmodule der Kompetenzfelder | Studienrichtung Gerätetechnik | B8 Vertiefungsmodule MB/WW/CBI | Vertiefungsmodule aus dem Sockel beider Studienrichtungen)
- Medizintechnik (Bachelor of Science)
(Po-Vers. 2018w | TechFak | Medizintechnik (Bachelor of Science) | Bachelorprüfung | Vertiefungsmodule ET/INF | Systemnahe Programmierung in C)
- Medizintechnik (Bachelor of Science)
(Po-Vers. 2018w | TechFak | Medizintechnik (Bachelor of Science) | Bachelorprüfung | Vertiefungsmodule MB/WW/CBI | Systemnahe Programmierung in C)
- Medizintechnik (Master of Science)
(Po-Vers. 2013 | TechFak | Medizintechnik (Master of Science) | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV))
- Medizintechnik (Master of Science)
(Po-Vers. 2018w | TechFak | Medizintechnik (Master of Science) | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV))
- Physik (Bachelor of Science)
(Po-Vers. | NatFak | Physik (Bachelor of Science) | alte Prüfungsordnungen | Bachelorprüfung | Informatik | Systemnahe Programmierung in C)
- Physik (Bachelor of Science): 2. Semester
(Po-Vers. 2010 | NatFak | Physik (Bachelor of Science) | Module des 1. und 2. Fachsemesters, Grundlagen- und Orientierungsprüfung | Nichtphysikalisches Wahlfach 1 | Informatik (Variante 12,5 ECTS) | Systemnahe Programmierung in C)
- Physik (Bachelor of Science)
(Po-Vers. 2018w | NatFak | Physik (Bachelor of Science) | Bachelorprüfung | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
- Physik mit integriertem Doktorandenkolleg (Bachelor of Science)
(Po-Vers. | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Bachelorprüfung | Informatik | Systemnahe Programmierung in C)
- Physik mit integriertem Doktorandenkolleg (Bachelor of Science): 2. Semester
(Po-Vers. 2010 | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Bachelorprüfung | Grundlagen- und Orientierungsprüfung (GOP) | Informatik (Variante 12,5 ECTS) | Systemnahe Programmierung in C)
- Physik mit integriertem Doktorandenkolleg (Bachelor of Science)
(Po-Vers. 2018w | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Bachelorprüfung | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
- Technomathematik (Bachelor of Science): 2. Semester
(Po-Vers. 2007 | NatFak | Technomathematik (Bachelor of Science) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
- Technomathematik (Bachelor of Science): 2. Semester
(Po-Vers. 2009 | NatFak | Technomathematik (Bachelor of Science) | Gesamtkonto | Fachmodule Technik | Module im 1. Studienjahr | Systemnahe Programmierung in C)
- 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)
zugeh. "mein campus"-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).
- 17252 Vertiefungsmodul aus dem Sockel beider Kompetenzfelder (Medizintechnik (Bachelor of Science) 2013, Prüfung, Form: variabel, Zehntelnoten, Dauer: -, 5.0 ECTS, Platzhalter).
- 18012 Ingenieurwissenschaftliches Kernmodul (Prüfung, Form: schriftlich oder mündlich, Drittelnoten (mit 4,3), Dauer: -, Platzhalter).
- 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 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
|
![](/img/anew/void.gif) |
![](/img/anew/void.gif) |
|
UnivIS ist ein Produkt der Config eG, Buckenhof |
|
|