1.2.1 Probleme lösen, indem sie diese in Teilprobleme zerlegen
Unterrichtsmaterial zum Lernziel: Die Maturandinnen und Maturanden können Probleme lösen, indem sie diese in Teilprobleme zerlegen.
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.
Schwierige Probleme in der Informatik: Graphentheorie mit GraphBench
Das Unterrichtsmaterial führt anhand des Plans für ein Stadtfest in Bern in komplexe graphentheoretische Probleme ein. Die Lernenden nutzen die Software GraphBench, um NP-schwere Probleme wie das Hamilton-Kreis-Problem oder Graphenfärbbarkeit zu untersuchen, zu experimentieren und ihre Erkenntnisse zu präsentieren.
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.
Vorbereitung auf Roboter-Wettbewerbe
Dieser Leitfaden für Schülerteams beschreibt die strukturierte Herangehensweise an Roboter-Wettbewerbe. Er behandelt Themen wie das Kennenlernen von Sensoren und Fahrverhalten, den Prototypenbau, die strategische Priorisierung von Teilaufgaben sowie systematisches Testen unter Wettbewerbsbedingungen.
Hex Ed - Advent of Code Logikrätsel zu Hexagonalen Grids
Ein Programmier- und Logikrätsel, bei dem Distanzen auf einem hexagonalen Gitter berechnet werden müssen. Anhand von Pfad-Angaben wird die minimale Anzahl Schritte zum Ausgangspunkt ermittelt.
AOC 2019 Day 4: Secure Container
Ein Programmier- und Logikrätsel im Rahmen des Advent of Code, bei dem sechsstellige Zahlen anhand bestimmter Kriterien wie benachbarten gleichen Ziffern und monoton steigenden Ziffernfolgen gefiltert und gezählt werden müssen.
Advent of Code: Amplification Circuit
Eine Programmieraufgabe, bei der eine Reihe von Verstärkern durch Simulation von Intcode-Programmen und Permutation von Phaseneinstellungen koordiniert werden muss, um ein optimales Signal zu berechnen. Das Material fördert algorithmisches Denken und die praktische Problemlösung durch Code.
Advent of Code: Toboggan Trajectory
Eine Programmieraufgabe, bei der eine sich wiederholende Karte im Raster (ein wiederholtes Muster von Bäumen) analysiert werden muss, um Kollisionen entlang einer bestimmten Hangneigung zu zählen.
Advent of Code: Transparent Origami
Eine Programmieraufgabe, bei der eine transparente Papierfalzung mit Koordinaten und Faltanweisungen simuliert wird. Die Lernenden müssen Algorithmen zur Datenverarbeitung und Koordinatentransformation entwickeln.
Seven Segment Search
Eine Programmieraufgabe im Rahmen des Advent of Code, bei der durch die Analyse von Signalschemata eines beschädigten Siebensegmentanzeigers Logik- und Suchprobleme gelöst werden müssen. Die Schülerinnen und Schüler entwickeln Algorithmen, um gemischte Verdrahtungen zu rekonstruieren und bestimmte Ziffern zu zählen.
Bundeswettbewerb Informatik: Aufgabe 'Tratsch'
Eine praxisnahe Übungsaufgabe basierend auf dem Bundeswettbewerb Informatik 2004/2005, bei der Sympathiebeziehungen mithilfe eines gerichteten Graphen dargestellt und ein Erreichbarkeitsproblem analysiert werden muss. Das Material eignet sich gut für den Einstieg in die Graphentheorie und die Modellierung von Beziehungen.
Exkurs - Graphen in Anwendungssituationen
Das Unterrichtsmaterial führt anhand verschiedener realer Anwendungssituationen wie Fährverbindungen, Ländergrenzen, Königsberger Brückenproblem, sozialen Netzwerken und Umfülldramen in das Konzept von Graphen und die Modellierung mit Knoten und Kanten ein. Die Lernenden erarbeiten sich die abstrakten Darstellungen und lösen konkrete Aufgabenstellungen selbstständig.
Einstieg in die Routenplanung
Dieses Unterrichtsmaterial führt anhand eines konkreten Beispiels zur Autoreise von Worms nach Speyer in das Thema der algorithmischen Routenplanung ein. Die Schülerinnen und Schüler reflektieren Kriterien für optimale Wege, trennen relevante von irrelevanten Karteninformationen und lernen die Rolle von Routenplanern kennen.
Auswertung von Rechentermen
Dieses Unterrichtsmaterial behandelt die Darstellung und Auswertung von Rechentermen mithilfe von Datenstrukturen und Stapelspeichern. Schülerinnen und Schüler lernen, Terme in Listennotation umzuwandeln und Algorithmen zur automatisierten Auswertung zu analysieren und zu entwickeln.
Wege im Galton-Brett
Dieses Unterrichtsmaterial führt anhand des Galton-Bretts in die mathematisch-informatische Modellierung und Untersuchung von Rekursionen ein. Die Lernenden bestimmen Anzahl von Wegen, analysieren Eigenschaften der entsprechenden Funktion und vergleichen verschiedene rekursive Implementierungen.
Quadratbaum als rekursive Problemreduktion und Programmieraufgabe
Das Material führt anhand des Beispiels eines Quadratbaums in die rekursive Problemlösung und Programmierung ein. Schülerinnen und Schüler lernen, komplexe geometrische Figuren durch Zerlegung in Teilprobleme rekursiv zu beschreiben und in Python (mittels Turtle-Grafik) zu implementieren.
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.
Einstieg - Eine selbstähnliche Figur: Der rekursive Baum
Das Material führt anhand einer grafischen Darstellung eines Baumes in die Idee der Selbstähnlichkeit und rekursiven Problemreduktion ein. Schülerinnen und Schüler analysieren die Baumstruktur, verstehen einen rekursiven Pseudocode-Ansatz und ergänzen diesen zu einem vollständigen rekursiven Algorithmus.
Rekursive Problemreduktion am Beispiel der Türme von Hanoi
Dieses Unterrichtsmaterial erklärt das Konzept der rekursiven Problemlösung und der rekursiven Algorithmen anhand des klassischen Beispiels der Türme von Hanoi. Es führt schrittweise von der manuellen Lösung über die Problemreduktion bis hin zur Formulierung eines allgemeinen rekursiven Algorithmus.
Erkundung und Lösung für die Türme von Hanoi
Das Material führt anhand des klassischen Rätsels der Türme von Hanoi schrittweise an die Analyse von Algorithmen und deren Verallgemeinerung heran. Im Schlussteil wird die Lösung mithilfe einer Python-Implementierung praktisch überprüft.
Ein Verfahren zur Turnierplanung
Dieses Unterrichtsmaterial führt anhand eines Schulschach-Beispiels in die systematische Erstellung von Turnierplänen ein. Die Lernenden analysieren vorgegebene Pläne, erkennen Planungsmuster und entwickeln Algorithmen für die Turnierplanung bei variierenden Teilnehmerzahlen.
Turnierplanung als Problem
Dieses Unterrichtsmaterial lässt Schülerinnen und Schüler praxisnah einen Turnierplan für ein Schulschachturnier entwickeln. Dabei werden algorithmisches Denken, das Erkennen von Mustern und die strukturierte Problemlösung in spielerischer Form gefördert.
Das Suchproblem: Die größte Goldmenge
Anhand eines Beispiels mit Schachteln und einer Vergleichswaage lernen Schülerinnen und Schüler, wie man einen Algorithmus zum Finden eines Maximums entwickelt, beschreibt und durch Partnerarbeit auf Korrektheit und Präzision überprüft.
Dekomposition und modulare Grafik mit PyTamaro
Die Unterrichtsaktivität führt anhand einer Tulpen-Grafik in das Konzept der Dekomposition ein und lässt Lernende Funktionen zur Erstellung von Teilmodulen mit Python implementieren. Dabei wird der Umgang mit Farben über den HSV-Farbraum vertieft.
Animationen erstellen mit Python und PyTamaro
Dieses Unterrichtsmaterial führt Schülerinnen und Schüler schrittweise dazu, mithilfe der Python-Bibliothek PyTamaro GIF-Animationen zu erstellen, Frames zu definieren und Listen von Grafiken als Animationen abzuspielen.
Code-Wiederverwendung und Komposition mit PyTamaro
Das Unterrichtsmaterial erklärt anhand der Grafikbibliothek PyTamaro, warum Codeduplikationen vermieden werden sollten und wie Funktionen modularisiert werden können. Es wird gezeigt, wie durch Problemlösung und Komposition (Zusammensetzen von Formen wie Kreisen zu einem Schneemann) strukturierter und lesbarer Code in Python geschrieben wird.
Auf dem Markt 4 - PyTamaro
In dieser Programmieraufgabe für PyTamaro sollen Schülerinnen und Schüler grafische Darstellungen von Marktgegenständen in primitive Grafiken zerlegen und diese mit Funktionen neu verknüpfen. Das Material bietet sowohl digitale Programmieraufgaben als auch analoge Hilfsmittel zum Legen mit Papierstücken.
Grafische Programmierung mit PyTamaro: Der Regentropfen
Dieses Unterrichtsmaterial führt anhand des Zeichnens eines Regentropfens in die modulare Programmierung mit der Python-Bibliothek PyTamaro ein. Die Lernenden zerlegen das grafische Problem in Teilprobleme, nutzen Funktionen wie `pin` und `compose` zur Zusammensetzung von Grundfiguren und testen ihren Code systematisch.
Ladybug Programming Task mit PyTamaro
Anhand der Erstellung einer Marienkäfer-Grafik in Python lernen Lernende, Probleme in Teilprobleme zu zerlegen und Funktionen mit Parametern zu schreiben. Dabei werden Konzepte wie Dekomposition und Abstraktion spielerisch angewendet.
Grafikprogrammierung mit Python und PyTamaro: Eine Blume erstellen
Dieses Unterrichtsmaterial führt Schülerinnen und Schüler Schritt für Schritt dazu, mithilfe der Python-Bibliothek PyTamaro und eigener Funktionen eine Vektorgrafik einer Blume (eines Margritli) zu erstellen. Dabei werden mathematische Formeln für Rotationen, Schleifenkonzepte und die Modularisierung von Code praktisch angewendet.
Compass Graphic Programming
Eine Programmieraufgabe, bei der eine komplexe Kompassgrafik schrittweise durch Zerlegung in kleinere Teilprobleme (Dekomposition) und Funktionen erstellt wird.
Titelanimation mit PyTamaro in Python
Dieses Unterrichtsmaterial führt Lernende dazu, mit Python und PyTamaro eine Animation aus mehreren Einzelbildern zu erstellen. Dabei werden Funktionen, Schleifen, Listen und Parameter von Animationsfunktionen praktisch angewendet.
Grafische Programmierung mit PyTamaro: Dekomposition und Komposition
Dieses Unterrichtsmaterial führt spielerisch und praxisnah in die Programmierung mit Python und der Grafikbibliothek PyTamaro ein. Die Lernenden erfahren an Hand von Pacman-Beispielen, wie man Probleme durch Dekomposition in Teilprobleme zerlegt und mittels PyTamaro-Funktionen und -Parametern visuelle Grafiken komponiert.
Auf dem Markt 3: Programmier-Repetitionsaufgaben mit PyTamaro
Dieses Unterrichtsmaterial bietet Repetitionsaufgaben zum Programmieren in Python mit der Bibliothek PyTamaro. Lernende erstellen grafische Darstellungen von Marktgegenständen wie Kürbissen, Peperoni und Cupcakes durch schrittweises Zerlegen und Kombinieren geometrischer Formen.
Rauten mit PyTamaro programmieren
In diesem Programmierauftrag lernen Lernende, wie man mithilfe von geometrischen Funktionen und Rotationen eine Raute aus zwei Dreiecken in Python (PyTamaro) konstruiert. Dabei wird das Zerlegen von komplexen Formen in Teilprobleme sowie die funktionale Programmierung geübt.
Grafiken komponieren mit Python und PyTamaro
In dieser Programmieraufgabe lernen Schülerinnen und Schüler, wie man komplexe Grafiken aus einfachen geometrischen Formen mithilfe von Python-Funktionen und Problemzerlegung (Decomposition) erstellt. Sie implementieren Funktionen für Augen und Augenpaare und nutzen dabei Bibliotheksfunktionen wie overlay und beside.
Animationen erstellen mit Python und PyTamaro
In diesem Unterrichtsmaterial lernen Schülerinnen und Schüler, wie man mit Python und der Bibliothek PyTamaro schrittweise Animationen erstellt. Dabei werden Funktionen, Schleifen, Konstanten und die Manipulation von Listen (wie Umkehren und Konkatenation) praktisch angewendet.
Herz-Grafik erstellen mit PyTamaro
In diesem Material lernen Schülerinnen und Schüler, wie man eine komplexe Herz-Grafik mithilfe von modularem Python-Code und Grundfiguren erstellt. Das Problem wird in Teilprobleme zerlegt, Funktionen werden definiert und getestet.
Die Schweizer Bahnhofsuhr mit PyTamaro programmieren
In diesem Programmierprojekt erstellen Schülerinnen und Schüler schrittweise eine funktionierende Schweizer Bahnhofsuhr mit Python und der Grafik-Bibliothek PyTamaro. Dabei werden Teilprobleme wie Hintergrund, Zeiger und Striche modular gelöst und anschliessend durch geometrische Transformationen wie Verschiebung und Drehung kombiniert.
Radius-Based Star
Dieses Unterrichtsmaterial führt in die Erstellung und Dekomposition von geometrischen Formen wie Sternen in Python mithilfe von PyTamaro ein. Lernende entwerfen eine Funktion zur Erstellung von Sternen durch Zerlegung in Drierecke oder Kites und wenden Programmierkonzepte wie Funktionssignaturen und Parameter an.
Herz-Grafik mit PyTamaro programmieren
In diesem Programmierprojekt wird ein grafisches Herz aus Bausteinen wie Halbkreisen zusammengesetzt. Die Lernenden zerlegen das visuelle Problem in Teilprobleme und wenden Programmierkonzepte an.
Die Schweizer Flagge komponieren
Eine praktische Programmieraktivität, bei der die Schweizer Flagge schrittweise aus geometrischen Grundformen mittels Funktionsaufrufen und Komposition aufgebaut wird. Dabei wird gezielt das Zerlegen von Problemen in kleinere Teilprobleme (Problemdekomposition) eingeübt.
PyTamaro: Einführung in die Programmierung mit Python und Grafik
Dieses Einführungsmaterial nutzt die Python-Bibliothek PyTamaro, um grundlegende Programmierkonzepte wie Funktionen, Ausdrücke und Dekomposition anhand von Grafik-Erstellungen zu vermitteln. Es richtet sich an Anfänger und verzichtet bewusst auf Schleifen und Verzweigungen, um den Fokus auf sauberen Code und Wiederverwendbarkeit zu legen.
Sortiernetzwerke im Freien: Parallele Algorithmen hautnah erleben
Eine praxisnahe, unplugged Unterrichtseinheit, bei der Schülerinnen und Schüler als menschliche Computer in einem mit Kreide auf den Boden gezeichneten Sortiernetzwerk agieren. Dabei erfahren sie hautnah, wie parallele Algorithmen und einfache Vergleichsoperationen funktionieren, um Daten zu sortieren.
Einführung in das Programmieren und algorithmische Denken mit Unplugged-Aktivitäten
Dieses Unterrichtsmaterial führt spielerisch und ohne Computer in grundlegende Konzepte der Programmierung und des algorithmischen Denkens ein. Anhand von Rollenspielen und Roboter-Metaphern (Kidbots) lernen die Schüler Rollen wie Programmierer und Tester kennen, zerlegen Probleme in Teilaufgaben und erproben sequenzielle Anweisungen.
Paritätsprüfung und algorithmische Problemlösung
Eine strukturierte Sammlung von Programmier- und Logikaufgaben, die von grundlegenden Zählaufgaben über Restwertbestimmungen bis hin zur Erkennung von Paritätsfehlern in Zeilen und Spalten führen. Die Aufgaben fördern schrittweise das algorithmische Denken und die Fehlererkennung in Daten.
What is Computational Thinking?
Der Text erklärt das Konzept des Computational Thinking und seine zentralen Fähigkeiten wie algorithmisches Denken, Abstraktion, Dekomposition und Mustererkennung. Er zeigt auf, wie diese Problemlösungskompetenzen im Informatikunterricht und im Alltag angewendet werden.
Einführung in das informatische Denken (Computational Thinking)
Dieser Text bietet eine umfassende und verständliche Einführung in das Konzept des informatischen Denkens (Computational Thinking). Er erläutert zentrale Problemlösungsfähigkeiten wie algorithmisches Denken, Abstraktion, Dekomposition, Mustererkennung, Auswertung und Logik anhand alltäglicher Beispiele.
Advent of Code 2022 - Day 7: No Space Left On Device
Eine Programmieraufgabe, bei der ein Dateisystem in Form einer Baumstruktur analysiert und Verzeichnisgrössen rekursiv berechnet werden müssen. Die Schülerinnen und Schüler lernen dabei, hierarchische Datenstrukturen und Baumstrukturen algorithmisch zu verarbeiten.
Advent of Code: Sand Slabs
Eine Programmieraufgabe zur Simulation von fallenden dreidimensionalen Blöcken und der Analyse von Abhängigkeiten in einer stabilen Struktur. Schülerinnen und Schüler ermitteln, welche Elemente gefahrlos entfernt werden können, ohne dass andere herabfallen.