1.3.3 Bestehende Programme sinnvoll abändern und erweitern
Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können bestehende Programme sinnvoll abändern und erweitern.
Deklarative und funktionale Programmierung mit Python, Elm, Racket und Prolog
Umfassendes Lehrmaterial zur deklarativen Programmierung mit Schwerpunkt auf funktionaler Programmierung in Python, Elm und Racket sowie logischer Programmierung. Das Material deckt Programmierkonzepte, Datenstrukturen, Algorithmen und Webentwicklung ab.
MultiKara: Programmieren lernen mit Objekten und Robotern
MultiKara ist eine erweiterte Java-Lernumgebung (basierend auf dem bekannten Kara-Robotersystem), die spielerisch die objektorientierte Programmierung vermittelt. Lernende steuern Marienkäfer durch verschiedene Aufgabenwelten und lernen dabei Algorithmen, Kontrollstrukturen und objektorientierte Konzepte anzuwenden.
Tic Tac Toe in Java
Ein umfassendes Unterrichtsmaterial zur objektorientierten Programmierung in Java anhand des Spiels Tic Tac Toe. Es behandelt schrittweise Themen wie AWT-GUIs, Interfaces, Event Handling, Exceptions und File I/O durch praktische Programmierübungen.
Ein Kartentrick – was steckt dahinter? Unterrichtseinheit zur algorithmischen Problemlösung
Diese Unterrichtseinheit für das Gymnasium untersucht einen klassischen Kartentrick aus mathematischer und informatorischer Sicht. Die Lernenden erlernen den Trick, nutzen ein Java-basiertes Simulationsprogramm zum Experimentieren und analysieren die zugrundeliegenden Codierungs- und Problemlösungsprinzipien.
Turtle Invaders: Spiel-Programmierung in Python
Dieses Unterrichtsmaterial führt Schritt für Schritt in die Entwicklung eines Arcade-Spiels im Stil von Space Invaders mit Python und dem Turtle-Modul ein. Dabei werden grundlegende Programmierkonzepte wie Ereignissteuerung, Animationen, das global-Keyword sowie die Unterscheidung zwischen immutablen primitiven Datentypen und mutablen Listen behandelt.
Multi-Modus Roboter mit BBC micro:bit und Maqueen
Dieses Projektmaterial führt Schritt für Schritt durch den Bau eines intelligenten, ferngesteuerten Roboters mit zwei micro:bit-Mikrocontrollern. Die Schülerinnen und Schüler lernen anhand von Challenges, wie man Zustandsmaschinen, Event-Loops, Funkkommunikation und Sensorik in Python kombiniert.
Solange-Schleifen: while
Dieses umfassende Unterrichtsmaterial führt anschaulich in die Verwendung von while-Schleifen in Python ein. Es behandelt Themen wie bedingte Wiederholungen, Endlosschleifen, break-Anweisungen und typische Stolpersteine wie Off-by-one-Fehler anhand von Alltagsbeispielen und Programmierübungen mit Lösungen.
Objektorientierte Programmierung (OOP) Grundprinzipien in Python
Dieses Unterrichtsmaterial führt anhand eines durchgehenden Geometrie-Projekts in Python in die vier Grundprinzipien der objektorientierten Programmierung ein: Abstraktion, Vererbung, Datenkapselung und Polymorphie. Es enthält Definitionen, Analogien, Programmieraufgaben und vollständige Code-Lösungen.
Space Police (Advent of Code)
Eine Programmieraufgabe im Rahmen des Advent of Code, bei der ein Roboter gesteuert und simuliert werden muss, der mittels eines Intcode-Programms Rasterfelder auf einem Raumschiff einfärbt und sich darauf bewegt.
Laufzeitverhalten von Sortieralgorithmen
Das Material führt experimentell in die Laufzeitanalyse verschiedener Sortieralgorithmen (wie Selection Sort, Insertion Sort, Bubble Sort und Quicksort) mithilfe von Python ein. Die Lernenden messen systematisch Rechenzeiten, analysieren Gesetzmäßigkeiten und untersuchen den Einfluss verschiedener Implementierungen.
Umwandlung iterativer Algorithmen in rekursive Algorithmen
Dieses Unterrichtsmaterial behandelt detailliert die Umwandlung von iterativen Algorithmen in rekursive Algorithmen am Beispiel der Potenzfunktion. Es enthält Programmierbeispiele in Python, Analysen von Ablaufprotokollen sowie praktische Programmieraufgaben zur Simulation von Programmausführungen.
Operationen auf natürlichen Zahlen
Dieses Unterrichtsmaterial behandelt die Konstruktion arithmetischer Operationen auf natürlichen Zahlen allein basierend auf der Nachfolger-Operation und rekursiven Reduktionsregeln. Die Lernenden analysieren, erweitern und implementieren diese Funktionen in Python.
Übungen zur Rekursion und Programmentwicklung in Python
Eine Sammlung von Programmieraufgaben und Übungen, bei denen rekursive Algorithmen in Python analysiert, angewendet, schrittweise entwickelt und getestet werden. Die Lernenden nutzen problemreduzierende Ansätze und visualisierende Hilfsmittel wie Aufrufbäume, um rekursive Funktionen für Listenoperationen zu verstehen und zu programmieren.
Verzweigungen für Grafikkompositionen in Python
Dieses Unterrichtsmaterial führt in die Nutzung von if-else und if-elif-else Verzweigungen zur Erstellung von Grafiken und Mustern in Python ein. Lernende wenden Kontrollstrukturen an, experimentieren mit Lambda-Ausdrücken und üben systematisches Testen und Fehlerbeheben in partnerbasierten Aufgaben.
Accumulators in Recursive Function Design (HtDP)
Dieses Lehrmaterial behandelt das Konzept von Akkumulatoren zur Optimierung und Ermöglichung rekursiver Funktionen. Es zeigt anhand von Beispielen wie Distanzberechnungen und Graphentraversierung, wie der Verlust von Kontextwissen vermieden und die Leistung gesteigert werden kann.
Quote, Unquote und Listen in Scheme/Racket
Dieses Lehrmaterial behandelt vertiefte Konzepte der Programmiersprache Racket bzw. Scheme, insbesondere den Umgang mit Quotierung (quote, quasiquote, unquote) und Spleissing. Zudem wird gezeigt, wie strukturierte Listen zur automatisierten Erzeugung von HTML-Webseiten und Tabellen verwendet werden.
Arbitrarily Large Data and Lists in Programming
Dieses Lehrmaterial behandelt die Verarbeitung von Daten beliebiger Größe mithilfe von Listen und selbstbezüglichen Datenstrukturen. Anhand von Beispielen wird das Entwurfsrezept für rekursive Programme (Templates, Basisfälle, natürliche Rekursion) in einer funktionalen Programmiersprache eingeführt.
How to Design Programs: Arithmetic, Functions and Programs
Dieses Lehrmittel führt grundlegend in die Programmierung mit Racket (BSL) ein. Es behandelt elementare Datentypen, Ausdrücke, Funktionsdefinitionen und das Entwerfen von Programmen anhand praktischer Beispiele wie der Berechnung von Kino-Gewinnen.
Lesson 6: While-Schleifen und Kontrollstrukturen in Python
Dieses Unterrichtsmaterial erklärt anhand von Codebeispielen und Erklärungen die Verwendung von While-Schleifen, Schleifenkontrollstrukturen wie break und continue sowie Mehrfachzuweisungen in Python.
Backtracking mit Heuristiken
Dieses Unterrichtsmaterial führt anhand eines alltäglichen Beispiels (Websuchen) in das Konzept des Backtrackings ein und vertieft das Thema mit Algorithmen, Laufzeitbetrachtungen und Anwendungsbeispielen wie Labyrinthen und Springerwegen. Dabei werden auch Heuristiken zur Optimierung der Suche, insbesondere die Warnsdorf-Heuristik, besprochen.
Kara – Programmieren lernen mit der programmierbaren Marienkäfer-Welt
Dieses Materialpaket zum Lernprogramm 'Kara' führt spielerisch in die Grundlagen der Programmierung ein. Schülerinnen und Schüler lernen, den Marienkäfer durch das Ausführen von Befehlssequenzen und das Erstellen eigener Programme (z.B. in Java oder via grafischer Programmierung) über das Spielfeld zu steuern.
Turing-Maschinen
Das Unterrichtsmaterial führt in das Konzept der Turing-Maschine ein, erläutert deren Aufbau sowie Funktionsweise anhand von Beispielen und zeigt Bezüge zur theoretischen Informatik sowie zu Python auf.
Roboter-Programmierung: Aus der Box und durch das Labyrinth
Dieses Unterrichtsmaterial führt Schülerinnen und Schüler schrittweise dazu, reale Probleme in Teilprobleme zu zerlegen und physische Roboter (micro:bit) mithilfe von Programmen und Sensoren durch eine Box und ein Labyrinth zu steuern. Dabei werden Planungsphasen, Block- bzw. Textprogrammierung und Fehleranalysen kombiniert.
Erdbeben weltweit — eine Live-Karte aus echten Daten
In diesem interaktiven Programmierprojekt erstellen Schülerinnen und Schüler eine weltweite Erdbebenkarte mit echtem Datenbezug. Dabei lernen sie, GeoJSON-Daten via API abzufragen, mit Python zu filtern und mithilfe von matplotlib zu visualisieren.
GameGridKara 2.0 – Java lernen mit Kara
Dieses Unterrichtsmaterial führt spielerisch und anschaulich in die Programmierung mit Java ein, indem der Marienkäfer Kara in einer grafischen Mini-Umgebung gesteuert wird. Es enthält strukturierte Handouts, Programmierübungen sowie vollständige Lösungen für mehrere Lektionen.
Weltbank-Indikatoren Projekt: Daten mit SQL in Python
In diesem umfassenden Programmierprojekt verbinden die Lernenden eine SQLite-Weltbankdatenbank mit Python, führen komplexe SQL-Abfragen durch und entwickeln eine eigene interaktive Konsolenanwendung oder Präsentation. Das Material enthält anschaulichen Beispielcode, wertvolle Projektaufgaben sowie klare Bewertungskriterien inklusive Code-Review.
Interaktive Web-Tools mit JavaScript erstellen
Dieses Material zeigt anschaulich, wie Formulardaten mit JavaScript ausgelesen, validiert und dynamisch verarbeitet werden. Anhand praktischer Alltags-Anwendungen wie einem BMI- und Trinkgeldrrechner wird das Programmieren interaktiver Webseiten geübt.
Dijkstra-Algorithmus und Dictionaries in Python
Eine vertiefende Programmier-Challenge, bei der Schülerinnen und Schüler den Dijkstra-Algorithmus und die Verwendung von Python-Dictionaries zur effizienten Repräsentation von Graphen schrittweise implementieren.
Entscheidungsketten mit if ... elif ... else in Python
Dieses Unterrichtsmaterial erklärt anschaulich den Unterschied zwischen unabhängigen if-Bedingungen und verknüpften if-elif-else-Ketten in Python. Anhand von Beispielen wie einer Bug-Hunt-Aufgabe und Notenberechnungen lernen die Schülerinnen und Schüler, Bedingungen strukturiert und in der richtigen Reihenfolge zu formulieren.
Das Geburtstagsparadoxon: Simulation und Rekursion in Python
Dieses Material führt anhand des berühmten Geburtstagsparadoxons in die Programmierung mit Python ein. Lernende schätzen intuitiv, berechnen die Wahrscheinlichkeit mittels Schleifen und erweitern das Problem anschliessend durch einen rekursiven Ansatz.
Entscheidungen treffen und boolesche Logik in Python
Dieses umfassende Unterrichtsmaterial führt in Python-Entscheidungsstrukturen mit if, else und logischen Operatoren wie and, or und not ein. Es erklärt anschaulich den Unterschied zwischen Zuweisung und Vergleich, behandelt den Modulo-Operator sowie break und bietet zahlreiche praxisnahe Aufgaben mit vollständigen Musterlösungen.
Präzisere PPG-Messung mit dem USB-Mikroskop
Dieses Unterrichtsmaterial zeigt, wie man mithilfe eines USB-Mikroskops und Python PPG-Signale (Photoplethysmographie) zur Herzfrequenzmessung erfasst. Die Schülerinnen und Schüler vergleichen verschiedene Körperstellen, analysieren die Signale mit Filtern und FFT und vertiefen ihr Wissen durch praktische Experimente.
PPG-Signal aufnehmen und visualisieren mit Smartphone und Python
In diesem praxisorientierten Projekt nehmen Schülerinnen und Schüler ein eigenes Photoplethysmogramm (PPG) mit dem Smartphone auf, extrahieren die Farbwerte mithilfe eines Python-Skripts und visualisieren sowie analysieren die Herzfrequenz in Microsoft Excel.
Methoden, Übergabe- und Rückgabewerte in Java mit Greenfoot
Das Unterrichtsmaterial führt schrittweise und ansprechend in das Konzept von Methoden, Übergabewerten und Rückgabewerten in Java ein, indem es die visuelle Entwicklungsumgebung Greenfoot und die Turtle-Figur Joe nutzt. Die Lernenden strukturieren Code um, schreiben flexible Polygone-Methoden und nutzen die Klassendokumentation (API), um interaktive Zeichnungen zu erstellen.
Prüfung zu Python-Grundlagen und Objektorientierter Programmierung
Dieses Dokument beschreibt eine zweiteilige Prüfung zu den Grundlagen von Python, einschliesslich Kontrollstrukturen, Datentypen und Funktionen, sowie zu grundlegenden Konzepten der objektorientierten Programmierung (OOP).
Eigene Klasse für rationale Zahlen in Python programmieren
Die Lernenden schreiben eine eigene Python-Klasse für rationale Zahlen (Brüche), um das Konzept der objektorientierten Programmierung und das Erstellen von Methoden und Konstruktoren zu üben. Dabei implementieren sie mathematische Operationen und optional auch Operatorüberladungen.
Objektorientierte Programmierung mit Python: Konstruktoren und Methoden
Das Material führt anhand des Beispiels einer Schaf-Klasse in die objektorientierte Programmierung in Python ein. Es behandelt insbesondere den Konstruktor (__init__) und das Setzen von Objekteigenschaften sowie Methoden.
Einführung in Python Turtle-Grafiken
Dieses Unterrichtsmaterial führt Schülerinnen und Schüler in die Verwendung des Turtle-Moduls in Python ein. Anhand von Beispielen und praktischen Aufgaben lernen sie, benannte Turtles zu erzeugen, deren Eigenschaften anzupassen und einfache Animationen oder Zeichnungen zu programmieren.
Auffrischung und Erweiterung der Python-Kenntnisse
Dieses Kapitel dient der Repetition und Vertiefung grundlegender Python-Kenntnisse sowie der Einführung in die objektorientierte Programmierung. Anhand praktischer Aufgaben werden Daten aus Textdateien eingelesen, analysiert, aufbereitet und dargestellt.
Höhendaten analysieren und visualisieren mit Python
Dieses Unterrichtsmaterial zeigt schrittweise, wie Höhendaten von Swisstopo mit Python eingelesen, aufbereitet, analysiert und grafisch als Bilder oder Reliefs dargestellt werden. Die Lernenden frischen ihre Programmierfähigkeiten auf und lernen den Umgang mit Dateizugriffen sowie Visualisierungstools.
Bilderzeugung und -bearbeitung mit Python und PIL für Höhendaten
Das Unterrichtsmaterial führt in die programmgesteuerte Erstellung und Manipulation von Bildern mit Python und der Pillow-Bibliothek ein. Anhand des Kontexts von Höhendaten werden Algorithmen zur Erstellung von Heatmaps, Schattierungen und einer Hilfsfunktion zur Wertebegrenzung (Clamp) erarbeitet.
3D-Datenvisualisierung mit Python und Matplotlib
Dieses Unterrichtsmaterial führt in die Visualisierung von Höhendaten in 3D mit Python und der Bibliothek Matplotlib ein. Die Lernenden verwenden Code-Beispiele, untersuchen Scatter- und Trisurf-Plots und konvertieren Datenstrukturen für die Darstellung.
Dateiverarbeitung und Einlesen von Daten in Python
Dieses Unterrichtsmaterial führt in das Öffnen, Lesen und Schliessen von Textdateien in Python ein. Anhand von Beispielen und kleinen Aufgaben lernen die Lernenden den Umgang mit dem with-Kontext, Fehlerbehandlung bei externen Dateien sowie das Trennen von Zeichenketten und Konvertieren in Zahlen.
Repetitionskurs Python: Grundlagen
Dieses Unterrichtsmaterial bietet eine kompakte Repetition der Python-Grundlagen. Es behandelt elementare Konzepte wie Zahlen, Operatoren, Funktionen, Kontrollstrukturen (While- und For-Schleifen, If-Else-Verzweigungen) sowie Listen anhand kurzer Erklärungen und praktischer Aufgaben.
Einführung in die For-Schleife in Python
Dieses Unterrichtsmaterial erklärt die Syntax und Funktionsweise von For-Schleifen in Python anhand von Beispielen wie Summenbildung, Listenverständnissen und Textdiagrammen. Es enthält zudem praktische Programmieraufgaben inklusive Musterlösungen und eine Zusatzaufgabe.
Listen in Python
Dieses Unterrichtsmaterial führt in die Verwendung von Listen in Python ein, inklusive Syntax, Zugriff, Methoden zum Hinzufügen und Entfernen sowie Sortierung. Anhand praktischer Code-Beispiele und einer Programmieraufgabe zur Median-Berechnung wird das Gelernte angewendet.
Verzweigungen und Kontrollstrukturen in Python
Dieses Unterrichtsmaterial führt in die If-Else-Verzweigungen und die Verwendung von elif-Blöcken in der Programmiersprache Python ein. Anhand einer praktischen Programmieraufgabe zum Beschreiben von Zahlen wird das Erstellen und Ergänzen von Funktionen sowie Kontrollstrukturen geübt.
While-Schleifen in Python
Dieses Unterrichtsmaterial führt in die Verwendung von While-Schleifen in Python ein. Anhand von anschaulichen Beispielen wie Zählvariablen, Zufallsexperimenten mit Würfeln und einer Monte-Carlo-Simulation zur Bestimmung von Pi wird das Konzept praktisch angewendet und vertieft.
Reguläre Ausdrücke in Python
Dieses Unterrichtsmaterial führt in das Konzept der regulären Ausdrücke (RegEx) ein und zeigt deren praktische Anwendung und Syntax anhand von Beispielen und Programmieraufgaben in Python.