Subato

 

Programmiermethoden und Techniken (AI) (SS 2022)

 

Responsible Lecturer:
Sven Eric Panitz

Lecturers

  • Sven Eric Panitz
  • Matthias Lang
  • Yentl Deuster
  • Hannes Schwanzer
  • Tobias Thiel
Lecture Times
  • Vorlesung Mon 10:00 B002
  • Vorlesung Thu 14:15 B002
Training Groups
  1. A Mon 11:45 C213
    (Sven Eric Panitz)
  2. B Mon 14:15 C213
    (Sven Eric Panitz)
  3. C Wed 10:00 C001
    (Yentl Deuster)
  4. D Thu 10:00 C001
    (Sven Eric Panitz)
  5. E Thu 10:00 C305
    (Matthias Lang)
  6. F Thu 11:45 C001
    (Sven Eric Panitz)
  7. G Thu 11:45 C305
    (Matthias Lang)
  8. H Fri 10:00 C001
    (Yentl Deuster)
  9. I Fri 11:45 C001
    (Yentl Deuster)
  10. J Fri 14:15 C361
    (Tobias Thiel)
  11. K Fri 16:00 C361
    (Tobias Thiel)
  12. Tutorium A Mon 11:45 C377
    (Hannes Schwanzer)
  13. Tutorium B Wed 14:15 C361
    (Hannes Schwanzer)
  14. Tutorium C Thu 16:00 C377
    (Hannes Schwanzer)

Exercise Sheets
Resource Files

 


 
 
 
Auf dieser Seite finden sich Lehrmaterialien zum Modul »Programmiermethoden und Techniken« im Studiengang Angewandte Informatik.

Vorlesungsskript:

Die Vorlesung besteht aus zwei Teilen.
  1. zunächst werden weitere Programmiermethoden und Techniken in Java gezeigt
  2. im zweiten Teil gibt es eine Einführung in die Programmiersprache C

Für den zweiten Teil gibt es ein eigenes Skript

Für den ersten Teil gibt es jeweils eigene Lehrbriefe mit Aufgaben.

  1. rekursive Listen
  2. iterative Listen

Cardelli Kurse

Einige Vorlesungsinhalte können mit der App Cardelli interaktiv gelernt werden:

  1. Recordklassen
  2. Einfach verkettete Listen
  3. Iteratoren
  4. Faltungen

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 eine der Abschlussaufgaben gelöst wurde.

 

Prüfung

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

 

Lessons
July 7, 2022, 2:15 PM
July 4, 2022, 10:00 AM
June 30, 2022, 2:15 PM
June 23, 2022, 2:15 PM
Operatoren und IO-Funktionen in C.
June 20, 2022, 10:00 AM

Aufzählungstypen mit enum und Summentypen mit union.

June 13, 2022, 10:00 AM
Beispiel. Iterative liste mit beliebigen Objektreferenzen:
June 9, 2022, 2:15 PM
Heap und Stack

Heap und Stack.

malloc und free.

void*

June 2, 2022, 10:00 AM

Referenzen:
unäre Operatoren: & und *
xs[i] = *(xs+i) = *(i+xs) = i[xs]

May 30, 2022, 10:00 AM
Erste Schritte in C
May 23, 2022, 10:00 AM
StAX, XPath
May 19, 2022, 2:15 PM
Sax
May 17, 2022, 10:00 AM
May 12, 2022, 2:15 PM
  • Einführung in XML.
  • Geschichtliche Entwicklung.
  • W3C
May 9, 2022, 10:00 AM

Von Listen zu Bäumen.

May 5, 2022, 2:15 PM
May 2, 2022, 10:00 AM

Die Schnittstelle java.util.stream.Stream

April 28, 2022, 2:15 PM
Faltungen

import java.util.*;
import java.util.function.*;

//die Faltungsfunktion
<R,E> R f(Iterable<E> xs,R r, BiFunction<R,E,R> bf){
  for (var x:xs) r = bf.apply(r,x);
  return r;
}

//eine Standardliste als Testdaten
var xs = List.of(1,2,3,4,5,6,7,8,9);

//Summe der Listenelemente
f(xs,0L, (r,x) -> r+x)

//größtes Listenelement
f(xs,Integer.MIN_VALUE, (r,x) -> Math.max(r,x))

//enthält die Liste eine 5?
var e = 5;
f(xs,false, (r,x) -> r||x.equals(e))

//enthält die Liste eine 45?
f(xs,false, (r,x) -> r||x.equals(45))

//Liste von Strings als Beispieldaten
var ys = List.of("hallo","es","ist","donnerstag","nachmittag");

//was ist der längste String (erster wenn meherer)
f(ys,"", (r,x) -> r.length()>x.length()?r:x)

//was ist der längste String (erster wenn meherer)
f(ys,"", (r,x) -> r.length()>=x.length()?r:x)

April 25, 2022, 10:00 AM
Itarable und Iterator.
April 21, 2022, 2:15 PM
April 14, 2022, 2:15 PM
  • Reduzieren von Ausdrücken anhang von Pattern-Gleichhungen
  • Implementierung verketteter Listen mit record-Klassen in Java.
April 11, 2022, 10:00 AM
  • Wiederholung. Schnelldurchgang Java Schlüsselwörter
  • rekursive Listen. Saalexperiment
  • Nil, Cons, isEmpty, head, tail
  • Pattern Gleichungen
  • Box-Pointer Notation
  • Krümels Liste
  • animiertes Gif