06 | Montag, 16.05.2022

In der heutigen Sitzung wenden Sie die Grundlagen der Objektorientierten Programmierung (OOP) in Python an.

Ziele

  • Sie erklären die Grundidee Objektorientierter Programmierung (OOP).
  • Sie erstellen Klassen mit Eigenschaft und Methoden.
  • Sie vererben die Eigenschaften und Methoden einer Klasse.
  • Sie instanziieren einige Objekte.
  • Sie instanziieren viele Objekte mit Hilfe von Schleifen.
  • Sie implementieren Methoden, um Fragen an das Datenmaterial zu beantworten.
  • Sie forken ein Projekt in GitLab und stellen nach getaner Arbeit einen Merge request.
  • Sie kennen die Grundbegriffe von Git, GitLab und GitHub.

Gruppenarbeit

Wie schon in den vergangenen Sitzungen bearbeiten Sie die Aufträge in ihrer (hybriden) Arbeitsgruppe. Hierbei ist die mündliche Kommunikation wichtiger als einer eleganter GitLab-Workflow! Das bedeutet, dass der Schwerpunkt auf dem Reden und Diskutieren miteinander liegt. Die technischen Abläufe in Git/GitLab erarbeiten wir gemeinsam.

Aufträge

Bringen Sie Ihre Forschungsidee auf den Punkt.

  • Werfen Sie zunächst einen Blick auf die formalen und inhaltlichen Kriterien der Hausarbeit, die Sie in zum Ende des Semsters anfertigen werden.
  • Präzisieren Sie nun Ihre Forschungsidee in Ihrem Pad mit dem Umfang von ca. einer DIN A4-Seite, wobei Sie das Gerüst des 6-Zeilers zugrundelegen.
  • Geben Sie dem Pad eine vorläufige Überschrift (später der Titel der Hausarbeit). Diese Überschrift ist nicht gleichlautend mit der Forschungsfrage!
  • Formulieren Sie mindestens drei Varianten der Forschungsfrage, die Ihr Erkenntnisinteresse abbildet.
  • Schließen Sie das Dokument mit dem Entwurf einer Gliederung Ihrer geplanten Hausarbeit ab.
  • Schreiben Sie unter der Überschrift “Methodische Herangehensweise”, wie Ihre Projektarbeit in diesem Semester aussieht. Sie bildet die empirische Basis für die Beantwortung Ihrer Forschungsfrage!
  • Senden Sie den Link des aktualisierten Pads mit dem Betreff “Aktualisiertes Forschungsvorhaben” im Mattermost-Kanal “Wissenschaftliches Arbeiten” bis zum 27.05.2022. Diese Abgabe zählt als Studienleistung. Wenn Ihnen dieser transparente Umgang mit Ihrer Forschungsidee nicht behagt, senden Sie den Link als Direktnachricht.

Es gibt eine Menge Bücher über OOP, auch eine ganze Menge Quellen im Netz. Ich empfehle Ihnen aufgrund der vereinfachten Darstellung zunächst die Website Python lernen von Axel Pratzner.

Lesen Sie das Kapitel bis zum Ende ("Klassen auslagern"), auch wenn Sie einige Aspekte vielleicht noch nicht gleich brauchen. Sie werden aber nach der Lektüre fremden Code besser verstehen.

In den Codebeispielen zur Veranstaltung finden Sie das Tierheim der TUHH.

  1. Forken Sie das Repository in Ihren persönlichen Account.
  2. Klonen Sie das geforkte Repository mit git über die Kommandozeile auf Ihren Rechner.1
  3. Öffnen Sie JupypterLab in dem neuen Ordner, und bearbeiten Sie die Aufgaben in der Gruppe.
  4. Pushen Sie nach getaner Arbeit Ihren aktuellen Stand des Notebooks.
  5. Stellen Sie einen Merge request von Ihrem Repository auf das Upstream-Repository.
  6. Laden Sie Ihren Dozenten xldrkp und Ihren Tutor als Developer in Ihr Projekt ein, damit sie Zugriff auf Ihren Beitrag haben.2
  7. Setzen Sie die Arbeit am Tierheim-Projekt zuhause fort. Widmen Sie sich einer Fragestellung aus dem Notebook, und versuchen Sie, diese umzusetzen. Sie können mit folgenden Kommandos jederzeit Ihren Arbeitsstand in Ihren Fork pushen:
    1. $ git add .
    2. $ git commit -m "Updates"
    3. $ git push origin main

Sie verstehen nur Bahnhof? Macht nichts, wir werden das Vorgehen in der Sitzung durchgehen und öfter wiederholen, bis Sie sicher sind.


  1. Nutzen Sie zunächst gern den HTTPS-Link zum Klonen. Wir werden später noch einen SSH-Zugang für GitLab einrichten, um das Pushen und Pullen zu vereinfachen. ↩︎

  2. Ohne diese Einladung hat Ihr Dozententeam in diesem Szenario zwar Einsicht in den Merge request. Um aber Ihren Code lokal pullen zu können, müssen wir Mitglieder Ihres Repos sein. ↩︎

Abgabetermin

Der Auftrag ist bis zum Freitag, 27.05.2022, zu erledigen.

Weiter