Leistungsnachweis

Ziel: Die Studierenden definieren ein Problem oder Projekt und lösen dieses mithilfe eines selbst geschriebenen Programms.

Aufwand: 8 Stunden
Anteil Gesamtnote: 50%


Lernziele

Ich kann ...

  • eine Problem oder Herausforderung formulieren.
  • zur Programmierung einen Lösungsvorschlag entwickeln.
  • den Lösungsvorschlag implementieren.
  • die Lösung dokumentieren und den Code sachgemäss kommentieren.

Durchführung

Der Prozess für den Leistungsnachweis sieht wie folgt aus:

  1. Studierende suchen sich eine Problemstellung oder Thema, dass Sie mit einem Python-Programm lösen möchten.
  2. Die Studierenden formulieren dazu einen Projektvorschlag und laden diesen auf Moodle hoch.
  3. Der Dozierende gibt ein Feedback und teilt mir, ob der Projektvorschlag den Erwartungen gerecht wird.
  4. Die Studierenden haben Zeit um den Leistungsnachweis zu erarbeiten und eine Dokumentation zu erstellen. Sie führen ein Arbeitsprotokoll, welcher als Arbeitsnachweis dient.
  5. Der Dozierende gibt Inputs und kann bei Problemen kontaktiert werden.
  6. Die Studierenden laden das Resultat auf Moodle hoch.
  7. Der Dozierende erstellt eine Bewertung anhand der Kriterien.

Themenwahl

In der Themenwahl sind die Studierenden frei. Das ausgewählte Thema soll für den Studierenden eine Herausforderung sein und den individuellen Fähigkeiten gerecht werden.

Hier einige Ideen für Projekte:

TitelSchwierigkeitsgrad
Covid-Daten mit Python verarbeiten und als HTML-Bericht präsentierenMittel
Datei auf Dropbox speichernEinfach
Daten aus Postgres Datenbank lesen und schreibenEinfach
Detektion von Herzfrequenz anhand EKG-Datenopen in new windowMittel
Deutscher Wordleopen in new window-KlonSchwer
Passwortgenerator gemäss xkcd-Comicopen in new windowSchwer
Suche nach bestimmten Begriffen in Log-Dateienopen in new windowMittel
Temperaturdaten ploten und Min/Max bestimmen. Daten von https://sarneraa.huetstock.chopen in new window können auf Anfrage bereitgestellt werdenEinfach
Textbasiertes Hangman programmierenMittel
Tweet von Twitter-Account anzeigen lassenEinfach
Wetter-Informationen abrufen und als HTML-Dokument ausgebenEinfach
Wort mit LED und Raspberry Pi als Morsecode ausgebenEinfach
Textadventure auf der KommandozeileMittel
Quiz mit Daten SQLite-DatenbankMittel
Währungsrechner mit grafischer OberflächeMittel
TicTacToe auf KommandozeileEinfach

Projektvorschlag

Der Projektvorschlag wird auf Moodle mitgeteilt und besteht im wesentlichen aus einem Titel, Fragestellung und dem geplanten Vorgehen (max. 200 Wörter / 1500 Zeichen).

Dazu ein Beispiel:

Titel:
TicTacToe-Spiel mithilfe von Python programmieren

Fragestellung:
Ist es möglich, nur mit den im Unterricht «Einführung ins Programmieren» kennengelernten Python-Befehlen ein funktionstüchtiges TicTacToe-Spiel zu programmieren?

Geplantes Vorgehen:
Als erstes wird mit einer Listen-Funktion ein Spielfeld erstellt, bei dem die Kästchen nummeriert
sind. Die beiden Spieler können anhand der Nummerierung später auf die Kästchen zugreifen, um die
Position ihres Spielzuges einzugeben.
Damit gespielt werden kann, muss die gewünschte Kästchen-Nummer des Spielers mit einer
Nummer der Kästchen übereinstimmen. Ansonsten wird eine Fehlermeldung ausgegeben. Dies wird
mit einem if/while-Befehl programmiert. Zusätzlich soll der Spieler die Möglichkeit haben das Spiel
frühzeitig zu unterbrechen und die beiden Spieler, die durch Variablen unterschieden werden, sollen
nacheinander aufgefordert werden ihren Spielzug zu tätigen. Dies wird ebenfalls mit einem if/while-
Befehl gemacht.
Das Spiel soll beendet werden, wenn eine Spieler-Variable entweder senkrecht, waagerecht oder
diagonal dreimal nebeneinander vorkommt. Dazu muss eine Schleife programmiert werden, die die
Liste, die als Spielfeld dient, nach jedem Spielzug überprüft.
Falls ein Sieger feststeht, soll das Programm dem Sieger gratulieren.

Dokumentation

Kapitelüberschriften der Dokumentation:

  • Einleitung: Um was geht es in diesem Dokument?
  • Problemstellung: Beschreibung des Problems.
  • Vorgehen: Vorgehen um das Problem zu lösen. Visualisierung mittels Flowchart.
  • Protokoll: Wie wurde die Lösung effektiv implementiert? Resultat ist ein Arbeitsprotkoll.
  • Rückblick: Gab es Problem bei der Umsetzung? Was lief gut und was nicht?
  • Technische Anleitung: Wie kann man das Program ausführen? Welche Vorbereitungen müssen getroffen werden?

TIP

Auf https://carbon.now.sh/open in new window kann man seinen Code einfügen und als Bild darstellen lassen.

Mit draw.ioopen in new window kann man Flowcharts erstellen und so den Code dokumentieren.

Eine Vorlage für ein .docx kann hier heruntergeladenopen in new window werden und eine Vorlage im Markdown-Format gibt es hier.

Kriterien

Punkte in eckigen Klammern.

Allgemein

Punkte: 2

  • Projektvorschlag [1]: Der Inhalt des Leistungsnachweis entspricht dem Projektvorschlag.
  • Deadline [1]: Die Abgabe des Leistungsnachweis erfolgte rechtzeitig.

Dokumentation

Punkte: 10

  • Vollständigkeit [2]: Alle Kapitel gemäss Vorgaben sind enthalten. Die Formatierung des Dokuments entspricht einem professionellen Standard.
  • Sprache [2]: Die Dokumentation ist in korrektem Deutsch formuliert und Fachwörter werden korrekt verwendet.
  • Visualisierung [2]: Der Code ist mithilfe einem Flowchart visualisiert. (Formatierung, Vollständigkeit, Logik)
  • Protokoll [2]: Die Arbeit am Leistungsnachweis ist protokolliert und die Arbeitsvorgänge sind nachvollziehbar beschrieben.
  • Reflexion [2]: Die konfrontierten Herausforderungen und der entsprechende Lerneffekt sind reflektiert.

Code

Punkte: 18

  • Kommentare [2]: Die Code-Anweisungen und Blöcke sind sinnvoll und vollständig kommentiert.
  • Struktur [6]:
    • Der Code ist sinnvoll strukturiert (Module und Funktionen).
    • Die Variablen, Dateien und Ordner sind gemäss ihrer Funktion benannt.
    • Die Formatierung des Codes unterstützt die Lesbarkeit.
  • Authentizität [3]: Der Code ist selber verfasst. Code-Teile von Dritten werden als solche deklariert.
  • Ausführbar [2]: Der Code kann gemäss "Technische Anleitung" ausgeführt werden.
  • Optimiert [2]: Logik des Code wurde Schleifen und Funktionen optimiert.
  • Komplexität [3]: Die gewählte Problemstellung entspricht HF-Niveau.

Resulat / Abgabe

Die Dokumentation wird als .pdf Datei und der Code als .zip Datei in das entsprechende Abgabefenster auf Moodle hochgeladen:

  • Code.zip: Python-Programm (gezippter Ordner mit Pyton-Dateien)
  • Dokumentation.{pdf,epub,docx}: Dokumentation zum Programm (4-8 Seiten, ohne Cover)

Kommentar zu ChatGPT

Die Aufgabenstellung wie Sie hier beschreiben wird, könnte mithilfe von ChatGPTopen in new window gelöst werden. Das kann ChatGPT so gut, dass man nicht mit Gewissenheit sagen kann, ob die Aufgabe vom einem Studierenden oder ChatGPT gelöst wurde.
Es spricht grundsätzlich nichts dagegen Aufgaben mit ChatGPT zu lösen. Es wirft aber die Frage auf, was der Wert des Leistungsnachweises ist. Das Ziel des Leistungsnachweises sollte nicht sein ein gutes Ergebnis zu erzielen, sondern zu beweisen, dass man die fachliche Kompetenz, ein Problem mithilfe der Programmierung zu lösen, erlangt hat.
Der Umgang mit ChatGPT führt direkt zu Frage: Möchte ich lernen (die Kompetenz haben) wie man mithilfe der Programmierung Probleme löst?