Skip to content

Latest commit

 

History

History

.teachers

Für Lehrende

Hinweis: Die nachfolgende Dokumentation richtet sich nur an Lehrende. Wenn du Schüler:in bist, schau bitte in die Haupt-Dokumentation

Dieses Sommercamp-Workshop richtet sich an Schüler:innen ab 14 Jahren. Alle Inhalte sind für einen leichten Start der noch programmier-unerfahrenen Schüler:innen vorbereitet.

Für Lehrende, die diesen Workshop durchführen wollen, erläutern wir im Folgenden die Grundstruktur des Code-Repositorys, das Vorgehen, wie du deinen Workshop starten kannst und Tricks, um ad hoc Schüler:innen zu helfen.

Voraussetzungen

Dieser Workshop hat nur einige grundlegende Voraussetzungen:

  • Schüler:innen ab 14 Jahre
  • Computer (Thin-Clients reichen)
  • Web-Browser (empfohlen: Mozilla Firefox)
  • GitHub-Account (kann z.B. vorab von den Workshop-Organisator:innen erstellt werden)

Durch die Nutzung von GitHub Codespaces sind weder viel Rechenleistung, Speicherplatz noch ein Webserver nötig.

Repository-Struktur

Da das Repository darauf ausgelegt ist, dass Schüler:innen es auf GitHub forken, sind alle Dateien im main-Branch des Repositorys enthalten.

Im Sommercamp-Workshop arbeiten wir an vier Dateien, die jeweils eins der vier Teilziele des Workshops abdecken:

  • crawler.py: Skript zum Crawlen und Text Parsen einer beliebigen (kleinen) Webseite.
  • indexer.py: Skript zum erstellen des invertierten Index aus den gecrawlten Dokumenten.
  • searcher.py: Skript für die Suche per Terminal.
  • app.py: Streamlit-App mit Web-Oberfläche für die Suchmaschine.

Für den Start des Workshops sind diese vier Python-Skripte crawler.py, indexer.py, searcher.py und app.py erst einmal leer. Schüler:innen sollen in diesen selbständig den Python-Code schreiben, wie es in der Haupt-Dokumentation (und live im Workshop) für sie erläutert wird.

Workshop-Start

Die Folgenden Schritte sollten die Schüler:innen durchführen, um ihren Arbeitsplatz für die Workshop-Teilnahme vorzubereiten. Der erste Einstiegs-Vortrag kann dann stattfinden, während die Codespaces der Schüler:innen aufgesetzt werden, um die Wartezeit zu überbrücken.

  1. Öffne den Web-Browser (z.B. Mozilla Firefox).
  2. Gehe zu github.com/login.
  3. Logge dich mit Benutzername und Passwort ein.
  4. Gehe zu github.com/webis-de/sommercamp.
  5. Klicke auf Fork, dann bestätige mit Create fork.
  6. Klicke auf Open in GitHub Codespaces, dann auf Create codespace (oder Resume this codespace).
  7. Höre dem Einstiegs-Vortrag zu, während der Codespace aufgesetzt wird.
  8. Folge den weiteren Anweisungen aus der Dokumentation.

Ad hoc Hilfe

Um Lehrenden in Situationen zu helfen, wenn Schüler:innen nicht weiter kommen, sind alle fertigen Skripte jedoch zusätzlich in dem versteckten .teachers-Ordner hinterlegt. So kannst du als Lehrende:r direkt die aktuelle Datei eines Schülers mit der Musterlösung vergleichen, indem du folgendes im Terminal eingibst:

code --diff .teachers/app.py sommercamp/app.py

In der Diff-Ansicht, die sich dann öffnet, kannst du die Unterschiede zwischen der Musterlösung und der aktuellen Implementation der Schülerin oder des Schülers sehen. Per klick auf den Rechtspfeil (→) kannst du auch einzelne Teilabschnitte der Musterlösung direkt übernehmen.

Für die Extras der App stehen im .teachers-Ordner außerdem vorgefertigte Implementationen zur Verfügung:

Auch hier kann die Musterlösung leicht mit der aktuellen Lösung der Schülerin / des Schülers verglichen werden, z.B.:

code --diff .teachers/app_pagination.py sommercamp/app.py

Die Einzige Außname ist beim Ändern des Designs (Theme). Um dafür die Musterlösung zu vergleichen, nutze folgenden Befehl:

code --diff .teachers/config.toml .streamlit/config.toml

Häufige Fehler

In den nächsten Abschnitten findest du Lösungsstrategien zu einigen häufig auftretenden Fehlern.

Java VM doppelt gestartet

Fehler: Die Java VM wird doppelt gestartet.

ValueError: VM is already running, can't set classpath/options; VM started at  File "/usr/lib/python3.11/threading.py", line 1002, in _bootstrap

Dieser Fehler tritt auf, wenn die Streamlit-App in mehreren Browser-Tabs geöffnet ist, und dann der Quellcode der App verändert wurde.

Lösung: Browser-Tab(s) neu laden.

Beitragen

Wir geben uns Mühe, die Inhalte so einfach wie möglich darzustellen, aber natürlich gibt es noch Raum für Verbesserungen. Wenn du selbst Lehrer:in oder Dozent:in bist, kannst du uns helfen, indem du uns entweder Ideen oder Wünsche schreibst oder selbst bei der Entwicklung unterstützt.

Wir bitten dich, bei neuen Beiträgen zu diesem Repository, Bezeichner im Code (Variablennamen, Klassen, etc.) mit englischen Namen zu bennenen, aber erklärende Kommentare in deutsch zu verfassen, damit auch Schüler:innen aus früheren Klassenstufen die Inhalte grob verstehen können.

Ansonsten kannst du zum Entwickeln oder Verbessern genauso im GitHub Codespace arbeiten, wie die Schüler:innen.