|
Systemnahe Programmierung in C (SPiC)5 ECTS (englische Bezeichnung: System-Level Programming in C)
Modulverantwortliche/r: Jürgen Kleinöder Lehrende:
Volkmar Sieh, Jürgen Kleinöder
Startsemester: |
SS 2016 | Dauer: |
1 Semester | Turnus: |
jährlich (SS) |
Präsenzzeit: |
60 Std. | Eigenstudium: |
90 Std. | Sprache: |
Deutsch |
Lehrveranstaltungen:
-
-
Systemnahe Programmierung in C (SS 2016)
(Vorlesung, 2 SWS, Volkmar Sieh et al., Do, 16:15 - 17:45, H11; Einzeltermin am 13.4.2016, 16:00 - 17:30, H8; ACHTUNG: Zusätzlicher, einmaliger Vorlesungstermin in der ersten Semesterwoche am Mittwoch, 16:00 - 17:30 im H8!)
-
Übungen zu Systemnahe Programmierung in C (SS 2016)
(Übung, 2 SWS, Sebastian Maier)
-
Rechnerübungen zu Systemnahe Programmierung in C (SS 2016)
(Übung, 2 SWS, Sebastian Maier)
- 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 2015/2016)
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/SS16/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 | Bachelorprüfung | 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 (Master of Science)
(Po-Vers. 2013 | 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)
(Po-Vers. | NatFak | Physik (Bachelor of Science) | alte Prüfungsordnungen | Bachelorprüfung - Elite Study Program | Informatik | Systemnahe Programmierung in C)
- Physik (Bachelor of Science): 2. Semester
(Po-Vers. 2010 | NatFak | Physik (Bachelor of Science) | Regulärer Bachelorstudiengang | Module des 1. und 2. Fachsemesters, Grundlagen- und Orientierungsprüfung | Nichtphysikalisches Wahlfach 1 | Informatik (Variante 1, 12,5 ECTS) | Systemnahe Programmierung in C)
- Physik (Bachelor of Science): 2. Semester
(Po-Vers. 2010 | NatFak | Physik (Bachelor of Science) | Integrierter Bachelor- und Masterstudiengang (Forschungsstudiengang) | Module des 1. und 2. Fachsemesters, Grundlagen- und Orientierungsprüfung | Nichtphysikalisches Wahlfach | Informatik (Variante 1, 12,5 ECTS) | 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) | Bachelorprüfung | 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: System-Level Programming in C)
- Prüfungsleistung, Klausur, Dauer (in Minuten): 90, benotet, 5 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 2016, 1. Wdh.: WS 2016/2017
1. Prüfer: | Jürgen Kleinöder |
- Termin: 22.07.2016, 13:00 Uhr, Ort: s. Aushang
Termin: 05.04.2017, 11:00 Uhr, Ort: H 7 TechFTermin: 22.07.2016, 13:00 Uhr, Ort: s. Aushang
Termin: 05.04.2017, 11:00 Uhr, Ort: H 7 TechF
|
|
|
|
UnivIS ist ein Produkt der Config eG, Buckenhof |
|
|