python.casapython.casa
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
Home
  • Thema 1 - Einführung Programmiersprache
  • Thema 2 - Variablen und Datentypen
  • Thema 3 - Boolsche Algebra und Zeichenketten
  • Thema 4 - Datum und Zeit
  • Thema 5 - Kontrollstrukturen und Listen
  • Thema 6 - Funktionen und Flowcharts
  • Thema 7 - Objektorientierte Programmierung
  • Thema 8 - Ein- und Ausgabe
  • Thema 9 - Module und Import
  • Thema 10 - Datenbanken
  • Thema 11 - Grafische Benutzeroberfläche
  • Thema 12 - Webapplikation mit Python Flask
  • Thema 13 - Versionskontrolle mit Git
  • Thema 14 - Dokumentation mit Markdown
  • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
GitHub
  • Stundenplan
  • Teil 1

    • Thema 1 - Einführung Programmiersprache
      • Slides Thema 1
      • Übungen Thema 1
    • Thema 2 - Variablen und Datentypen
      • Slides Thema 2
      • Übungen Thema 2
    • Thema 3 - Boolsche Algebra und Zeichenketten
      • Slides Thema 3
      • Übungen Thema 3
    • Thema 4 - Datum und Zeit
      • Slides Thema 4
      • Übungen Thema 4
    • Thema 5 - Kontrollstrukturen und Listen
      • Slides Thema 5
      • Übungen Thema 5
    • Thema 6 - Funktionen und Flowcharts
      • Slides Thema 6
      • Übungen Thema 6
    • Thema 7 - Objektorientierte Programmierung
      • Slides Thema 7
      • Übungen Thema 7
    • Thema 8 - Ein- und Ausgabe
      • Slides Thema 8
      • Übungen Thema 8
  • Teil 2

    • Thema 9 - Module und Import
      • Slides Thema 9
      • Übungen Thema 9
    • Thema 10 - Datenbanken
      • Slides Thema 10
      • Übungen Thema 10
    • Thema 11 - Grafische Benutzeroberfläche
      • Slides Thema 11
      • Übungen Thema 11
    • Thema 12 - Webapplikation mit Python Flask
      • Slides Thema 12
      • Übungen Thema 12
    • Thema 13 - Versionskontrolle mit Git
      • Slides Thema 13
      • Übungen Thema 13
    • Thema 14 - Dokumentation mit Markdown
      • Slides Thema 14
    • Thema 15 - Jupiter-Notebooks, SciPy und Matplotlib
      • Slides Thema 15
      • Übungen Thema 15
  • Prüfung

    • Wissensprüfung 1
    • Wissensprüfung 2
    • Leistungsnachweis
      • Lernziele
      • Durchführung
      • Themenwahl
      • Projektvorschlag
      • Dokumentation
      • Kriterien
        • Allgemein
        • Dokumentation
        • Code
      • Resulat / Abgabe
      • Kommentar zu ChatGPT

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-DatenMittel
Deutscher Wordle-KlonSchwer
Passwortgenerator gemäss xkcd-ComicSchwer
Suche nach bestimmten Begriffen in Log-DateienMittel
Temperaturdaten ploten und Min/Max bestimmen. Daten von https://sarneraa.huetstock.ch 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?

Tips

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

Mit draw.io kann man Flowcharts erstellen und so den Code dokumentieren.

Eine Vorlage für ein .docx kann hier heruntergeladen 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 ChatGPT 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?

Edit this page
Last Updated:
Contributors: Janik von Rotz
Prev
Wissensprüfung 2