====== LU04c - Arbeiten mit GitHub Classroom ======
[[https://youtu.be/f85qDdNDtCw|Video zum Arbeiten mit GitHub, Classroom und PyCharm]]
===== Überblick =====
Für die Programmieraufgaben im Modul 319 verwenden wir GitHub Classroom und PyCharm (oder eine ähnliche Entwicklungsumgebung).
Dadurch erlernen Sie die wichtigsten Arbeitsschritt mit git und brauchen Ihre Lösungen nicht separat in Moodle hochzuladen.
{{:modul:m319:learningunits:lu04:lu04_ablauf_classroom.png?600|}}
===== Voraussetzung =====
Bevor Sie mit GitHub Classroom arbeiten können, müssen Sie ...
* ... ein Konto bei GitHub erstellt haben.
===== Vorgehen =====
=== 1. Aufgabe akzeptieren ===
Im Moodle-Kurs finden Sie den Link zur Aufgabe im Classroom.
{{:modul:m319:learningunits:lu04:screenshot_2024-09-10_at_15.56.55.png?800|}}
=== Bei der ersten Aufgabe in einem neuen Modul:===
Wählen Sie ihren Namen aus der Liste aus:
{{:modul:m319:learningunits:lu04:screenshot_2024-09-10_at_16.04.04.png?400|}}
Öffnen Sie diesen Link und akzeptieren Sie das //Assignment//.
{{:modul:m319:learningunits:lu04:screenshot_2024-09-10_at_16.09.19.png?600|}}
Warten Sie ein paar Sekunden und laden Sie die Webseite neu.
Sie sehen die Adresse (URL) Ihres persönlichen Repositories.
Kopieren Sie diesen Adresse.
{{:modul:m319:learningunits:lu04:screenshot_2024-09-10_at_16.11.09.png?600|}}
=== 2. Repository klonen ===
Öffnen Sie nun PyCharm und klonen Sie mit dem kopierten Link das Repository als neues Projekt.
{{:modul:m319:learningunits:lu04:lu04_classroom03.png?800|}}
**oder**
{{:modul:m319:learningunits:lu04:lu04_classroom04.png?200|}}
Tragen Sie die kopierte URL ein.
Passen Sie bei Bedarf den Ordnerpfad an, in dem das Projekt erstellt wird.
{{:modul:m319:learningunits:lu04:lu04_classroom05.png?600|}}
Anschliessend müssen Sie evtl. bestätigen, dass Sie diesem Projekt trauen.
{{:modul:m319:learningunits:lu04:lu04_classroom06.png?400|}}
=== 3. Virtual Environment einrichten ===
Das Virtual Environment von Python enthält alle externen Pakete, die unser Projekt benötigt.
Pycharm kann dieses automatisch für uns einrichten
{{:modul:m319:learningunits:lu04:lu04_classroom11.png?600|}}
Bestätigen Sie die Einrichtung des Virtual Environments mit [OK]
=== 4. Aufgabe lösen ===
Sie haben nun eine lokale Kopie des Projekts auf Ihrem Computer.
Das Projekt enthält einige Dateien und Ordner, von denen aktuell nur zwei für Sie von Bedeutung sind:
* main.py: Das Python-Skript mit der Aufgabenstellung.
* main_test.py: Ein Python-Skript mit dem Sie Ihre Lösung prüfen können.
Suchen Sie in der Datei ''main.py'' die Zeile mit dem Kommentar ''# TODO ...''.
Ändern Sie die Zeile gemäss den Anweisungen im Kommentar.
Löschen Sie danach den Kommentar.
=== 5. Lösung testen ===
Das automatisierte Testen Ihrer Lösung hat zunächst nichts mit git oder GitHub Classroom zu tun.
Es ermöglicht Ihnen, ein direktes Feedback zu Ihrer Lösung zu erhalten.
Öffnen Sie die Datei ''main_test.py'' und führen Sie die Funktion ''test()'' aus.
Falls Ihre Lösung korrekt ist, sehen Sie folgendes im Fenster "run":
============================= test session starts =============================
collecting ... collected 1 item
main_test.py::test PASSED [100%]
============================== 1 passed in 0.01s ==============================
Falls noch ein Fehler in Ihrer Lösung ist, sieht die Ausgabe in etwa so aus:
============================= test session starts =============================
collecting ... collected 1 item
main_test.py::test FAILED [100%]
main_test.py:2 (test)
'Total: 47.25\n' != 'Total: 78.75\n'
Expected :'Total: 78.75\n'
Actual :'Total: 47.25\n'
=== 6. Commit ===
Nachdem Sie die Aufgabe gelöst haben, führen Sie einen Commit durch.
Damit wird der aktuelle Stand Ihrer Dateien festgeschrieben.
1. Wählen Sie im Menu **git** den Punkt **commit** aus. Es öffnet sich eine neue Ansicht:
{{:modul:m319:learningunits:lu04:lu04_classroom07.png?400|}}
2. Geben Sie in der **commit message** an, was Sie geändert haben.
3. Klicken Sie auf [Commit]. Sie sollten nun eine Bestätigung erhalten, dass der Commit erfolgreich war.
Falls Sie den Kommentar mit ''# TODO ...'' nicht entfernt haben, erhalten Sie eine Warnung.
Sie können den Kommentar entfernen und den Commit erneut durchführen.
Alternativ können Sie auch auf [Commit anyways] klicken.
=== 7. Push ===
Um die gelöste Aufgabe abzugeben, führen Sie einen **Push** Ihres Repositories durch.
Dabei werden die Änderungen aus Ihrem lokalen Repository in GitHub Classroom hochgeladen.
1. Wählen Sie im Menu **git** den Punkt **push ...** aus. Es öffnet sich ein neues Fenster:
{{:modul:m319:learningunits:lu04:lu04_classroom08.png?400|}}
Dieses Fenster zeigt Ihnen, welcher Branch (z.B. master) an welches entfernte Repository (z.B. origin) gesendet werden.
Das Arbeiten mit verschiedenen Branches werden Sie später erlernen.
Für den Moment können Sie diese Einstellungen einfach übernehmen.
2. Klicken Sie auf [Push] und Sie erhalten eine Bestätigung, dass der Push erfolgreich war.
Manchmal erhalten Sie statt der Bestätigung eine Meldung, dass Sie sich zunächst bei GitHub autorisieren müssen.
Wählen Sie in diesem Fall [Login via GitHub ...]. Dadurch öffnet sich eine neue Seite in ihrem Webbrowser.
=== 8. Abgabe überprüfen ===
Sie können Ihre Abgabe prüfen, indem Sie ihr Repository in einem Webbrowser anschauen.
Öffnen Sie dazu den Link, mit dem Sie bei **Projekt klonen** ihr lokales Projekt erstellt haben.
{{:modul:m319:learningunits:lu04:lu04_classroom10.png?400|}}
Ein kleines Symbol zeigt Ihnen an, ob Ihre Lösung korrekt ist:
* Gelber Kreis: Die Überprüfung läuft noch. Warten Sie 1-2 Minuten und laden Sie die Seite neu.
* Rotes Kreuz: Einer oder mehrere Tests sind nicht erfolgreich verlaufen. Klicken Sie auf das rote Kreuz für genauere Angaben.
* Grüner Haken: Alle Tests waren erfolgreich.
----
{{tag>m319-E1F}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter, Kevin Maurizi