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

 
 
Mechatronik (Bachelor of Science) >>

Systemnahe Programmierung in C (SPiC)5 ECTS
(englische Bezeichnung: Machine-Oriented Programming in C)
(Prüfungsordnungsmodul: Systemnahe Programmierung in C)

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


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


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

Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan:

  1. Mechatronik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | weitere Pflichtmodule | Systemnahe Programmierung in C)
Dieses Modul ist daneben auch in den Studienfächern "Mathematik (Bachelor of Science)", "Physik (Bachelor of Science)", "Technomathematik (Bachelor of Science)" verwendbar. Details

Studien-/Prüfungsleistungen:

Systemnahe Programmierung in C (Vorlesung mit Übungen) (Prüfungsnummer: 31701)
Prüfungsleistung, Klausur mit MultipleChoice, Dauer (in Minuten): 90, benotet
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 2014, 1. Wdh.: WS 2014/2015
1. Prüfer: Jürgen Kleinöder
Termin: 24.07.2014, 13:30 Uhr, Ort: H 11
Termin: 25.03.2015, 11:00 Uhr, Ort: H 10 TechF
Termin: 27.07.2015, 16:00 Uhr, Ort: H 11
Termin: 23.03.2016, 10:45 Uhr, Ort: H 9 TechF

UnivIS ist ein Produkt der Config eG, Buckenhof