Zum Hauptinhalt springen

Woche 15: Reguläre Ausdrücke, Unit-Tests; Wiederholung

Nach dieser Woche können Sie …

  • angeben, ob ein gegebener String zu einem regulären Ausdruck passt
  • begründen, warum automatische Software-Tests sinnvoll sind
  • die Klausur bestehen ;)

Reguläre Ausdrücke werden verwendet, um Text zu finden, der einem bestimmten, allgemeinen Muster entspricht, z. B. bei Regeln fürs Syntaxhighlighting in Texteditoren oder um Telefonnummern innerhalb einer Chatnachricht zu erkennen und anklickbar zu machen.

Sobald Programme größer werden, kann es (überraschend) oft passieren, dass man durch eine Änderung am Code bestehende Funktionalität kaputt macht. Um das zu verhindern (und nicht immer alles manuell durchtesten zu müssen), schreibt man Softwaretests, mit denen automatisch die Funktionalität von Methoden und Klassen geprüft werden kann.

Literatur

Falls Sie die Themen dieser Woche nochmal in der Literatur nachlesen wollen, können Sie sich den Wikipedia-Artikel über reguläre Ausdrücke und Kapitel 22.1 in Java ist auch eine Insel ansehen.

Mit all dem, was Sie in der Programmierung gelernt haben, sind Sie jetzt nicht nur in der Lage, kleine Java-Programme zu schreiben und zu verstehen, sondern Sie können jetzt auch relativ viel des Gelernten auf andere (imperative) Programmiersprachen übertragen. Wenn Sie z. B. C, Kotlin oder Python lernen, werden Sie sehr viele der Elemente wiederfinden, die Sie aus der Vorlesung kennen (z. B. Datentypen, Variablen, Schleifen, Methoden, Klassen) – aber auch neue Dinge kennenlernen (z. B. Pointer-Arithmetik, Destruktoren, Duck-Typing, List Comprehensions, Generators).

Vorlesung

Reguläre Ausdrücke & Automatisches Testen

Freiwillige Zusatzaufgaben

zum Knobeln: Schreiben Sie eine Methode, die prüft, ob ein String zu einem Integer geparst werden kann, und zwar ohne eine Exception abzufangen.

Wiederholung

In der Vorlesung am Mittwoch wiederholen wir Themen, zu denen Sie Fragen haben. Geben Sie Ihre Fragen so genau wie möglich (und am besten schon bis Dienstagmittag) in der Feedbackumfrage zur Vorlesung am Montag an.

Die ersten 15 Minuten der Aufzeichnung fehlen leider. Ich habe alle Fragen aber hier auch schriftlich beantwortet. Die Antworten beziehen sich teilweise auf den hier hochgeladenen Code. Weitere Fragen bitte im Ilias-Forum stellen.

Besprechung der Probeklausur

Die Probeklausur wird diese Woche in den Tutorien besprochen. Außerdem finden Sie im Ilias einen Lösungsvorschlag (beim Download der Übungsblätter).

Selbsttests

Die Inhalte der letzten Woche sind klausurrelevant. Damit Sie prüfen können, ob Sie die Inhalte hinreichend gut verstanden haben, gibt es auf den nächsten Seiten Selbsttests.

Da es zu diesem Stoff keine praktischen Übungsaufgaben mehr gibt, wird es in der Klausur auch keine Aufgaben geben, in denen Sie Methoden zu diesen Themen implementieren müssen. Es könnte aber Text- oder Codelückentext-Aufgaben zu diesen Themen geben. Wenn Sie die Selbsttestfragen beantworten können und wissen, warum welche Antwort richtig bzw. falsch ist, sind Sie gut auf die Fragen in der Klausur vorbereitet.

Klausurvorbereitung

Folgende Tipps haben anderen bei der Klausurvorbereitung in der Vorgangenheit geholfen, vielleicht helfen Sie Ihnen auch:

  • Gehen Sie die Übungsaufgaben nochmal durch. Schauen Sie sich ggf. auch alternative Lösungswege in unseren Lösungsvorschlägen oder bei Freund:innen an, um Ideen für verschiedene Lösungsansätze zu sammeln. Wie Sie die automatischen Tests auf Ihrem eigenen Rechner nochmal laufen lassen können, haben wir in Woche 11 erklärt. Weitere passende Aufgaben finden Sie z. B. bei den „freiwilligen Zusatzaufgaben“ unter den Foliensatz-Download-Buttons oder in Introduction to Programming in Java.
  • Schreiben Sie sich Ihren A4-Spickzettel selbst. Notieren Sie Dinge, die sich nicht so gut auswendig können, oder häufige Fehler, die Sie beim Programmieren machen.
  • Bearbeiten Sie Altklausuren unter Klausurbedingungen. Drucken Sie sich eine der jüngeren Klausuren aus dem Klausurarchiv aus, nehmen Sie sich 120 Minuten ungestört Zeit und bearbeiten Sie die Klausur auf Papier. So können Sie besser einschätzen, ob Sie die Klausur gut in der vorgesehen Zeit bearbeiten können. Falls Sie Fragen zu einer alten Aufgabe haben, nutzen Sie das Ilias oder das Tutorium.
  • Erklären Sie anderen den Vorlesungsstoff. Bei Diskussionen mit anderen Personen aus dem Kurs fällt Ihnen eher auf, wenn Sie noch dunkle Flecken bei einem Thema haben, und Sie können sich gegenseitig helfen.
  • Denken Sie sich eigene Aufgaben aus. Stellen Sie sich in Ihrer Lerngruppe gegenseitig kleine Aufgaben und diskutieren Sie die Lösung.

Klausur vorbei … und jetzt?

Wir hoffen, dass die meisten von Ihnen weiter programmieren wollen (oder auch müssen, wenn Sie Informatik studieren). Um nicht aus der Übung zu kommen, könnten Sie in der vorlesungsfreien Zeit ein kleines Programmierprojekt angehen: Gibt es irgendeine lästige (digitale) Aufgabe, die Sie automatisieren wollen? Wollten Sie schon immer mal ein kleines Computerspiel schreiben? Dann haben Sie jetzt die grundlegenden Werkzeuge, um diese Probleme anzugehen.

Wenn Sie im Sommersemester das Programmierpraktikum besuchen und sich schon mal etwas vorab mit dem Stoff beschäftigen wollen, können Sie den Stoff auf dieser Seite anschauen. Dort haben wir ein paar Themen, die wir im Programmierpraktikum behandeln werden, für Sie kompakt zusammengefasst. Damit können Sie schon einmal etwas vorarbeiten.

Ideen für eigene Projekte

(am besten erst nach der Klausur anfangen)

Als Inspiration können Sie sich diese Implementierung von Space Invaders anschauen, spielen und erweitern.

¹ Markus' erstes Programmierprojekt war ein Kniffel-Spiel, inklusive (sehr primitivem) Bot-Spieler. Der Code ist aus heutiger Sicht betrachtet schrecklich, aber waren halt seine ersten Schritte.

Screenshot einer eigenen Space-Invaders-Variante