1.1 Programmierkonzepte – Unterrichtsmaterial
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.
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.
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).
Objektorientierte Programmierung: Vererbung und Polymorphie in Python
Dieses Unterrichtsmaterial führt in die Konzepte der objektorientierten Programmierung (OOP) wie Vererbung, Überschreiben von Methoden und Polymorphie an konkreten Beispielen in Python ein. Es enthält kurze Erklärungen, Code-Beispiele und eine praktische Programmieraufgabe inklusive Lösung.
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.
Implementierung des Amb-Operators in verschiedenen Programmiersprachen
Das Material präsentiert Code-Beispiele und Erklärungen zur Implementierung des nicht-deterministischen Amb-Operators (ambiguous) in verschiedenen Programmiersprachen wie C#, C++, Ada und Pseudocode. Anhand eines Wortketten-Rätsels wird demonstriert, wie Such- und Backtracking-Probleme elegant gelöst werden können.
15 Puzzle Solver
Dieses Material präsentiert Implementierungen in ARM-Assembler und einer weiteren Programmiersprache zur automatischen Lösung des klassischen 15-Puzzles mittels Suchalgorithmen. Es demonstriert fortgeschrittene Programmierkonzepte und Algorithmik anhand eines konkreten Problembeispiels.
Advent of Code: Memory Maneuver (Baumstrukturen und Rekursion)
Eine Programmieraufgabe im Rahmen von Advent of Code, bei der ein hierarchischer Baum aus Zahlen eingelesen, repräsentiert und rekursiv ausgewertet werden muss. Das Material eignet sich hervorragend, um fortgeschrittene Programmierkonzepte wie rekursive Datenstrukturen und Baum-Traversierung praktisch anzuwenden.
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: Rekursion
Dieses Unterrichtsmaterial aus einem Raku-Programmierkurs führt in das Konzept der Rekursion als Teil der funktionalen Programmierung ein. Es enthält Erklärungen, Quizzes sowie Programmierübungen zur Funktionsweise und Anwendung rekursiver Unterprogramme.
Course of Raku: Inheritance
Ein kompakter und verständlicher Lehrmittelabschnitt zur objektorientierten Programmierung mit Fokus auf Vererbung in der Programmiersprache Raku, inklusive Praxisbeispielen und Übungen.
Type objects and instances in Raku
Das Unterrichtsmaterial erklärt anhand von Beispielen in der Programmiersprache Raku den Unterschied zwischen Typobjekten (Klassennamen) und konkreten Instanzen. Es behandelt die Konzepte von Definition, Zustand und Objekterstellung im Rahmen der objektorientierten Programmierung.
Objects, I/O, and exceptions in programming
Dieses Unterrichtsmaterial deckt fortgeschrittene Programmierkonzepte wie objektorientierte Programmierung mit Klassen und Rollen, Ein- und Ausgabeoperationen sowie Fehlerbehandlung ab. Es enthält zahlreiche strukturierte Übungen und Quiz zu Themen wie Vererbung, Dateihandling und externen Programmen.
Course of Raku: Advanced - Modules and Code Organization
Dieses fortgeschrittene Material behandelt die Strukturierung, Organisation und das Teilen von Code in Raku. Es fokussiert sich auf das Schreiben und Importieren von Modulen, Introspection, Paketmanagement und Software-Distribution.