Subato

 

Programmiermethoden und Techniken (AI) (SS 2021)

 

Responsible Lecturer: panitz

Lecturers

  • panitz
  • jever001
  • dolgich

Tutors

  • dmart001

lectureTimes

  • Vorlesung Mon 10:00 B002 (panitz)
  • Vorlesung Thu 14:15 B002 (panitz)

Training Groups

  1. A Mon 11:45 C213 (panitz)
  2. B Mon 14:15 C213 (panitz)
  3. C Tue 10:00 C213 (dolgich)
  4. D Wed 11:45 C361 (jever001)
  5. E Wed 14:15 C361 (jever001)
  6. F Thu 10:00 C001 (panitz)
  7. G Thu 11:45 C001 (panitz)

Exercise Sheets

 


Auf dieser Seite finden sich Lehrmaterialien zum Modul »Programmiermethoden und Techniken« im Studiengang Angewandte Informatik.
Bis auf weiteres wird das Modul komplett online durchgeführt. Vorlesungszeiten und Praktikumszeiten aus dem Präsenzstundenplan bleiben komplett erhalten. Das erste praktikum beginnt nach der ersten Vorlesung.
 
Der Zugang zu den Praktika, Vorlesungsstunden und Tutorien befindet sich auf: ZAPP

 

Vorlesungsskript:

Die Vorlesung besteht aus zwei Teilen, zu denen es getrennte Skripte gibt. Wegen der aktuellen Corona-Problematik wird es keine gedruckten Versionen der Skripte geben, da schon die Verteilung dieser Skripte unnötige Kontakte bedeuten würden.

 

Folienfilme

Auf der Hochschulplattform AMIGO finden sich kurze Folienfilme zu Themen aus der Vorlesung:

  1. Folienfilm: Von Schleifen zu Iteratoren
  2. Folienfilm: Faltungen
  3. Folienfilm: Streams
  4. Folienfilm: Spliteratoren

Praktikum

Zum Bestehen des Praktikums ist eine regelmäßige Mitarbeit in den Praktikumsgruppen erforderlich.
Das Praktikum wird als bestanden gewertet, wenn 90% der Übungsblätter als erfolgreich bearbeitet vom Dozenten des Praktikums abgenommen wurden und das Abschlussprojekt individuell gelöst wurde.

 

Prüfung

Die Benotung der Prüfungsleistung wird durch eine 60 minütige Klausur ermittelt.
Prüfungstermin: noch nicht festgelegt

 

Lessons

July 8, 2021, 2:15 PM
Probeklausur gerechnet:
July 5, 2021, 10:00 AM
Probeklausur gerechnet:
July 1, 2021, 2:15 PM
  • Operatoren in C
  • goto (considered harmful)
  • tail recursion mit goto wegoptimieren
  • gt.c.
  • File IO in C
June 28, 2021, 10:00 AM
Summentypen, OO in C
June 24, 2021, 2:15 PM

Aufzählungen (enums) und Funktionszeiger

June 21, 2021, 10:00 AM
Speicher wieder frei geben mit free.
June 14, 2021, 10:00 AM
Heap und Stack. Und malloc, um Platz auf dem Heap zu bekommen.
 
June 10, 2021, 2:15 PM
Einstieg in C
June 7, 2021, 10:00 AM
JSON
May 31, 2021, 10:00 AM
  • XPath
  • XSL
  • SAX API
May 27, 2021, 2:15 PM
  • Das w3c DOM API
  • XPath Achsen
May 20, 2021, 2:15 PM
  • weitere Feinheiten und Unterschiede zu HTML, CDATA, Kommentare, Attribute
  • EIn eigenes kleines XML API mit zwei Recordklassen, die ein Interface XML implementieren.
May 17, 2021, 2:15 PM
Einstieg XML.
  • XML Dokumente sind Bäume mit zwei primären Knotenarten:
    • Textknoten, diese sind immer Blätter
    • Elementknoten, diese haben einen Tagnamen und können Kinder haben
  • HTML ist kein XML. In HTML müssen Elemente nicht eine hierarchische Baumstruktur bilden.

 

May 10, 2021, 10:00 AM
Von einer verketteten Liste zu einem Baum:
May 6, 2021, 2:15 PM
Spliteratoren
  • AL.java (Jetzt mit Spliteratoren und Funktionen stream() und parallelStream())
May 3, 2021, 10:00 AM

Das Java API im Paket java.util.stream

April 29, 2021, 2:15 PM
Faltungen auf Iterable-Objekten.
Faltungen in java für java.util.stream.Stream-Objekte in der Funktion reduce.
April 26, 2021, 10:00 AM
Weiter mit Iteratoren. Insbesonderer Iteratoren für die zwei Listenklassen, die wir implementiert haben.
April 22, 2021, 2:15 PM
Von der Schleife zu Iteratoren:
  • Eine Schleife braucht einen Schleifentest, eine Schleifenvariable, die einen Schritt weiter geschaltet wird und einen Schleifenrumpf
  • Diese Funktionalität kann in einem Objekt ausgedrückt werden
  • next() und hasNext() zum Steuern einer Schleife
  • Iterator<E> und Iterable<E>
  • Ein Iterable Objekt enthält mit seinem Iterator die beste Art, wie man über die Elemente des Objekts iterieren kann.
April 19, 2021, 10:00 AM
  • Funktionen höherer Ordung mit Predicate, Function und Consumer.
  • Was ist ? super und ? extends
  • Schleifen für rekursive Liste als:
    for (var it = this;!it.isEmpty();it = it.tail()){
      var x = it.head();
      //do something smart with x
    }
  • Warum ist die Verwendung von get(i) und length() schlecht bei rekursiven Listen.
April 15, 2021, 2:15 PM
  • Formale Spezifikation von Listen als Strukturelle Induktive Mengendefinition.
  • Rechnen auf Listen durch Anwenden von Gleichhungen.
  • Ein Ausflug nach Lisp.
April 12, 2021, 10:00 AM
Einstieg in einfach verkette Listen. nil, cons, isempty, head ,tail.