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

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Vorlesungsverzeichnis >> Technische Fakultät (TF) >>

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 2017Dauer: 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 2016/2017)


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

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:
Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:

  1. 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)
  2. 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)
  3. Mathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | NatFak | Mathematik (Bachelor of Science) | Nebenfach Informatik | Module im 1. Studienjahr | Systemnahe Programmierung in C)
  4. Mathematik (Bachelor of Science)
    (Po-Vers. 2015w | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Wahlbereich 2 | Systemnahe Programmierung in C)
  5. Mechatronik (Bachelor of Science): 2. Semester
    (Po-Vers. 2007 | TechFak | Mechatronik (Bachelor of Science) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
  6. Mechatronik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | TechFak | Mechatronik (Bachelor of Science) | weitere Pflichtmodule | Systemnahe Programmierung in C)
  7. 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)
  8. 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)
  9. Medizintechnik (Master of Science)
    (Po-Vers. 2013 | TechFak | Medizintechnik (Master of Science) | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV))
  10. Physik (Bachelor of Science)
    (Po-Vers. | NatFak | Physik (Bachelor of Science) | alte Prüfungsordnungen | Bachelorprüfung | Informatik | Systemnahe Programmierung in C)
  11. 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)
  12. Technomathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2007 | NatFak | Technomathematik (Bachelor of Science) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
  13. 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)
  14. 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 2017, 1. Wdh.: WS 2017/2018
1. Prüfer: Volkmar Sieh
Termin: 04.08.2017, 08:00 Uhr, Ort: Tentoria
Termin: 21.03.2018, 11:00 Uhr, Ort: H 7 TechF
Termin: 04.04.2019, 08:00 Uhr, Ort: H 8 TechFTermin: 04.08.2017, 08:00 Uhr, Ort: Tentoria
Termin: 21.03.2018, 11:00 Uhr, Ort: H 7 TechF
Termin: 04.04.2019, 08:00 Uhr, Ort: H 8 TechF

UnivIS ist ein Produkt der Config eG, Buckenhof