Programmierpraktikum (Sommersemester 2020)

Neuigkeiten & Ankündigungen

  • 25. Juni 2020: Wir haben nun für alle Aufgaben des zweiten Projekts ein Starthilfe-Video erstellt. Außerdem haben wir Ihnen in einem zusätzlichen Video Hintergrundinformationen zu allen mitgelieferten Dateien im Projekt 2 gegeben. Beides finden Sie bei den Vorlesungsmaterialien.

  • 24. Juni 2020: Bei den Vorlesungsmaterialien gibt es nun auch ein Starthilfe-Video für Projekt 2.

  • 23. Juni 2020: Das zweite Projekt steht bereit!

  • 3. Juni 2020: Bitte melden Sie das Programmierpraktikum im QIS an. Dort müsste es unter Prüfungsnummer 60221 verfügbar sein. Nur so können wir nach Abschluss des Praktikums dem Prüfungsamt übermitteln, dass Sie das Modul erfolgreich bestanden haben. Falls das Programmierpraktikum für Sie im QIS nicht zur Anmeldung angeboten wird, fragen Sie bitte in dem für Sie zuständigen Prüfungsamt nach, ob bzw. wie und bis wann Sie es anmelden müssen.

  • 20. Mai 2020: Die Vorlesungsmaterialien der Woche 7 (Testen) sind nun verfügbar.

  • 19. Mai 2020: Die Vorlesungsmaterialien der Woche 6 (Build Tools) sind verfügbar. Das zweite Video enthält ab Minute 4 eine Demo einiger Features in IntelliJ IDEA.

    Bitte beachten Sie unsere Hinweise zum Ablauf der Sprechstunden.

Ansprechpartner

Ablauf des Praktikums

Das Praktikum besteht aus zwei Übungsblättern, zwei Miniprojekten und zwei Projekten. Die Bearbeitung der Übungsblätter erfolgt in Zweierteams; die Miniprojekte und Projekte werden zu viert bearbeitet. Für die Übungsblätter haben Sie je eine, für die Miniprojekte zwei und für die Projekte jeweils drei Wochen Zeit.

Es gibt keine wöchentlichen Übungstermine. Für die Miniprojekte und Projekte vereinbart jedes Abgabeteam individuell mit der/dem zuständigen Tutor*in einen Termin zur Projektabnahme. Jedes Teammitglied muss dabei zeigen, dass es zur gemeinsamen Abgabe beigetragen hat.

Das Praktikum ist erfolgreich bestanden, wenn alle Übungsblätter, Miniprojekte und Projekte zufriedenstellend gelöst wurden.

Vorlesungen

Woche Themen und Material
1 (ab 14.04.) Organisation und Überblick
FolienInstallationsanleitung
Videos: 1. Organisation2. Java in a Nutshell
2 (ab 20.04.) Grundlagen der Programmierung in Java
Folien1. Video2. Video
IntelliJ IDEA Tutorial
1. Projekte erstellen oder öffnen2. Grundfunktionen3. Starthilfe Übungsblätter
3 (ab 27.04.) Objektorientierte Programmierung in Java
Folien1. Video2. Video3. Video4. Video
4 (ab 04.05.) Git: Folien1. Video2. Video3. Video4. Video
Tutorial: Starthilfe Projektphase: GitLab + IntelliJ IDEA mit Gradle
6 (ab 18.05.) Build Tools: Folien1. Video (Build Tools)2. Video (IDEs)
Tutorial: Starthilfe Miniprojekt 2
7 (ab 25.05.) Testen: Folien1. Video (Einführung Testen + JUnit)2. Video (Vertiefung Testen)
11 (ab 22.06.) Starthilfe Projekt 2: Aufgabe 1Aufgabe 2Aufgabe 3Aufgabe 4
Langes, freiwilliges Video: Hintergrundinformationen zu Projekt 2
14 14.07. 10:00 Uhr: Feedback-Session via BigBlueButton (Teilnahme freiwillig)

Um auf die Videos zugreifen zu können, müssen Sie sich mit Ihrem RHRK Account einloggen (RLP Login).

Übungsblätter / Projekte

Projekt 2

  • Ausgabe: 23. Juni 2020
  • Abgabe: 14. Juli 2020 bis 15 Uhr via GitLab
  • Aufgabenblatt (pdf)
  • Das Template finden Sie im GitLab Repository Ihres Teams:
    git pull im bestehenden Repository ausführen, dann gibt es einen neuen Ordner P2.
  • Beachten Sie den Hinweis zu den Meilensteinen auf dem Aufgabenblatt!

Projekt 1

  • Ausgabe: 02. Juni 2020
  • Abgabe: 23. Juni 2020 bis 15 Uhr via GitLab
  • Aufgabenblatt (pdf)
  • Das Template finden Sie im GitLab Repository Ihres Teams:
    git pull im bestehenden Repository ausführen, dann gibt es einen neuen Ordner P1.
  • Beachten Sie den Hinweis zu den Meilensteinen auf dem Aufgabenblatt!

Korrekturen

  • 08. Juni 2020: Aufgabe 1: Die Methode update soll false zurückgeben, wenn das zu aktualisierende Element nicht enthalten ist, bei erfolgreicher Aktualisierung entsprechend true.
  • 09. Juni 2020: Aufgabe 1: Zum Testen der merge Methode werden zwei PriorityQueue Instanzen benötigt. Als Vorlage können Sie diese angepasste PriorityQueueTest Klasse verwenden.

Miniprojekt 2

  • Ausgabe: 19. Mai 2020
  • Abgabe: 2. Juni 2020 bis 15 Uhr via GitLab
  • Aufgabenblatt (pdf)
  • Das Template finden Sie im GitLab Repository Ihres Teams:
    git pull im bestehenden Repository ausführen, dann gibt es einen neuen Ordner MP2.

Miniprojekt 1

  • Ausgabe: 6. Mai 2020
  • Abgabe: 19. Mai 2020 bis 15 Uhr via GitLab
  • Aufgabenblatt (pdf)
    • Im Aufgabentext zu Aufgabe 3 hatte sich ein Fehler eingeschlichen. Die zu implementierende Klasse ist: public class TreeMap<K, V> implements Map<K, V>.
    • Wenn bei Ihnen der Test BibleAnalyzerTest.main() fehlschlägt können Sie in der Datei BibleAnalyzerTest.java die Zeile 125 (assertTrue(stdout.contains("112 Nächsten"));) auskommentieren, also // vor die Zeile setzen, damit der Code nicht ausgeführt wird. Auf einigen Systemen klappt das mit den Umlauten nicht so wie es soll.
    • Wenn die Tests einen Fehler bei der Instanziierung der TreeMap melden, dann achten Sie darauf, dass der Konstruktor dieser Klasse public ist.
  • Das Template finden Sie im GitLab Repository Ihres Teams.

Übungsblatt 2

Übungsblatt 1

  • Ausgabe: 21. April 2020
  • Abgabe: 28. April 2020 bis 15 Uhr via Exclaim
  • Übungsblatt (pdf)IntelliJ IDEA Projekt (zip)
  • Abgefragt wird der Vorlesungsstoff aus der zweiten Vorlesungswoche. Sehen Sie sich außerdem unser IntelliJ IDEA Videotutorial an, damit Ihnen die Bearbeitung leichter fällt.

Übungsverwaltung

Die Verwaltung erfolgt über das Exclaim System. Die Veranstaltung heißt dort pp20.

Registrierung

Anmeldefrist war am 14. April um 15 Uhr. Anmeldefrist verlängert bis 16. April um 15 Uhr!

Damit wir Sie mit Ihrem Wunschpartner zusammen in ein Team einteilen können, müssen Sie auf der pp20 Seite im Exclaim den Button Gruppen und anschließend den Button Gruppenpräferenzen angeben klicken. Wichtig ist nur die untere Hälfte der Seite. Tragen Sie bei Benutzername 1 den Exclaim-Benutzernamen Ihres gewünschten Teampartners ein und klicken Sie unten auf Absenden. Ihr Wunschpartner muss entsprechend auch Ihren Benutzernamen eintragen. Nur wenn Sie sich gegenseitig eintragen und keine Teams mit mehr als zwei Personen bilden, können wir die Wünsche berücksichtigen.

Ansonsten werden die Teilnehmenden zufällig zu Teams zugeordnet.

Sprechstunden

Bitte schreiben Sie keinen Code, der als Lösung für unsere Aufgaben gedacht ist, in den öffentlichen Kanal auf Mattermost oder ins Forum. Über diese Kommunikationswege sollten nur allgemeine Fragen gestellt werden (gerne auch mit Code aus den Vorlesungsfolien etc.). Den Code aus Ihren Lösungen können Sie auf Mattermost als Direktnachricht an den/die in der Sprechstunde anwesende*n Tutor*in schicken.

Olat Forum

Zur Beantwortung Ihrer Fragen haben wir ein Forum eingerichtet. Sie finden es in unserem Olat-Kurs. Buchungscode für den Kurs: integer. Olat wird nur für das Forum verwendet, die Übungsverwaltung läuft über Exclaim!

Mattermost-Sprechstunden

Für Probleme, die sich nicht asynchron im Forum lösen lassen, bieten wir Sprechstunden an. Wir nutzen dazu das Team pp-ss20 auf dem RHRK Mattermost Server. Der Login erfolgt per RHRK Account via RHRK GitLab. Um dem Team beizutreten, müssen Sie im eingeloggten Zustand einmalig diesen Einladungslink öffnen.

Sie können Mattermost im Browser verwenden oder Sie installieren sich die passende Anwendung für Ihr Betriebssystem. Die Server-URL ist https://teamwork.rarp-kl.de/.

Zu den Sprechstunden-Zeiten ist ein*e Tutor*in im Kanal Sprechstunde anwesend. Von dort aus können Sie dann bei Bedarf Meetings per Jitsi (oder eine ähnliche Technologie) vereinbaren.

Ablauf

  • Wenn Sie ein Problem oder eine Frage haben, dann melden Sie sich grundsätzlich zuerst im Kanal Sprechstunde. Schreiben Sie nicht den/die Tutor*in direkt mit der Frage an. So können wir auch mit mehreren Personen gleichzeitig die Anfragen der Reihe nach abarbeiten.
  • Wenn sich Ihre Frage auf Ihren Programmcode bezieht, dann erstellen Sie zuerst einen Commit und pushen diesen auf den GitLab Server - gerne in einen separaten Zweig, falls Sie das nicht direkt in master haben wollen. Schicken Sie in Ihrer Anfrage im Kanal Sprechstunde dann einen Link zu dieser Datei in der GitLab Weboberfläche mit. Unsere Tutor*innen haben Zugriff auf Ihre Projekte und können Ihnen mit dem Link schneller helfen. Studierende aus anderen Teams können den Link nicht öffnen. Ihr Code bleibt also geheim und Sie verletzen damit nicht die Plagiatsregel.
  • Sobald Sie an der Reihe sind, wird eine anwesende Person (Tutor*in oder einer der Mitarbeiter) die Anfrage beantworten. Wenn wir der Meinung sind, dass die Antwort auch anderen hilft, dann antworten wir im Kanal, wenn es um Ihren spezifischen Quellcode geht, dann antworten wir per Direktnachricht.
  • Bitte haben Sie Verständnis dafür, dass die Sprechstunden auf 90 Minuten pro Werktag beschränkt sind. Sollten wir einmal nicht bis zu Ihrer Frage gekommen sein, dann versuchen Sie bitte nochmal, das Problem selbst zu lösen und melden Sie sich bei Bedarf in der nächsten Sprechstunde wieder. Erfahrungsgemäß sind die Sprechstunden kurz vor der Abgabefrist stärker besucht - fangen Sie also früh mit der Bearbeitung der Aufgaben an und profitieren Sie von den freien Kapazitäten in der Anfangsphase.

Zeiten

  • Montags: 10:00 - 11:30 Uhr (Sophia)
  • Dienstags: 13:45 - 15:15 Uhr (Christopher)
  • Mittwochs: 13:45 - 15:15 Uhr (Jonas)
  • Donnerstags: 13:45 - 15:15 Uhr (Aaron)
  • Freitags: 10:00 - 11:30 Uhr (Yannick)