| 
                            Veranstaltungen
                         | 
                        
                            
                                Algorithmen und Datenstrukturen
  | Art | 
  Vorlesung | 
 
  | Nr. | 
  EMI112 | 
 
  | SWS | 
  2.0 | 
 
  | Lerninhalt | 
  Die Studierenden kennen klassische Algorithmen und Datenstrukturen, können deren Komplexität in der O-Notation beurteilen und selbstständig anwenden. Es werden folgende Algorithmen und Datenstrukturen behandelt: 
- Verschiedene Arten von Listen
 
- Verschiedene Sortierverfahren
 
- Verschiedene Suchverfahren
 
- Binärbäume, Suchbäume, balancierte Suchbäume
 
- Funktionale Datenstrukturen (Queues, Arrays)
 
- Hashing
 
- Graphen, inkl. topologische Sortierung und shortest-path Algorithmus
 
  | 
 
  | Literatur | 
  Ottmann, Thomas; Widmayer, Peter (2017): Algorithmen und Datenstrukturen, 6. Auflage, Spektrum, Berlin. Cormen, Tomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009): Introduction to Algorithms, 3. Auflage, MIT Press.  | 
 
 
Programmierung 2
  | Art | 
  Vorlesung | 
 
  | Nr. | 
  EMI910 | 
 
  | SWS | 
  2.0 | 
 
  | Lerninhalt | 
  Studierende sind mit fortgeschrittenen Programmierkonzepten vertraut und können diese selbstständig in Python anwenden. Es werden folgende Themen behandelt: 
- Objekt-orientierte Programmierung mit Python: Vererbung, abstrakte Klassen, Datenkapselung, statische Attribute und Methoden, liksovsches Substitutionsprinzip
 
- Ausgewählte Design-Patterns, z.B. Composite, Proxy und Visitor
 
- Iteratoren und Generatoren
 
- GUI-Programmierung
 
- Nebenläufiges Programmieren
 
- Dynamisches Programmieren
 
  | 
 
  | Literatur | 
  Theis, Thomas (2019): Einstieg in Python: Programmieren lernen für Anfänger. Rheinwerk Computing. 
Klein, Bernd (2017): Einführung in Python 3. Hanser. Downey, Allen (2015): Think Python: How to Think Like a Computer Scientist. O’Reilly. Online: http://greenteapress.com/thinkpython/html/index.html 
  
  
  
   | 
 
 
Praktikum Programmierung 2
  | Art | 
  Praktikum | 
 
  | Nr. | 
  EMI911 | 
 
  | SWS | 
  2.0 | 
 
  | Lerninhalt | 
  Im Praktikum werden alle Inhalte der Vorlesungen „Programmierung 2” und „Algorithmen & Datenstrukturen” praktisch mit Python umgesetzt. 
Die Studierenden kennen klassische Algorithmen und Datenstrukturen, können deren Komplexität in der O-Notation beurteilen und selbstständig anwenden. Es werden folgende Algorithmen und Datenstrukturen behandelt: 
- Verschieden Arten von Listen
 
- Verschiedene Sortierverfahren
 
- Verschiedene Suchverfahren
 
- Binärbäume, Suchbäume, balancierte Suchbäume
 
- Funktionale Datenstrukturen (Queues, Arrays)
 
- Hashing Graphen, inkl. topologische Sortierung und shortest-path Algorithmus
 
 
Studierende sind mit fortgeschrittenen Programmierkonzepten vertraut und können diese selbstständig in Python anwenden. Es werden folgendeThemen behandelt: 
- Objekt-orientierte Programmierung mit Python: Vererbung, abstrakte Klassen, Datenkapselung, statische Attribute und Methoden, liksovsches Substitutionsprinzip
 
- Ausgewählte Design-Patterns, z.B. Composite, Proxy und Visitor
 
- Iteratoren und Generatoren
 
- GUI-Programmierung
 
- Nebenläufiges Programmieren
 
- Dynamisches Programmieren
 
  | 
 
  | Literatur | 
  Theis, Thomas (2019): Einstieg in Python: Programmieren lernen für Anfänger. Rheinwerk Computing. 
Klein, Bernd (2017): Einführung in Python 3. Hanser. Downey, Allen (2015): Think Python: How to Think Like a Computer Scientist. O’Reilly. Online:http://greenteapress.com/thinkpython/html/index.html 
Ottmann, Thomas; Widmayer, Peter (2017): Algorithmen und Datenstrukturen, 6. Auflage, Spektrum, Berlin. 
Cormen, Tomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009): Introduction to Algorithms, 3. Auflage, MIT Press.  | 
 
 
                            
                         |