1.1.1 Grundlegende Programmierkonzepte (z.B. Kontrollstrukturen, Variablen, Funktionen) kompetent anwenden
Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können grundlegende Programmierkonzepte (z.B. Kontrollstrukturen, Variablen, Funktionen) kompetent anwenden.
Graphentheorie und Algorithmen: Tiefensuche, Breitensuche und Dijkstra
Das Lehrmaterial behandelt grundlegende Konzepte der Graphentheorie wie Adjazenzlisten und Graphendarstellungen. Es führt praxisnah durch wichtige Algorithmen wie Tiefensuche (DFS), Breitensuche (BFS) und Dijkstras Algorithmus zur Bestimmung kürzester Wege.
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.
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.
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.
Advent of Code: Monster Messages (Formale Grammatiken und Parsing)
In dieser Programmieraufgabe sollen Nachrichten anhand einer kontextfreien Grammatik validiert werden. Das Material eignet sich hervorragend, um fortgeschrittene Programmierkonzepte sowie theoretische Grundlagen wie formale Sprachen und Grammatiken praktisch anzuwenden.
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.
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.
Der Turm von Hanoi: Strategien und Implementierung
Dieses Unterrichtsmaterial führt Lernende durch die Analyse und algorithmische Lösung des Klassikers 'Turm von Hanoi'. Die Schülerinnen und Schüler erarbeiten rekursive und generalisierte Strategien für mehrere Scheiben und implementieren diese in Code.
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.
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.
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.
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.
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.
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.
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.
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.
Endliche Automaten und Zustände in Python programmieren
Dieses Unterrichtsmaterial führt in die praktische Programmierung von endlichen Automaten in Python ein. Anhand von Beispielen wie einer Lichtschaltung, einem Getränkeautomaten und einem E-Mail-Checker (Akzeptor) lernen die Lernenden den Einsatz von Enums, Variablen und Kontrollstrukturen zur Zustandsverwaltung.
Einführung in Kara den Marienkäfer
Dieses Unterrichtsmaterial führt in die Programmierumgebung von Kara dem Marienkäfer ein, welcher als endlicher Automat grafisch programmiert werden kann. Es enthält Installationshinweise, eine Kurzanleitung zur Bedienung und verweist auf integrierte Programmieraufgaben.
The Stars Align (Advent of Code)
Eine Programmieraufgabe zur Simulation der Bewegung von Punkten mit bekannten Positionen und Geschwindigkeiten über die Zeit, bis sie ein lesbares Wort bilden. Die Schülerinnen und Schüler müssen einen Algorithmus implementieren, um die Positionen iterativ zu berechnen und den Zeitpunkt der minimalen Ausdehnung zu finden.
Advent of Code: Subterranean Sustainability (Zellautomat)
Eine Programmieraufgabe im Stil von Advent of Code, bei der die zeitliche Entwicklung eines eindimensionalen zellulären Automaten über mehrere Generationen hinweg simuliert werden muss.
Parsing von Firefox user.js mit Raku Grammars
Das Material zeigt Schritt für Schritt, wie man mit der Programmiersprache Raku und sogenannten Grammars eine Konfigurationsdatei (user.js von Firefox) parsen kann. Dabei werden reguläre Muster, Regeln und das Debugging von Grammars praktisch erläutert.
Course of Raku: Reactive Programming
Dieses Unterrichtsmaterial behandelt reaktive Programmierung in Raku anhand von react- und whenever-Blöcken. Es enthält erklärende Abschnitte, Quizze und Programmierübungen zur parallelen und ereignisbasierten Verarbeitung von Datenströmen.
Course of Raku: Concurrent Programming with Promises
Dieses Unterrichtsmaterial bietet eine Einführung in die nebenläufige Programmierung (Concurrency) mittels Promises in der Programmiersprache Raku. Es behandelt das Starten, Awaiten und Kombinieren von Promises sowie zugehörige Übungen und Quizzes.
Course of Raku: Lazy and infinite sequences
Dieses Unterrichtsmaterial führt in das Konzept von verzögerten und unendlichen Sequenzen in der Programmiersprache Raku ein. Es erklärt die Verwendung des Sequenzoperators anhand praktischer Beispiele und wird durch Übungen und Quizzes ergänzt.
Course of Raku: Reduction
Dieses Lehrmaterial behandelt das Konzept der Reduktion in der Programmiersprache Raku, bei dem eine Liste von Werten mittels eines Operators zu einem einzigen Wert zusammengefasst wird. Es enthält theoretische Erklärungen, Quizfragen sowie praktische Programmierübungen.
Course of Raku: Statement Prefixes and Control Flow
Dieses Unterrichtsmaterial bietet eine Einführung in fortgeschrittene Kontrollstrukturen und sogenannte Statement-Präfixe in der Programmiersprache Raku. Es behandelt Ausdrücke wie do, eager, lazy, sink und quietly und enthält begleitende Übungen sowie Quizzes.
Missverständnisse beim erweiterten For-Loop in Java
Das Material erklärt anhand von Codebeispielen in Java, wie der erweiterte for-Schleifen-Mechanismus (for-each) funktioniert und warum Zuweisungen an die Schleifenvariable keine Auswirkungen auf das zugrundeliegende Array haben. Zudem wird das Konzept durch die Entwurzelung (Desugaring) durch den Compiler verständlich gemacht.
Recursive Call Sites and Return Statements in Java
Dieses Unterrichtsmaterial beleuchtet einen häufigen Stolperstein beim Programmieren von rekursiven Methoden mit Rückgabewert in Java. Es zeigt anhand von Codebeispielen auf, warum auch bei Endrekursionen (tail recursion) zwingend ein Return-Statement erforderlich ist und korrigiert typische Missverständnisse.
Implementierung von Schlangen in Python
Dieses Material erklärt die objektorientierte Implementierung des abstrakten Datentyps Schlange (Queue) in Python anhand einer Klasse. Anhand eines Python-Protokolls wird die Nutzung der Schlangenoperationen demonstriert und mit einer praktischen Aufgabe zum Testen ergänzt.
Implementierung einer Stapel-Klasse
Dieses Unterrichtsmaterial zeigt anhand einer Python-Aufgabe, wie der abstrakte Datentyp Stapel (Stack) als objektorientierte Klasse implementiert wird. Die Lernenden vervollständigen die Methoden inklusive Dokumentation und nutzen Doctests zur Überprüfung.
Übungen zu rekursiven Algorithmen mit dem RecursionTutor
Dieses Unterrichtsmaterial enthält praktische Programmier- und Analyseaufgaben zur Rekursion anhand konkreter Anwendungsbeispiele wie Zinseszins, Medikamentenabbau und geometrischen Wachstumsprozessen. Lernende nutzen einen interaktiven Tutor zur Visualisierung von Aufrufbäumen, um rekursive Algorithmen zu entwickeln, zu testen und zu verstehen.
Natürliche Zahlen als rekursive Datenstruktur
Das Unterrichtsmaterial erklärt anhand des Beispiels der Summenbildung, wie natürliche Zahlen als rekursive Datenstruktur aufgefasst und verarbeitet werden können. Es zeigt die Entwicklung und Ausführung rekursiver Algorithmen sowie deren Umsetzung in Python.
Liste als rekursive Datenstruktur
Dieses Unterrichtsmaterial erklärt die rekursive Definition von Listen und zeigt anhand eines konkreten Beispiels, wie rekursive Algorithmen zur Verarbeitung von Listen entwickelt, in Python implementiert und getestet werden.
Einstieg in geschachtelte Listen anhand einer Hochzeitsgästeliste
Dieses Unterrichtsmaterial führt anhand eines praktischen Beispiels zur Verwaltung einer Gästeliste in Python in die Verarbeitung von Listen und insbesondere geschachtelten Listen ein. Die Lernenden vergleichen iterative und rekursive Ansätze zur Ausgabe von Datenstrukturen und analysieren den dazugehörigen Quelltext.
Rekursive Algorithmen für selbstähnliche Figuren und Fraktale in Python
Das Unterrichtsmaterial enthält praktische Programmierübungen zu rekursiven Algorithmen und Selbstähnlichkeit. Die Lernenden sollen geometrische Figuren wie das Sierpinski-Dreieck oder den Pythagoras-Baum in Teilprobleme zerlegen, entsprechende Algorithmen entwickeln und diese in Python implementieren.