From 75df6698fa68f93e98d59007c651c2439ba86455 Mon Sep 17 00:00:00 2001 From: Jessica Steinberger Date: Tue, 18 Mar 2025 22:37:41 +0100 Subject: [PATCH] Add Assignmen 01 and Assignment 02 --- Assignment_01/img/gitty_clone.png | Bin 0 -> 19013 bytes Assignment_01/readme.md | 136 ++++++++++++++++++++++++++++++ Assignment_02/img/gitty_clone.png | Bin 0 -> 19013 bytes Assignment_02/readme.md | 107 +++++++++++++++++++++++ README.md | 71 ++++++++++++++++ 5 files changed, 314 insertions(+) create mode 100644 Assignment_01/img/gitty_clone.png create mode 100644 Assignment_01/readme.md create mode 100644 Assignment_02/img/gitty_clone.png create mode 100644 Assignment_02/readme.md create mode 100644 README.md diff --git a/Assignment_01/img/gitty_clone.png b/Assignment_01/img/gitty_clone.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5cee0a8922da8f1e5c2403d52e1ebf10cc0102 GIT binary patch literal 19013 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 BtbhOj literal 0 HcmV?d00001 diff --git a/Assignment_01/readme.md b/Assignment_01/readme.md new file mode 100644 index 0000000..a792365 --- /dev/null +++ b/Assignment_01/readme.md @@ -0,0 +1,136 @@ +# Umgebung aufsetzen + +**🎓 Benotetes Assignment 🎓** + +📆 **Fällig: 30.03.2025** 📆 + +## Lernziel + +Umgebung für die Vorlesung aufsetzen sowie Java Programme kompilieren und dekompilieren können. + +## Beschreibung + +In diesem Assignment werden Sie die notwendige Tool-Umgebung für die Bearbeitung der Aufgaben aus der Vorlesung aufsetzen. + +Die Abgabe der Aufgaben und die Tests sind automatisiert, sodass Sie auf jeden Fall die passenden Werkzeuge installieren müssen, damit Sie die Übungen durchführen können. Bitte halten Sie sich an die folgenden Anweisungen und nehmen Sie keine "Abkürzungen". + +## Softwareausstattung + +### Linux + +Wenn Sie einen eigenen Rechner für die Veranstaltung verwenden wollen -- was dringend zu empfehlen ist, installieren Sie bitte (direkt auf dem Gerät oder in einer VM) ein **64-Bit Ubuntu Linux** in einer aktuellen Version (z.B. 22.04). Eine Anleitung und Unterstützung finden Sie [hier](https://github.com/informatik-mannheim/linux-hsma/blob/master/doc/readme.md). Die Anleitung ist umfangreich und beschreibt, wie Sie ein vollständiges System aufsetzen. Wenn Sie Linux in einer VM betreiben, können Sie sich das vollständige Setup sparen und nur ein grundlegendes System installieren. + +Wenn Sie ein anderes Linux verwenden wollen, prüfen Sie vorher, ob es für dieses ein JDK 21 gibt. Mit Ubuntu 22.04 sind Sie auf der sicheren Seite. + +Bitte versuchen Sie nicht, die Übungen ohne Linux zu lösen, es wartet eine Welt der Frustration und des Schmerzes 😭 auf Sie, durch die schon viele andere gegangen sind, die diesen einen wichtigen Tipp ignoriert haben. + + +### Programme + +Nachdem Sie Linux installiert haben, fügen Sie die folgende Software in mindestens der angegebenen Version hinzu: + + * **Java JDK 21 **
`sudo apt install openjdk-21-jdk openjdk-21-source openjdk-21-doc` + * **Git** und Git-Frontends
`sudo apt install git` + +## Aufsetzen der Arbeitsumgebung + +### Setup von Git + +Setzen Sie bei Git die notwendigen Nutzerinformationen, über die passenden Kommandos: + +```console +$ git config --global user.name "Mona Lisa" +$ git config --global user.email "mona.lisa@louvre.fr" +``` + +_Benutzen Sie bitte Ihren Namen und Ihre HS-Mannheim-E-Mail-Adresse. Jede Abgabe als Mona Lisa wird mit Punktabzug bestraft_! + +### ssh-Key erzeugen + +Damit Sie Ihre Abgaben automatisiert durchführen können und nicht immer wieder Ihren Benutzernamen und Ihr Passwort eingeben müssen, erzeugen Sie sich einen SSH-Key. `hugo` müssen Sie durch Ihren wirklichen Benutzernamen ersetzen, + +```console +$ mkdir -p ~/.ssh +$ chmod og-rwx ~/.ssh +$ ssh-keygen +Generating public/private rsa key pair. +Enter file in which to save the key (/home/hugo/.ssh/id_rsa): ⏎ +Enter passphrase (empty for no passphrase): ⏎ +Enter same passphrase again: ⏎ +Your identification has been saved in /home/hugo/.ssh/id_rsa +Your public key has been saved in /home/hugo/.ssh/id_rsa.pub +The key fingerprint is: +SHA256:jnxRiAreSWFBlHP3zOzggy9YIhd8T+A5AFBA2f8ioKQ hugo@meinrechnername +The key's randomart image is: ++---[RSA 3072]----+ +|+==+*o | +| . o+.o... | +| ..o=.+.=. | +| + +o+= o.= | +|+ o +o.*So | +|E ..ooo++.. | +| o.++.o. | +| . ... | +| . | ++----[SHA256]-----+ +``` + +Der ssh-Key liegen jetzt im Verzeichnis `.ssh` in Ihrem Home-Directory. Im Beispiel haben wir den Default-Namen `id_rsa` für den Key verwendet. Sie finden in dem Verzeichnis jetzt mindestens zwei Dateien: + + * `id_rsa` für den Secret-Key + * `id_rsa.pub` für den Public-Key + +Haben Sie einen anderen Namen angegeben, dann heißen die Schlüssel natürlich entsprechend anders. In diesem Fall kann es auch nötig sein, den Schlüssel ssh erst bekannt zu machen. + +Den __Public-Key__ müssen Sie dann auf dem Git-Server hinterlegen. + + 1. Öffnen Sie die URL `https://gitty.informatik.hs-mannheim.de` und melden Sie sich mit Ihrem Hochschulaccount an + 2. Gehen Sie auf Ihren Nutzer, dann auf "Settings" und danach auch "SSH/GPG Keys". + 3. Fügen Sie über den Knopf _Add Key_ den **Public Key** des soeben erzeugten Schlüssels hinzu, also den Inhalt der Datei `.ssh/id_rsa.pub`. + 4. Testen Sie den Schlüssel: + * Falls Sie nicht an der Hochschule sind, bauen Sie eine VPN-Verbindung auf, damit Sie sich im Netz der Hochschule befinden + * Öffnen Sie eine Konsole + * Geben Sie `ssh gitea@gitty.informatik.hs-mannheim.de` ein. + * Sie sollten die Meldung bekommen, mit welchem Schlüssel Sie sich authentifiziert haben. + +```console +$ ssh gitea@gitty.informatik.hs-mannheim.de +Hi there, hugo! You've successfully authenticated with the key named hugo@meinrechnername, but Gitea does not provide shell access. +If this is unexpected, please log in with password and setup Gitea under another user. +Connection to gitty.informatik.hs-mannheim.de closed. +``` + +### Repository + +Alle Ihre Abgaben erfolgen über ein Ihnen zugeordnetes Repository. Dieses Repository werden anhand der Gruppen angelegt, in die Sie sich eingetragen haben. Sobald es für Sie erzeugt wurde, sollte es Ihnen nach dem Login angezeigt werden, wenn Sie in die [Organisation pr2-lecture-STG](https://gitty.informatik.hs-mannheim.de/pr2-lecture-STG) gehen. (Sollten Sie einen `Fehler 404` bekommen, haben Sie vergessen sich auf der Webseite anzumelden.) + +Gehen Sie auf Ihr Repository und kopieren Sie sich die "Clone URL" für ssh: + + + +**Achtung:** Verwenden Sie **nicht** die https-URL. + + +### Working Directory + +Suchen Sie sich auf Ihrem Rechner eine Stelle, an der Sie in Zukunft alle Quelltexte und Aufgaben für PR2 bearbeiten wollen (__Working Directory__). Wir gehen im Folgenden davon aus, dass Sie einfach innerhalb von `~/Documents` arbeiten. Verwenden Sie keinen Dropbox-, Google- oder OneDrive-Ordner, weil diese häufig zu Problemen im Zusammenhang mit Git führen. + +Öffnen Sie das Working Directory in einer Konsole und clonen Sie Ihr Git-Repository mit der URL, die Sie im vorhergehenden Schritt ausgelesen haben. Hier als Beispiel für `team-01`. + +```console +$ git clone gitea@gitty.informatik.hs-mannheim.de:pr2-lecture-STG/team-01.git +$ cd team-01/ +``` + +In dem Verzeichnis sollten bereits ein paar Dateien vorhanden sein. + + + +## Abgabe + +Für dieses Assignment gibt es __keine Abgabe__. + + + + + diff --git a/Assignment_02/img/gitty_clone.png b/Assignment_02/img/gitty_clone.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5cee0a8922da8f1e5c2403d52e1ebf10cc0102 GIT binary patch literal 19013 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 BtbhOj literal 0 HcmV?d00001 diff --git a/Assignment_02/readme.md b/Assignment_02/readme.md new file mode 100644 index 0000000..d7f7ace --- /dev/null +++ b/Assignment_02/readme.md @@ -0,0 +1,107 @@ +# Erster Commit + +**🎓 Benotetes Assignment 🎓** + +📆 **Fällig: 30.03.2025** 📆 + +## Lernziel + +Einen ersten Commit erfolgreich einchecken, pushen und testen. + +## Aufgabe + +Es ist wichtig, dass Sie diese Aufgabe erfolgreich abschließen. Der Ablauf ist die Vorlage für alle weiteren Übungen, welche Sie fristgerecht einreichen müssen. Diese Aufgabe ist zwar trivial, zeigt Ihnen aber den generellen Ablauf. + +Lesen Sie deswegen dieses Assignment sehr sorgfältig und führen Sie die beschriebenen Schritte durch. + +Die folgenden Schritte beziehen sich auf Ihr persönliches Repository, dass Sie im vorhergehenden Assignment angelegt und konfiguriert haben. Sie arbeiten in Ihrer lokalen Kopie, dem __Working Directory__ und übertragen Ihre Ergebnisse am Ende in das Repository auf dem zentralen Git-Server. + +Wie Sie die Umgebung aufsetzen, wurde im vorhergehenden Assignment erläutert. Sorgen Sie dafür, dass Sie den aktuellen Stand der Aufgaben haben, indem Sie in Ihrem Working Directory `bin/update.sh` aufrufen. + +### Eclipse einrichten + +Hier erhalten Sie eine Anleitung, wie Sie Eclipse für die Bearbeitung der Aufgaben einrichten. Sie dürfen auch IntelliJ oder VS Code verwenden. Allerdings müssen Sie sich die Arbeitsumgebung selbstständig einrichten. + + 1. Legen Sie einen neuen Workspace für die Vorlesung PR2 an. Es empfiehlt sich, diesen in einem Unterverzeichnis, z.B. `eclipse-workspace` in Ihrem Working Directory anzulegen. Allerdings sollten Sie das Verzeichnis dann über die `.gitignore`-Datei von der Versionsverwaltung ausschließen. + 2. Erzeugen Sie mit `File` -> `New` -> `Java Project` ein neues Java-Projekt. + * Geben Sie dem Projekt einen beliebigen Namen, z.B. "pr2" + * _Entfernen_ Sie das Häkchen für `Use Default Location` und tragen Sie den Pfad zu dem `sources`-Ordner in Ihrem Working Directory ein. + * _Entfernen_ Sie das Häkchen für `Create module-info.java file`. + * Drücken Sie auf `Finish`. + +Wenn alles richtig funktioniert hat, findet Eclipse die Datei `.classpath` im `sources`-Verzeichnis und macht automatisch die notwendigen Einstellungen. Überprüfen Sie aber die folgenden Punkte trotzdem und passen Sie sie gegebenenfalls an. + + 1. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Libraries`. Selektieren Sie den `Classpath`. + * Gehen Sie auf den Knopf `Add Library` und wählen Sie `JUnit` aus. Im Folgenden Dialog selektieren Sie die Version 5 von JUnit. + * Gehen Sie auf den Knopf `Add JARs` und wählen Sie aus dem `lib`-Ordner das JAR mit dem Namen `game-framework-1.0.jar` aus. + * Entfernen Sie, falls vorhanden, ein JAR namens `solutions-1.0...`. + 2. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Source`. + * Stellen Sie sicher, dass der Ordner `src/main/java` eingetragen ist. + * Stellen Sie sicher, dass der Eintrag `Default output folder` `.../target/classes` entspricht. + +### HelloWorld programmieren + +In dieser Aufgabe geht es darum, ein einfaches Hello-World-Programm zu schreiben und dann einzureichen. + + 1. Bitte gehen Sie in das Paket [pr2.bootstrap.hello](../sources/src/main/java/pr2/bootstrap/hello/) + 2. Schauen Sie sich die Klassen `HelloWorld` und `Greeter` an. + 3. Vervollständigen Sie den Code, achten Sie dabei insbesondere auf die `// TODO:`-Kommentare. + 4. Testen Sie Ihr Programm und geben es danach ab. + + +## Abgabe + +Alle Abgaben für die Vorlesung erfolgen über `git`. + +Hierzu gehen Sie wie folgt vor: + + 1. Öffnen Sie eine Kommandozeile (Terminal). + 2. Gehen Sie in Ihr Working Directory. + 3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren. + 4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken Sie Ihre Änderungen in `git` **auf der Kommandozeile** ein (comitten), d.h. mit `git add` und `git commit`. Verwenden Sie **nicht** Eclipse für diesen Schritt. + 5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen. + +Wenn beim Bauen des Programms durch Maven Fehler auftreten, dann lesen Sie die Fehlermeldungen sorgfältig **von oben nach unten**. Sie müssen immer den ersten Fehler (von oben gesehen) zuerst beheben. + +Als Beispiel soll folgende Ausgabe von Maven dienen: + +```console +[INFO] Scanning for projects... +[INFO] +[INFO] --------------------< de.hs_mannheim.pr2:solutions >-------------------- +[INFO] Building PR2 Excercises 1.0-SNAPSHOT +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- maven-checkstyle-plugin:3.2.0:check (validate) @ solutions --- +[INFO] Starting audit... +[ERROR] /tmp/team-79/sources/src/main/java/pr2/auffrischung/schnick/ +SchnickSchnackSchnuck.java:3:8: Unused import - java.util.Random. [UnusedImports] +[ERROR] /tmp/team-79/sources/src/main/java/pr2/auffrischung/schnick/ +SchnickSchnackSchnuck.java:4:8: Unused import - java.util.Scanner. [UnusedImports] +[ERROR] /tmp/team-79/sources/src/main/java/pr2/bootstrap/hello/ +HelloWorld.java:17:11: Comment matches to-do format 'TODO:'. [TodoComment] +[ERROR] /tmp/team-79/sources/src/main/java/pr2/bootstrap/hello/ +HelloWorld.java:18:11: Comment matches to-do format 'TODO:'. [TodoComment] +[ERROR] /tmp/team-79/sources/src/main/java/pr2/bootstrap/hello/ +HelloWorld.java:19:11: Comment matches to-do format 'TODO:'. [TodoComment] +Audit done. +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD FAILURE +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 1.988 s +[INFO] Finished at: 2023-03-23T16:39:26+01:00 +[INFO] ------------------------------------------------------------------------ +[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.2.0:check (validate) on project solutions: Failed during checkstyle execution: There are 5 errors reported by Checkstyle 10.4 with checkstyle.xml ruleset. -> [Help 1] +[ERROR] +[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. +[ERROR] Re-run Maven using the -X switch to enable full debug logging. +[ERROR] +[ERROR] For more information about the errors and possible solutions, please read the following articles: +[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException +``` + +Dann ist der **erste Fehler, den Sie beheben müssen**, der unbenutzte Import in der Datei `SchnickSchnackSchnuck.java` in Zeile 3. + +```console +[ERROR] /tmp/team-79/sources/src/main/java/pr2/auffrischung/schnick/SchnickSchnackSchnuck.java:3:8: Unused import - java.util.Random. [UnusedImports] +``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c8cc5d --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# Programmieren 2 (Sommersemester 2025) + +## Aufbau der Veranstaltung + +Die folgende Tabelle zeigt Ihnen die Themen der Woche und welche Kapitel Sie bis wann vorbereitet haben müssen. Da die Veranstaltung als **Inverted Classroom** durchgeführt wird, ist es **Ihre Aufgabe** das entsprechende **Kapitel** im Skript **bis zum genannten Termin** durchgearbeitet zu haben. + +| # | 📢 Motto | 🎓 Themen | 📚 Kapitel | 📆 bis | +|----|--------------------------------------------|-------------------------------------------------------|--------------------|----------| +| 1 | Auffrischen, einchecken und loslegen | Auffrischung | [1][1] | ¹ | +| 2 | Wie Julius Caesar programmieren | JUnit, JavaDoc, Programmierstil, Pakete, Module, JARs | [2][2], [3][3] | **30.03** | +| 3 | Erben und vererben | Vererbung, Überladen, Verdecken, Konstruktoren | [4][4] | **06.04** | +| 4 | Verhaltenstherapie für Klassen | Überschreiben, Polymorphie, static, final | [4][4] | **13.04** | +| 5 | Mit Interfaces geht es noch abstrakter | Interfaces, abstrakte Klassen, SOLID, STUPID | [5][5] | **20.04** | +| 6 | Wenn es mal schief geht, Ausnahmen | Exceptions, try, catch | [9][9] | **27.04** | +| 7 | Geschenkverpackungen und andere Feinheiten | Object, Wrapper, | [7][7] | **04.05** | +| 8 | Daten brauchen Struktur | Abstrakte Datentypen, Collections | [13][13], [14][14] | **11.05** | +| 9 | Rein oder raus, die Daten müssen fließen | Input/Output mit Streams und Reader/Writer | [10][10] | **18.05** | +| 10 | One size fits all, mit generischen Typen | Generische Typen, Wildcards | [11][11] | **25.05** | +| 11 | Matroschka-Klassen | Geschachtelte Klassen, Lambdas | [12][12] | **01.06** | +| 12 | Wer sortiert, muss trotzdem suchen | Suchen, Sortieren, Regex | [6][6] | **08.06** | +| 13 | ------- | ------- | | | +| 14 | Objekte sammeln | Streams, Optional, Enums, Records | [15][15], [8][8] | **22.06** | +| 15 | Parallel läuft es schneller | Threads, Probleme der Thread-Programmierung | [16][16] | **29.06** | + +¹ = Wird als aus PR1 bekannt vorausgesetzt + +[1]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_01_auffrischung-script.pdf +[2]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_02_intro-script.pdf?forcedownload=1 +[3]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_03_strukturierung-script.pdf?forcedownload=1 +[4]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_04_objektorientierung-script.pdf?forcedownload=1 +[5]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_05_interfaces_design-script.pdf?forcedownload=1 +[6]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_06_algorithmen-script.pdf?forcedownload=1 +[7]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_07_object_und_wrapper-script.pdf?forcedownload=1 +[8]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_08_enum_records-script.pdf?forcedownload=1 +[9]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_09_ausnahmebehandlung-script.pdf?forcedownload=1 +[10]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_10_input_output-script.pdf?forcedownload=1 +[11]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_11_generische_typen-script.pdf?forcedownload=1 +[12]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_12_geschachtelte_klassen_lambdas-script.pdf?forcedownload=1 +[13]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_13_datenstrukturen-script.pdf?forcedownload=1 +[14]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_14_collections-script.pdf?forcedownload=1 +[15]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_14_collections-slides.pdf?forcedownload=1 +[16]: https://moodle.hs-mannheim.de/pluginfile.php/478124/mod_folder/content/0/pr2_16_threads-script.pdf?forcedownload=1 + + +## Freiwillige Übungen + +Die freiwilligen Übungen zur Vertiefung der Vorlesungsinhalte finden Sie in einem getrennten Repository: [Freiwillige Übungen](pr2-lecture-STG/uebungen/src/branch/main/readme.md) + +## Assignments + +Hier finden Sie die Assignments (Aufgaben) für die Vorlesung Programmieren 2 (PR2). Die Assignments sind in der nachfolgenden Tabelle zusammen mit dem Fälligkeitsdatum aufgelistet. Diese Fälligkeit dient Ihnen zur zeitlichen Orientierung und dem eigenen Überprüfen Ihres Lernfortschritts. Am Tag der Fälligkeit laden Sie bitte die .md Datei Ihres persönlichen Journals in Git hoch (pro Gruppenmitglied eine Datei). + + +Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md). +Wichtige Einstellungen für Eclipse sind [hier](help/eclipse.md) beschrieben. + + + + +| # | Ausgabe | Thema | Fällig am 📆 | +|----|------------|---------------------------------------------------------------------|----------------| +| 1. | 19.03.2025 | [Umgebung aufsetzen](Assignment_01/readme.md) | **30.03.2025** **21:00:00 MEZ** | +| 2. | 19.03.2025 | [Erster Commit](Assignment_02/readme.md) | **30.03.2025** **21:00:00 MEZ** | +| 3. | 26.03.2025 | [Stein, Papier, Schere (, Echse, Spock)](Assignment_03/readme.md) | **06.04.2025** **21:00:00 MEZ** | +| 4. | 02.04.2025 | [Vektor](Assignment_04/readme.md) | **13.04.2025** **21:00:00 MEZ** | +| 5. | 09.04.2025 | [Racewars](Assignment_05/readme.md) | **27.04.2025** **21:00:00 MEZ** | +| 6. | 30.04.2025 | [Fibonacci](Assignment_06/readme.md) | **11.05.2025** **21:00:00 MEZ** | +| 7. | 14.05.2025 | [Passwortcracker](Assignment_07/readme.md) | **01.06.2025** **21:00:00 MEZ** | +| 8. | 28.05.2025 | [Performance von Sortieralgorithmen](Assignment_08/readme.md) | **08.06.2025** **21:00:00 MEZ** | +| 9. | 18.06.2025 | [Textanalyse](Assignment_09/readme.md) | **29.06.2025** **21:00:00 MEZ** | +