1.3 Programmieren – Unterrichtsmaterial
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.
Software und ihre Entwicklung
Dieses umfassende Lehrmittel deckt die Bereiche grafische Benutzeroberflächen, Software-Entwicklungsprozesse, agile Methoden wie Scrum und verteilte Versionsverwaltung mit Git ab. Es bietet zahlreiche Projektbeispiele, Programmierübungen mit Python und vertiefte Einblicke in das Software-Engineering.
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.
Imperative Programmierung und Algorithmisches Problemlösen mit Python und Scratch
Umfassendes Unterrichts- und Lehrmaterial zur imperativen Programmierung und algorithmischen Problemlösung. Es deckt sowohl grundlegende Konzepte wie Variablen, Kontrollstrukturen und Funktionen mit Python als auch visuelles Programmieren mit Scratch 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.
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.
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.
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.
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.
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.
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.
Rocket to Mars: Algorithmen und Debugging (CS Unplugged)
Dieses Unterrichtsmaterial führt spielerisch und ohne Computer (Unplugged) in grundlegende Konzepte der Programmierung ein. Die Lernenden schlüpfen in die Rollen von Entwicklern, Testern und Robotern, um einen Roboter über ein Raster zu navigieren, Sequenzen zu erstellen und Fehler systematisch zu debuggen.
Little Red Riding Hood Algorithmen und Debugging (CS Unplugged)
Dieses praxisnahe Unterrichtsmaterial vermittelt spielerisch und ohne Computer (Unplugged) grundlegende Konzepte der Programmierung, des Testens und des Debuggings. Anhand eines physischen Rasters und Rollenspielen (Programmierer, Tester, Roboter) lernen die Schülerinnen und Schüler, Algorithmen zu erstellen, Fehler zu identifizieren und inkrementell vorzugehen.
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.
Python Tutorial: Datenstrukturen
Dieses offizielle Python-Tutorial behandelt fortgeschrittene Datenstrukturen wie Listen, Tupel, Mengen und Dictionaries sowie nützliche Techniken wie List Comprehensions und Schleifen.
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.
Python Listen und Slicing
Dieses Lehrmaterial bietet eine detaillierte Einführung in die Datenstruktur der Listen in Python. Es behandelt die Erstellung, Indizierung, Methoden wie split und join, List Comprehensions (Generatoren) sowie Slices und grundlegende Operationen.
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.
Russische Bauern-Multiplikation
Dieses Unterrichtsmaterial stellt die historische Methode der russischen Bauern-Multiplikation vor und verknüpft sie mit binären Zahlen sowie computerarithmetischen Konzepten. Es enthält ausführliche Arbeitsaufträge, Theorieblöcke, Lösungen und Aufgaben zur Vertiefung.
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.
Heiratsproblem - Gruppenarbeit Algorithmus
In diesem Arbeitsblatt vollziehen Schülerinnen und Schüler in Gruppenarbeit einen komplexen Algorithmus zur Lösung des stabilen Heiratsproblems manuell nach. Dabei werden Variablen, Bedingungen und Schritt-für-Schritt-Ausführungen anschaulich durchgespielt.
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.
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.