Lehrinhalte:
- Technologische Grundlagen und Trends der Mikroelektronik
- Entwurfsflüsse für mikroelektronische Systeme
- Beschreibung von Hardware-Systemen
- Charakteristika von Rechnersystemen
- Architekturen für parallele Ausführung
- Speichersysteme
- Heterogene Systems-on-Chip
- On-Chip und Off-Chip Kommunikationsstrukturen
- Aufbau eingebetteter Systeme, z.B. im Umfeld von Cyber-Physical Systems

Literatur:
Literaturempfehlungen werden kontinuierlich aktualisiert, Beispiele für verwendete Literatur könnten sein:
Nikhil/Czeck: Bluespec by Example
Arvind/Nikhil/Emer/Vijayaraghavan: Computer Architecture: A Constructive Approach
Hennessy/Patterson: Computer Architecture – A Quantitative Approach
Crockett/Elliott/Enderwitz/Stewart: The Zynq Book
Flynn/Luk: Computer System Design
Sass/Schmidt: Embedded Systems Design

Voraussetzungen:
Empfohlen:
Erfolgreicher Besuch der Vorlesungen „Digitaltechnik“ und „Rechnerorganisation“ bzw. entsprechende Kenntnisse aus anderen Studiengängen.

Lehrinhalte:
Einführung: Transitionssysteme, Wörter, Sprachen; Mathematische Grundbegriffe und elementare Beweismethoden; Endliche Automaten und reguläre Sprachen; Determinismus und Nichtdeterminismus, Abschlusseigenschaften und Automatenkonstruktionen;
Sätze von Kleene, Myhill-Nerode, Pumping Lemma;
Grammatiken und Chomsky-Hierarchie,
kontextfreie Sprachen, Abschlusseigenschaften, Pumping Lemma, CYK Algorithmus;
Berechnungsmodelle: Kellerautomaten, Turingmaschinen; Entscheidbarkeit und Aufzählbarkeit in der Chomsky-Hierarchie

Literatur:

  • Schöning: Theoretische Informatik -- kurz gefasst
  • Hopcroft, Motwani, Ullman: Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie
  • Wegener: Theoretische Informatik -- eine algorithmenorientierte Einführung
  • Vorlesungsskript (Otto, s. Moodle)


Lehrinhalte:
Anwendung des im Rahmen der grundlegenden Veranstaltungen erworbenen Wissens im Kontext eines komplexen Softwareentwicklungsprojektes. Die einzelnen Aufgabenstellungen werden dabei von Fachgebieten der TU Darmstadt gestellt und leisten im Regelfall einen Beitrag zu deren Forschung.
Schwerpunkte des Praktikums sind:
- Planung und Durchführung eines Softwareentwicklungsprojektes
- Anwendung von Softwareentwicklungsprozessen
- Ermittlung und Priorisierung von Anforderungen
- Durchführung systematischer Qualitätssicherung
- Präsentationstechnik
- Teamarbeit

Literatur:
Allgemein:
- Lehrbuch der Softwaretechnik: Softwaremanagement; H. Balzert; Springer
- Design Patterns - Elements of Reusable Object-Oriented Software; E. Gamma, R. Helm, R. Johnson, J. Vlissides; Prentice Hall
- Software Qualität - Testen, Analysieren und Verifizieren von Software; P. Liggesmeyer; Springer
- Writing Effective Use Cases; A. Cockburn; Pearson
- Clean Code: A Handbook of Agile Software Craftsmanship; R. C. Martin; Prentice Hall
Weiterhin ist je nach bearbeiteter Aufgabenstellung weitere Literatur notwendig.

Voraussetzungen:
Empfohlen: Erfolgreicher Abschluss der Veranstaltungen:
- Funktionale und Objektorientierte Programmierkonzepte
- Software Engineering


Lehrinhalte:

Verschiedene Konzepte und Aspekte moderner Betriebssysteme wie z.B:

  • Notwendigkeit, Design
  • Prozesse und Threads - BS Datenstrukturen
  • IPC, RPC, Schnittstellen, Hierarchien, Messaging
  • Koordination: Deadlocks - Critical sections, Deadlocks, ...
  • Scheduling/Ressourcen-Management - Prozess-Reihenfolgen, Scheduling-Konzepte
  • Nebenläufigkeit: Races, Mutual Exclusions - Critical sections, races, spin locks, Synchronisation
  • Semaphoren - Semaphoren, Monitore
  • I/O - Geräte-Management, Treiber, Interrupt-Behandlung, DMA
  • ...


Erste Veranstaltung: Monday, 14 October 2019, 10:45

Die Veranstaltung Funktionale und objektorientierte Programmierkonzepte (FOP) ist eine Pflichtveranstaltung im ersten Semester für Studierende der Informatik und mehrerer verwandter Studiengänge. In der Veranstaltung wird der Grundstein für systematische Programmierung gelegt, auf dem die folgenden Informatik-Veranstaltungen aufbauen.


Erste Veranstaltung: Tuesday, 15 October 2019, 15:20
Prüfungsdatum (falls Klausur): Tuesday, 7 April 2020, 12:00
Erste Veranstaltung: Friday, 18 October 2019, 13:30