UnivIS
Informationssystem der Friedrich-Alexander-Universität Erlangen-Nürnberg © Config eG 
FAU Logo
  Sammlung/Stundenplan    Modulbelegung Home  |  Rechtliches  |  Kontakt  |  Hilfe    
Suche:      Semester:   
 Lehr-
veranstaltungen
   Personen/
Einrichtungen
   Räume   Forschungs-
bericht
   Publi-
kationen
   Internat.
Kontakte
   Examens-
arbeiten
   Telefon &
E-Mail
 
 
 Darstellung
 
Druckansicht

 
 
Modulbeschreibung (PDF)

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

Vorlesungsverzeichnis

 
 
Veranstaltungskalender

Stellenangebote

Möbel-/Rechnerbörse

 
 
Einrichtungen >> Philosophische Fakultät und Fachbereich Theologie (Phil) >> Department Germanistik und Komparatistik >> Lehrstuhl für Neuere deutsche Literatur mit historischem Schwerpunkt >>

Systemnahe Programmierung in C (SPiC)5 ECTS
(englische Bezeichnung: System-Level Programming in C)

Modulverantwortliche/r: Volkmar Sieh
Lehrende: Volkmar Sieh, Jürgen Kleinöder


Startsemester: SS 2021Dauer: 1 SemesterTurnus: jährlich (SS)
Präsenzzeit: 90 Std.Eigenstudium: 60 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 2020/2021)


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

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

  1. Energietechnik (Master of Science)
    (Po-Vers. 2015w | TechFak | Energietechnik (Master of Science) | Gesamtkonto | Wahlmodul aus den Modulen der technischen und naturwissenschaftlichen Fakultät | Systemnahe Programmierung in C)
  2. International Production Engineering and Management (Bachelor of Science)
    (Po-Vers. 2020s | TechFak | International Production Engineering and Management (Bachelor of Science) | International Production Engineering and Management (Studienbeginn SS 2020) | Gesamtkonto | Wahlmodule | Systemnahe Programmierung in C)
  3. International Production Engineering and Management (Bachelor of Science)
    (Po-Vers. 2020w | TechFak | International Production Engineering and Management (Bachelor of Science) | International Production Engineering and Management (Studienbeginn WS 2020/21) | Gesamtkonto | Wahlmodule | Systemnahe Programmierung in C)
  4. Maschinenbau (Bachelor of Science)
    (Po-Vers. 2009w | TechFak | Maschinenbau (Bachelor of Science) | Maschinenbau | Gesamtkonto | Wahlmodule | Technische Wahlmodule | Systemnahe Programmierung in C)
  5. Maschinenbau (Master of Science)
    (Po-Vers. 2007 | TechFak | Maschinenbau (Master of Science) | Studienrichtungen Allgemeiner Maschinenbau, Fertigungstechnik, und Rechnergestützte Produktentwicklung | Gesamtkonto | Wahlmodule | Technische Wahlmodule | Systemnahe Programmierung in C)
  6. 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)
  7. Mathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2007 | NatFak | Mathematik (Bachelor of Science) | alte Prüfungsordnungen | Gesamtkonto | Nebenfach Informatik | Systemnahe Programmierung in C)
  8. Mathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | NatFak | Mathematik (Bachelor of Science) | alte Prüfungsordnungen | Nebenfach Informatik | Module im 1. Studienjahr | Systemnahe Programmierung in C)
  9. Mathematik (Bachelor of Science)
    (Po-Vers. 2015w | NatFak | Mathematik (Bachelor of Science) | Module des Nebenfachs | Nebenfach Informatik | Wahlbereich 2 | Systemnahe Programmierung in C)
  10. Mathematik (Bachelor of Science)
    (Po-Vers. 2019w | NatFak | Mathematik (Bachelor of Science) | weitere Module der Bachelorprüfung | Module des Nebenfachs | Nebenfach Informatik | Wahlbereich 2 | Systemnahe Programmierung in C)
  11. Mechatronik (Bachelor of Science): 2. Semester
    (Po-Vers. 2007 | TechFak | Mechatronik (Bachelor of Science) | Mechatronik (Studienbeginn bis 30.09.2020) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
  12. Mechatronik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | TechFak | Mechatronik (Bachelor of Science) | Mechatronik (Studienbeginn bis 30.09.2020) | Gesamtkonto | weitere Pflichtmodule | Systemnahe Programmierung in C)
  13. Mechatronik (Bachelor of Science)
    (Po-Vers. 2020w | TechFak | Mechatronik (Bachelor of Science) | Mechatronik (Studienbeginn ab 01.10.2020) | Gesamtkonto | weitere Pflichtmodule | Systemnahe Programmierung in C)
  14. Mechatronik (Master of Science)
    (Po-Vers. 2010 | TechFak | Mechatronik (Master of Science) | Gesamtkonto | Technische Wahlmodule | Systemnahe Programmierung in C)
  15. Medizintechnik (Bachelor of Science)
    (Po-Vers. 2013 | TechFak | Medizintechnik (Bachelor of Science) | Gesamtkonto | Vertiefungsmodule ET/INF | Vertiefungsmodule aus dem Sockel beider Studienrichtungen | Systemnahe Programmierung in C)
  16. Medizintechnik (Bachelor of Science)
    (Po-Vers. 2013 | TechFak | Medizintechnik (Bachelor of Science) | Gesamtkonto | Vertiefungsmodule MB/WW/CBI | Vertiefungsmodule aus dem Sockel beider Studienrichtungen | Systemnahe Programmierung in C)
  17. Medizintechnik (Bachelor of Science)
    (Po-Vers. 2018w | TechFak | Medizintechnik (Bachelor of Science) | Gesamtkonto | Pflicht- und Wahlpflichtmodule der Studienrichtung Medizinelektronik, medizinische Bild- und Datenverarbeitung (Modulgruppen B5 und B8) | B8 Wahlpflichtmodule der Studienrichtung Medizinelektronik, medizinische Bild- und Datenverarbeitung | Vertiefungsmodule ET/INF | Systemnahe Programmierung in C)
  18. Medizintechnik (Bachelor of Science)
    (Po-Vers. 2018w | TechFak | Medizintechnik (Bachelor of Science) | Gesamtkonto | Pflicht- und Wahlpflichtmodule der Studienrichtung Medizinische Gerätetechnik, Produktionstechnik und Prothetik (Modulpruppen B6 und B8) | B8 Wahlpflichtmodule der Studienrichtung Medizinische Gerätetechnik, Produktionstechnik und Prothetik | Vertiefungsmodule MB/WW/CBI | Systemnahe Programmierung in C)
  19. Medizintechnik (Master of Science)
    (Po-Vers. 2013 | TechFak | Medizintechnik (Master of Science) | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV) | Systemnahe Programmierung in C)
  20. Medizintechnik (Master of Science)
    (Po-Vers. 2018w | TechFak | Medizintechnik (Master of Science) | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV) | Systemnahe Programmierung in C)
  21. Medizintechnik (Master of Science)
    (Po-Vers. 2019w | TechFak | Medizintechnik (Master of Science) | Modulgruppen M1, M2, M3, M5, M7 nach Studienrichtungen | Studienrichtung Medizinische Bild- und Datenverarbeitung | M2 Ingenieurwissenschaftliche Kernmodule (BDV) | Systemnahe Programmierung in C)
  22. Physik (Bachelor of Science)
    (Po-Vers. | NatFak | Physik (Bachelor of Science) | alte Prüfungsordnungen | Gesamtkonto | Informatik | Systemnahe Programmierung in C)
  23. Physik (Bachelor of Science): 2. Semester
    (Po-Vers. 2010 | NatFak | Physik (Bachelor of Science) | Module des 1. und 2. Fachsemesters, Grundlagen- und Orientierungsprüfung | Nichtphysikalisches Wahlfach 1 | Informatik (Variante 12,5 ECTS) | Systemnahe Programmierung in C)
  24. Physik (Bachelor of Science)
    (Po-Vers. 2018w | NatFak | Physik (Bachelor of Science) | Gesamtkonto | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
  25. Physik (Bachelor of Science)
    (Po-Vers. 2020w | NatFak | Physik (Bachelor of Science) | Gesamtkonto | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
  26. Physik mit integriertem Doktorandenkolleg (Bachelor of Science)
    (Po-Vers. | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Gesamtkonto | Informatik | Systemnahe Programmierung in C)
  27. Physik mit integriertem Doktorandenkolleg (Bachelor of Science): 2. Semester
    (Po-Vers. 2010 | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Gesamtkonto | Grundlagen- und Orientierungsprüfung (GOP) | Informatik (Variante 12,5 ECTS) | Systemnahe Programmierung in C)
  28. Physik mit integriertem Doktorandenkolleg (Bachelor of Science)
    (Po-Vers. 2018w | NatFak | Elitestudiengang Physik mit integriertem Doktorandenkolleg (Bachelor of Science) | Gesamtkonto | Grundlagen- und Orientierungsprüfung (GOP) | Informatik | Systemnahe Programmierung in C)
  29. 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)
  30. Technomathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2007 | NatFak | Technomathematik (Bachelor of Science) | Grundlagen- und Orientierungsprüfung (GOP) | Systemnahe Programmierung in C)
  31. Technomathematik (Bachelor of Science): 2. Semester
    (Po-Vers. 2009 | NatFak | Technomathematik (Bachelor of Science) | Fachmodule Technik | Module im 1. Studienjahr | Systemnahe Programmierung in C)
  32. Technomathematik (Bachelor of Science)
    (Po-Vers. 2015w | NatFak | Technomathematik (Bachelor of Science) | Nebenfach Informatik | Systemnahe Programmierung in C)
  33. Technomathematik (Bachelor of Science)
    (Po-Vers. 2019w | NatFak | Technomathematik (Bachelor of Science) | Gesamtkonto | Nebenfach Informatik | Systemnahe Programmierung in C)
  34. Wirtschaftsingenieurwesen (Bachelor of Science)
    (Po-Vers. 2009 | TechFak | Wirtschaftsingenieurwesen (Bachelor of Science) | Studienrichtung Informations- und Kommunikationssysteme | weiterer Bachelorprüfungen | Ingenieurwissenschaftlicher Bereich | Wahlbereich | Technische Wahlmodule | Technische Wahlmodule | Systemnahe Programmierung in C)
  35. Wirtschaftsingenieurwesen (Bachelor of Science)
    (Po-Vers. 2009 | TechFak | Wirtschaftsingenieurwesen (Bachelor of Science) | Studienrichtung Maschinenbau | weitere Bachelorprüfungen | Ingenieurwissenschaftlicher Bereich | Wahlbereich | Technische Wahlmodule | Technische Wahlmodule | Systemnahe Programmierung in C)
  36. Wirtschaftsingenieurwesen (Bachelor of Science)
    (Po-Vers. 2018w | TechFak | Wirtschaftsingenieurwesen (Bachelor of Science) | Studienrichtung Maschinenbau (Studienbeginn ab 01.10.2018) | Gesamtkonto | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)
  37. Wirtschaftsingenieurwesen (Bachelor of Science)
    (Po-Vers. 2018w | TechFak | Wirtschaftsingenieurwesen (Bachelor of Science) | Studienrichtung Elektrotechnik (Studienbeginn ab 01.10.2018) | Gesamtkonto | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)
  38. Wirtschaftsingenieurwesen (Master of Science)
    (Po-Vers. 2009 | TechFak | Wirtschaftsingenieurwesen (Master of Science) | Masterstudiengang Wirtschaftsingenieurwesen (bis 30.09.2018) | Gesamtkonto | Ingenieurwissenschaftliche Studienrichtungen | Technische Wahlmodule | Technische Wahlmodule | Systemnahe Programmierung in C)
  39. Wirtschaftsingenieurwesen (Master of Science)
    (Po-Vers. 2018w | TechFak | Wirtschaftsingenieurwesen (Master of Science) | Masterstudiengang Wirtschaftsingenieurwesen (Studienbeginn ab 01.10.2018) | Gesamtkonto | Studienrichtung Maschinenbau | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)
  40. Wirtschaftsingenieurwesen (Master of Science)
    (Po-Vers. 2018w | TechFak | Wirtschaftsingenieurwesen (Master of Science) | Masterstudiengang Wirtschaftsingenieurwesen (Studienbeginn ab 01.10.2018) | Gesamtkonto | Studienrichtung Elektrotechnik | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)
  41. Wirtschaftsingenieurwesen (Master of Science)
    (Po-Vers. 2021w | TechFak | Wirtschaftsingenieurwesen (Master of Science) | Masterstudiengang Wirtschaftsingenieurwesen Studienrichtung Elektrotechnik (Studienbeginn ab 01.10.2021) | Studienrichtung Elektrotechnik | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)
  42. Wirtschaftsingenieurwesen (Master of Science)
    (Po-Vers. 2021w | TechFak | Wirtschaftsingenieurwesen (Master of Science) | Masterstudiengang Wirtschaftsingenieurwesen Studienrichtung Maschinenbau (Studienbeginn ab 01.10.2021) | Studienrichtung Maschinenbau | Technische Wahlmodule und Hochschulpraktikum | Technische Wahlmodule | Systemnahe Programmierung in C)

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 2021, 1. Wdh.: WS 2021/2022
1. Prüfer: Volkmar Sieh
Termin: 23.07.2021, 15:00 Uhr, Ort: Mensa-Süd
Termin: 06.04.2022, 10:00 Uhr, Ort: H 11
Termin: 05.08.2022
Termin: 05.08.2022Termin: 23.07.2021, 15:00 Uhr, Ort: Mensa-Süd
Termin: 06.04.2022, 10:00 Uhr, Ort: H 11
Termin: 05.08.2022
Termin: 05.08.2022

UnivIS ist ein Produkt der Config eG, Buckenhof