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.

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?

Allgemein

Punkte: 2

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

Dokumentation

Punkte: 9

  • Vollst√§ndigkeit [1]: Alle Kapitel gem√§ss Vorgaben sind enthalten.
  • Formatierung [1]: Die Formatierung des Dokuments enspricht einem professionellen Standard.
  • Sprache [2]: Die Dokumentation ist in korrektem Deutsch formuliert und Fachw√∂rter werden korrekt verwendet.
  • Visualisierung [3]: Der Code ist mithilfe einem Flowchart visualisiert. (Formatierung, Vollst√§ndigkeit, Logik)
  • Reflexion [2]: Die konfrontierten Herausforderungen und der entsprechende Lerneffekt sind reflektiert.

Code

Punkte: 17

  • 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 [2]: 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]: Schleifen und Funktionen werden genutzt.
  • Komplexit√§t [3]: Die 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)