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.
- Dozent*in: Carsten Heinz
- Dozent*in: Andreas Koch
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)
- Dozent*in: Kord Eickmeyer
- Dozent*in: Thomas Powell
- Dozent*in: Jonathan Weinberger
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
- Dozent*in: Carsten Binnig
- Dozent*in: Iryna Gurevych
- Dozent*in: Benjamin Hättasch
- Dozent*in: Ji-Ung Lee
- Dozent*in: Ute Winchenbach
- Dozent*in: Tobias Ziegler
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
- ...
- Dozent*in: Raad Bahmani
- Dozent*in: Markus Brandt
- Dozent*in: Philipp Jeitner
- Dozent*in: Carsten Schmidt
- Dozent*in: Thomas Schneider
- Dozent*in: Christian Weinert
- Dozent*in: Thomas Schneider
- Dozent*in: Christian Weinert
- Dozent*in: Andreas Koch
- Dozent*in: Julian Oppermann
- Dozent*in: Lukas Sommer
- Dozent*in: Lukas Max Weber
- Dozent*in: Richard Bubel
- Dozent*in: Reiner Hähnle
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.
- Dozent*in: Karsten Weihe
- Dozent*in: Anton Freund
- Dozent*in: Albrun Knof
- Dozent*in: Thomas Streicher
- Dozent*in: Maxim Anikeev
- Dozent*in: Richard Bubel
- Dozent*in: Dominik Helm
- Dozent*in: Klaus Kreß
- Dozent*in: Marc Wrona
- Dozent*in: Andreas Koch
- Dozent*in: Julian Oppermann
- Dozent*in: Lukas Sommer
- Dozent*in: Lukas Max Weber
- Dozent*in: Volker Knauthe
- Dozent*in: Arjan Kuijper
- Dozent*in: Maximilian von Bülow