UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

 
 
 Außerdem im UnivIS
 
Vorlesungs- und Modulverzeichnis nach Studiengängen

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) >>

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


Startsemester: SS 2022Dauer: 1 SemesterTurnus: jährlich (SS)
Präsenzzeit: 60 Std.Eigenstudium: 90 Std.Sprache: Deutsch

Lehrveranstaltungen:


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 2021/2022)


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-&#956;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/SS22/V_SPIC/

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Physik mit integriertem Doktorandenkolleg (Bachelor of Science)
    (Po-Vers. 2020w | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Gesamtkonto | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
Dieses Modul ist daneben auch in den Studienfächern "International Production Engineering and Management (Bachelor of Science)", "Maschinenbau (Bachelor of Science)", "Maschinenbau (Master of Science)", "Mathematik (Bachelor of Science)", "Mechatronik (Bachelor of Science)", "Mechatronik (Master of Science)", "Medizintechnik (Bachelor of Science)", "Medizintechnik (Master of Science)", "Physik (Bachelor of Science)", "Technomathematik (Bachelor of Science)", "Wirtschaftsingenieurwesen (Bachelor of Science)", "Wirtschaftsingenieurwesen (Master of Science)" verwendbar. Details

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 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 2022, 1. Wdh.: WS 2022/2023
1. Prüfer: Volkmar Sieh
Termin: 05.08.2022
Termin: 05.08.2022

UnivIS ist ein Produkt der Config eG, Buckenhof