03 | Montag, 25.04.2022

Kollaboratives Projekt: gemeinsam ein Buch schreiben

Der Ausrichtung der Veranstaltung “Text und Code kollaborativ entwickeln” folgend, beginnen Sie heute damit, gemeinsam ein Buch mit Übungsaufgaben für Python zu schreiben.

Mit diesem längerfristigen Projekt werden folgende technische Themen praktisch bearbeitet:

  • Sie lernen die kollaborative Arbeit mit GitLab und folgende Begriffe kennen: commit, merge, branch, merge request, pipeline, environment. Dabei arbeiten Sie zunächst im Browser.
  • Sie lernen einen besonderen Generator für statische Webseiten kennen: Jupyter Book. Damit lassen sich Jupyter Notebook- (.ipynb) und Markdown-Dateien (.md) zu einem “blätterbaren” Kompendium zusammenfassen. Weil es sich bei einem Jupyter Book um eine Website im HTML-Kontext handelt, lassen sich weitere Medien wie Videos, Bilder oder auch H5P-Elemente integrieren. Und weitere interessante Dinge sind möglich…

Beispiel einer Aufgabenstellung

In der Sitzung arbeiten Sie in hybriden Lerngruppen zusammen und entwickeln eigene Aufgabenstellungen für einfache Programmierprobleme. Dabei geht es im Kern darum, dass Sie an der sprachlichen Passung von Aufgabenformulierung und Musterlösung arbeiten. Die folgende Abbildung veranschaulicht diese Aufgabenstellung.

Screenshot einer beispielhaften Aufgabenstellung mit Lösung in JupyterLab
Screenshot einer beispielhaften Aufgabenstellung mit Lösung in JupyterLab

Darstellung des Beispiels im Buch

Im Kontext des Jupyter Books, das Sie gemeinsam entwickeln, erscheint dieses Beispiel dann wie folgt:

Ein- und Ausklappen der Musterlösung im Jupyter Book
Ein- und Ausklappen der Musterlösung im Jupyter Book

Verstecken der Musterlösung

Um die Funktionalität des Ein- und Ausklappens der Lösung zu aktivieren, ist es notwendig, dass Sie die Codezelle mit der Lösung in JupyterLab mit einem bestimmten Tag versehen:

Eintragen des Tags zum Verstecken der Musterlösung
Eintragen des Tags zum Verstecken der Musterlösung

Wie in der Animation zu sehen, selektieren Sie zunächst die Codezelle mit der Musterlösung. Klicken Sie anschließend auf das Icon für die Einstellungen der Zelle. Fügen Sie dann das Tag hide-input hinzu und bestätigen Sie die Eingabe mit der ENTER-Taste.

Der Effekt des Tags zeigt sich nicht im Jupyter Notebook, sondern erst, wenn das Notebook Teil eines Jupyter Books wird! Erwarten Sie also im Jupyter Notebook kein Ausklappmenü.

Darstellung des Buchs im Web

Das Buch wird mit jedem neuen Beitrag neu als Website gebaut und online gestellt. Die Adresse erhalten Sie in Mattermost.

Ziele

  • Sie erlangen Routine im Umgang mit JupyterLab und beherrschen einige wichtige Tastaturkürzel.
  • Sie formulieren erste Programmieraufgaben in Markdown und Python.
  • Sie entwickeln Musterlösungen zu den Aufgaben.
  • Sie fügen Ihre Aufgaben dem Buchprojekt in GitLab hinzu und stellen einen Merge request.
  • Sie präzisieren Ihre Forschungsideen vor dem Hintergrund eigener Projekte.

Aufträge

Entwickeln Sie Ihre Forschungsidee weiter!

  • Formulieren Sie eine erste Forschungsfrage in Ihrem Pad.
  • Suchen Sie nach geeigneten Fachbüchern und tragen Sie die bibliografischen Informationen in Ihr Pad ein.

  1. Überarbeiten Sie die Aufgabe, die Sie in der Sitzung entwickelt haben, gemäß der Abbildung oben.
  2. Wählen Sie eine aussagekräftige und passende Überschrift für Ihre Aufgabe. Diese wird auch in der Navigation des Buchs angezeigt.
  3. Fügen Sie der Codezelle mit der Musterlösung das Tag hide-input hinzu.
  4. Gleichen Sie den Dateinamen des Notebooks dieser Überschrift an. Schreiben Sie den Dateinamen klein und ohne Sonder- und Leerzeichen.
  5. Laden Sie die .ipynb-Datei im Repository mit der Aufgabensammlung hoch. Verfahren Sie dabei so, wie Sie es auch bei der Abgabe Ihrer Studienleistungen tun. Allerdings gibt es einen erheblichen Unterschied, der auf den zentralen Workflow der Kollaboration in GitLab hinleitet und der hier nur knapp erklärt wird: Sie dürfen in diesem Repository nicht direkt im Branch development arbeiten, der der Standardbranch ist:

    Stattdessen bekommen Sie für Ihren neuen Beitrag, also die hochzuladende Datei, einen eigenen Bereich bzw. einen neuen Branch. Zu sehen ist das beim Anlegen bzw. Hochladen einer neuen Datei (Der Name wird bei Ihnen anders lauten.):

    Gleichzeitig wird Ihnen vorgeschlagen, einen neuen merge request zu starten. Kurz gesagt: Damit “beantragen” Sie, dass Ihr Beitrag mit dem Branch development zusammengeführt wird.
    Wir werden gemeinsam untersuchen, wie die Beiträge dann in diesem Workflow weiterverarbeitet werden.
  6. Entwickeln Sie gern noch weitere Aufgaben für die Sammlung. Machen Sie dies aber am besten mit mehreren, um im Dialog die sprachliche Passung zu optimieren.

Abgabetermin

Der Auftrag ist bis zum Sonntag, 01.05.2022, zu erledigen.

Zurück
Weiter