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

 
 

Systemnahe Programmierung in C (SPiC)5 ECTS
(englische Bezeichnung: System-Level Programming in C)
(Prüfungsordnungsmodul: M2 Ingenieurwissenschaftliche Kernmodule (BDV))

Modulverantwortliche/r: Jürgen Kleinöder
Lehrende: Jürgen Kleinöder


Startsemester: SS 2015Dauer: 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 2014/2015)


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/SS15/V_SPIC/

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Medizintechnik (Master of Science)
    (Po-Vers. 2013 | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV))
Dieses Modul ist daneben auch in den Studienfächern "Mathematik (Bachelor of Science)", "Mechatronik (Bachelor of Science)", "Physik (Bachelor of Science)", "Technomathematik (Bachelor of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

UnivIS ist ein Produkt der Config eG, Buckenhof