1.3.1 Einen gut lesbaren, strukturierten und modularisierten Programmiercode schreiben und dokumentieren
Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können einen gut lesbaren, strukturierten und modularisierten Programmiercode schreiben und dokumentieren.
Lesson 3: Conditions (if, then, else) in Python
Dieses Unterrichtsmaterial führt in die Grundlagen von Verzweigungen (if-elif-else) in Python ein. Es erklärt Syntax, Einrückungen, Vergleichsoperatoren, boolesche Werte sowie logische Operatoren anhand praktischer Code-Beispiele.
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.
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.
Datenkapselung und Sichtbarkeit in Python
Dieses Unterrichtsmaterial führt in das Konzept der Datenkapselung und objektorientierten Sichtbarkeiten (public, protected, private) in Python ein. Anhand praktischer Code-Beispiele mit Klassen wie Sheep und Person lernen die Schülerinnen und Schüler den Einsatz von Gettern, Settern und Namenskonventionen.
Funktionen in Python definieren und anwenden
Dieses Unterrichtsmaterial führt in die Erstellung und den Aufruf von Funktionen in Python ein. Anhand konkreter Beispiele wie dem Satz des Pythagoras und der Lösung quadratischer Gleichungen wird gelehrt, wie Argumente, Keyword-Argumente und Rückgabewerte sinnvoll eingesetzt werden.
Objects-First with Java (BlueJ Edition)
Dieses Lehrbuch vermittelt die objektorientierte Programmierung in Java anhand von praxisnahen Projekten und der Entwicklungsumgebung BlueJ. Es verfolgt einen reinen 'Objects-First'-Ansatz und enthält integrierte Übungen zum direkten Programmieren.
Sortieren durch Aufsteigen / Bubblesort
Das Unterrichtsmaterial führt in das klassische Sortierverfahren Bubblesort ein. Die Lernenden analysieren die Grundidee anhand von Beispielen, beschreiben den Algorithmus, erstellen ein Struktogramm und implementieren den Algorithmus schliesslich selbst.
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.
Ü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.
Programming Concepts in Python with TigerJython
Ein interaktives Online-Lehrbuch zur Vermittlung grundlegender Programmierkonzepte mit Python und der IDE TigerJython. Es bietet zahlreiche Codebeispiele und Übungen, die auf ein tiefes Verständnis von Programmierkonzepten abzielen.
Einführung in Python: Grundlagen, Datentypen und erste Programme
Dieses offizielle Python-Tutorial führt in die Grundlagen der Programmiersprache ein. Es behandelt die Nutzung als Taschenrechner, Operationen mit Zeichenketten (Strings), den Umgang mit Listen sowie erste Programmierschritte inklusive Schleifen.
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.
Prüfung Programming, Automation, Computation
Eine schriftliche Informatikprüfung für Gymnasien, die praxisnahe Aufgaben zu den Themenbereichen Programmierung (Visualisierung mit Google Code Playground), Automatentheorie (KARA und Mustererkennung) sowie Projektmanagement (Marshmallow Challenge) abdeckt.
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.
JavaKara: Lösungen zu Rekursions-Aufgaben
Das Material enthält kommentierte Programmierlösungen in Java für JavaKara, die sich gezielt mit rekursiven Algorithmen und Problemstellungen wie Labyrinthen, Treppensteigen und dem Durchsuchen von Wegen befassen.
Turing Kara - Lernumgebung zu Turingmaschinen und Algorithmen
Diese interaktive Programmierumgebung (Turing Kara) lässt Lernende den Begriff des Algorithmus und Turingmaschinen spielerisch und praxisnah erarbeiten. Anhand verschiedener Aufgaben wie binärer Addition, Palindromprüfung oder Backtracking schreiben und testen sie schrittweise Befehlsfolgen. Das Material vermittelt fundamentale Konzepte der theoretischen Informatik und des algorithmischen Denkens auf anschauliche Art.
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.
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.
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.
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.
Einführung in die Objektorientierte Programmierung mit Python und Turtle
Dieses Unterrichtsmaterial führt in die Grundlagen der objektorientierten Programmierung (OOP) in Python ein. Anhand von Beispielen wie einer Turtle, Schafen und rationalen Zahlen werden Klassen, Objekte, Konstruktoren, Vererbung und Datenkapselung praxisnah vermittelt.
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 die objektorientierte Programmierung mit Python
Dieses Unterrichtsmaterial führt anhand eines einfachen Beispiels (Klasse Sheep) in die Grundlagen der objektorientierten Programmierung mit Python ein. Es behandelt das Erstellen von Klassen, das Instanziieren von Objekten sowie die Definition und Nutzung von Attributen und Methoden.
Einführung in die Objektorientierung mit Python und Turtle
Das Unterrichtsmaterial führt in die grundlegenden Konzepte der objektorientierten Programmierung (Klassen, Objekte, Eigenschaften und Methoden) anhand der Programmiersprache Python und der Turtle-Grafik ein. Es beinhaltet Erklärungen zur Abstraktion sowie praktische Aufgaben zum Erzeugen von Objekten und zum Setzen von Eigenschaften.
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.
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.