Informatik 7: Algorithmen entwerfen, formal darstellen, implementieren und testen
28.1 Lernziele
- Probleme, zerlegen
- Muster, erkennen
- Algorithmen, entwerfen
- Regeln, formulieren
- Abläufe, ordnen
- Pseudocode, schreiben
- Flussdiagramme, lesen
- Lösungen, implementieren
- Tests, planen
- Fehler, finden
- Ergebnisse, prüfen
- Varianten, vergleichen
28.2 Lerninhalte
Die Beschäftigung mit Algorithmen wird besonders tragfähig, wenn Problemverständnis, formale Darstellung, Umsetzung und Testen als zusammenhängender Entwicklungsprozess betrachtet werden, statt sie als voneinander getrennte Einzelschritte oder bloße Syntaxübungen zu behandeln.
Algorithmusbegriff und grundlegende Eigenschaften
Ein klarer Algorithmusbegriff erleichtert jede weitere Arbeit, weil Entwurf, Darstellung und Test nur dann sinnvoll gelingen, wenn Eindeutigkeit, Endlichkeit und nachvollziehbare Reihenfolge der Anweisungen als zentrale Merkmale verstanden werden. Ein Algorithmus ist eine eindeutige Handlungsanleitung zur Lösung eines Problems oder zum Erreichen eines Ziels. Das hochgeladene Skriptum nennt dafür ausdrücklich Eigenschaften wie Eindeutigkeit, Endlichkeit und eine nicht beliebige Reihenfolge der Anweisungen. Zugleich wird betont, dass ein Algorithmus nicht an eine einzige Darstellungsform gebunden ist, sondern in natürlicher Sprache, Pseudocode, Flussdiagrammen oder Programmiersprachen beschrieben werden kann. Alltagsbeispiele machen diese Eigenschaften gut sichtbar. Ein Kochrezept, eine Bauanleitung oder die Suche nach der größten Zahl in einer Liste folgen einer geordneten Schrittfolge. Wird ein Schritt ausgelassen, vertauscht oder unklar formuliert, kann das Ergebnis falsch oder nicht
reproduzierbar werden. Gerade deshalb sind präzise Anweisungen ein Kern informatischer Problemlösung. Beispiele:
- Rezept, Bauanleitung
- Liste, Maximum
- Spielregel, Ablauf
- Eindeutigkeit, Endlichkeit
- Reihenfolge, Ziel
- Regel, Lösung
Vom Problem zum Algorithmus
Ein tragfähiger Entwurf beginnt nicht mit fertigem Code, sondern mit der Zerlegung eines Problems, dem Erkennen wiederkehrender Muster und der Auswahl wesentlicher Informationen, damit eine Aufgabe überhaupt in algorithmische Schritte überführt werden kann. Die Materialien zur dritten Klasse beschreiben Computational Thinking ausdrücklich mit Zerlegung, Mustererkennung, Abstraktion und algorithmischem Denken. CS Unplugged und Code.org stellen dieselben Denkwerkzeuge als zentrale Schritte heraus, um Probleme so zu formulieren, dass Lösungen systematisch beschrieben und später ausgeführt werden können. Bei einer Aufgabe wie „den größten Wert in einer Liste finden“ wird das Problem in wiederholte Vergleiche zerlegt. Bei einer Sortieraufgabe werden einzelne Vertauschungen oder Einfüge- Schritte erkannt. Bei einer Schulanwendung wie Anwesenheit erfassen werden wesentliche Angaben wie Name, Status und Zeit ausgewählt, während irrelevante Details weggelassen werden. So entsteht aus einer unübersichtlichen Situation ein bearbeitbarer Lösungsweg. Beispiele:
- Zerlegung, Muster
- Abstraktion, Auswahl
- Vergleich, Wiederholung
- Liste, Sortierung
- Suche, Entscheidung
- Problem, Lösung
Algorithmen formal darstellen
Formale Darstellungen sind besonders wichtig, weil sie Gedanken ordnen, Missverständnisse reduzieren und einen Zwischenschritt zwischen Idee und Programm schaffen, an dem Abläufe geprüft, erklärt und gemeinsam weiterentwickelt werden können. Das hochgeladene Skriptum zum Programmierunterricht betont, dass Algorithmen vorerst unabhängig von einer konkreten Sprache entworfen und formal dargestellt werden sollen. Als geeignete Hilfen werden dort unter anderem Pseudocode und Flussdiagramme genannt. Gerade diese Formen helfen, Struktur und Logik sichtbar zu machen, bevor Syntaxprobleme hinzukommen.
Pseudocode eignet sich besonders, um Bedingungen, Wiederholungen und Schrittfolgen in sprachähnlicher Form festzuhalten. Flussdiagramme zeigen Start, Entscheidungen, Schleifen und Endpunkte visuell. Für einfache Algorithmen kann auch eine nummerierte Schrittfolge genügen. Bei Sortieralgorithmen, wie dem im Skriptum ausführlich behandelten Insertion Sort, wird die formale Darstellung sogar als eigenes Lernprodukt beschrieben, das aus konkreten Handlungen abgeleitet und anschließend überprüft wird. Beispiele:
- Pseudocode, Flussdiagramm
- Schrittfolge, Tabelle
- Bedingung, Schleife
- Sortierung, Vergleich
- Start, Ende
- Darstellung, Logik
Algorithmen implementieren
Die Implementierung wird dann verständlich, wenn Schülerinnen und Schüler erkennen, dass Code nicht bei null entsteht, sondern eine bereits durchdachte Schrittfolge in eine ausführbare Form überträgt und dabei Entscheidungen, Wiederholungen und Datenzugriffe konkretisiert. Die Materialien betonen, dass Schülerinnen und Schüler ihre entwickelten Algorithmen in Umgebungen wie Scratch, Python oder ähnlichen Werkzeugen umsetzen und dabei lernen sollen, wie Code die geplanten Schritte tatsächlich ausführt. Damit ist Implementierung kein bloßes Abschreiben, sondern die Übertragung eines Modells in eine lauffähige Programmlogik. Ein Algorithmus zum größten Listenelement lässt sich zum Beispiel mit einer Schleife und einer Vergleichsvariable umsetzen. Ein Sortieralgorithmus wird mit wiederholten Vergleichen und Verschiebungen implementiert. Ein Spiel oder Quiz nutzt Bedingungen, Punktevariablen und Ereignisse. Dabei zeigt sich oft, ob ein zuvor gut formulierter Pseudocode wirklich vollständig war oder ob noch Sonderfälle ergänzt werden müssen. Beispiele:
- Scratch, Python
- Schleife, Variable
- Vergleich, Bedingung
- Spiel, Quiz
- Liste, Sortierung
- Code, Umsetzung
Algorithmen testen und debuggen
Testen gehört zum Kern algorithmischer Arbeit, weil ein scheinbar plausibler Ablauf erst dann als tragfähig gelten kann, wenn er mit passenden Eingaben überprüft, auf Fehler untersucht und bei Bedarf systematisch verbessert wurde. Die Materialien zur dritten Klasse beschreiben ausdrücklich, dass Schülerinnen und Schüler die Wirksamkeit ihrer Lösungen bewerten, Programme testen und auf Basis von Tests und
Feedback verbessern sollen. Die Python-Dokumentation ergänzt dazu, dass das unittest-Modul Werkzeuge zum Konstruieren und Ausführen von Tests bereitstellt, während doctest dokumentierte Beispiele automatisch überprüfbar macht. Für den Unterricht sind verschiedene Testarten wichtig: Normfälle, Randfälle und Fehlfälle. Ein Suchalgorithmus sollte nicht nur mit normalen Listen, sondern auch mit leeren Listen oder Listen mit gleichen Werten geprüft werden. Ein Sortieralgorithmus sollte auf bereits sortierte, rückwärts sortierte und gemischte Daten angewendet werden. Debugging bedeutet dabei, Fehlerquellen schrittweise einzugrenzen und zu prüfen, ob Problem im Entwurf, in der Darstellung oder in der Implementierung liegt. Beispiele:
- Normfall, Randfall
- Fehlfall, Testfall
- Debugging, Korrektur
- Leere Liste, Duplikat
- Sortiert, unsortiert
- Prüfung, Verbesserung
Vielfältige Algorithmusarten an Beispielen erläutern
Ein breites Verständnis wächst dann, wenn nicht nur ein einzelner Algorithmus betrachtet wird, sondern unterschiedliche Aufgabenarten wie Suchen, Sortieren, Vergleichen, Filtern oder Entscheiden als algorithmisch formulierbare Problembereiche erkannt werden. Die Unterlagen nennen sowohl alltagsnahe als auch technische Beispiele: ein Rezept, eine Bauanleitung, das Finden der größten Zahl in einer Liste und Unterrichtsideen zu Sortieralgorithmen, insbesondere Insertion Sort. Daraus wird sichtbar, dass Algorithmen nicht nur in der Softwareentwicklung vorkommen, sondern allgemeine Muster systematischer Problemlösung darstellen. Suchen bedeutet etwa, das größte Element oder einen passenden Eintrag zu finden. Sortieren ordnet Daten nach Regeln. Filtern wählt passende Elemente aus. Prüfen entscheidet, ob eine Bedingung erfüllt ist. Steuern beschreibt Abläufe in Geräten, Spielen oder Sensoranwendungen. Gerade die Vielfalt dieser Beispiele hilft, den Algorithmusbegriff nicht zu eng auf Mathematik oder reine Programmiersyntax zu reduzieren. Beispiele:
- Suchen, Sortieren
- Filtern, Prüfen
- Vergleichen, Steuern
- Insertion Sort, Maximum
- Rezept, Spielregel
- Liste, Sensor
Vom Konkreten zum Abstrakten arbeiten
Ein besonders lernwirksamer Zugang entsteht, wenn konkrete Handlungen zuerst körperlich, bildlich oder sprachlich ausgeführt und erst danach in abstrakte algorithmische Formen übersetzt werden, weil so die Logik eines Verfahrens vor der Syntax sichtbar wird. Das Skriptum zu Sortieralgorithmen schlägt vor, mit Karten, Zahlenblättern, Bewegungen im Raum und Simulationen zu arbeiten, um etwa den Insertion-Sort-Algorithmus zunächst konkret zu erleben und daraus anschließend Pseudocode abzuleiten. Ebenso zeigen Materialien aus der ersten Klasse praktische Übungen wie Papierflieger oder Sandwich-Anleitungen, um Algorithmen zuerst handelnd und erst später formal zu erfassen. CS Unplugged arbeitet genau mit diesem Prinzip des informatischen Lernens ohne unmittelbaren Programmeinstieg. Didaktisch bedeutet das: Ein Algorithmus kann zuerst nachgespielt, gezeichnet, diskutiert und verbessert werden. Erst danach wird er als Pseudocode oder Programm umgesetzt. Diese Reihenfolge unterstützt einen Top-down-Zugang, den das Skriptum dem reinen Bottom-up- Lernen von Codefragmenten ausdrücklich gegenüberstellt. Beispiele:
- Karten, Zahlenblätter
- Bewegung, Simulation
- Papierflieger, Sandwich
- Handeln, Zeichnen
- Pseudocode, Programm
- Konkret, abstrakt
28.3 Weiterführende Links
- CS Unplugged, Computational Thinking.
- CS Unplugged, Startseite.
- Code.org, Computational Thinking.
- TeachEngineering, Design Process.
- Python, unittest.
- Python, doctest.
28.4 Aufgaben für den Unterricht
28.4.1 Einen Alltagsalgorithmus vom Handeln zum Pseudocode entwickeln
Ein besonders hoher Lerneffekt entsteht, wenn ein vertrauter Ablauf zuerst praktisch durchgeführt und anschließend in eine eindeutige formale Darstellung überführt wird, weil
dadurch die Beziehung zwischen Handlung, Sprache und Algorithmus klar nachvollziehbar wird. Die Klasse bearbeitet eine Alltagssituation wie Sandwich zubereiten, Getränke ausgeben oder Schultasche kontrollieren. Zuerst wird der Ablauf als Handlung oder Rollenspiel durchgespielt. Danach notieren die Gruppen die einzelnen Schritte in korrekter Reihenfolge und überführen diese in Pseudocode. Anschließend prüfen sie, ob eine außenstehende Person den Algorithmus allein anhand der Beschreibung ausführen könnte.
- Alltag, Handlung
- Schritte, Reihenfolge
- Pseudocode, Präzision
- Ausführung, Prüfung
- Eindeutigkeit, Kontrolle
- Reflexion, Verbesserung
28.4.2 Suchalgorithmen an Listen entwerfen und vergleichen
Algorithmisches Denken wird besonders gut aufgebaut, wenn verschiedene Wege zur Lösung derselben Suchaufgabe entwickelt und verglichen werden, weil dadurch Effizienz, Klarheit und Passung eines Verfahrens sichtbar und begründbar werden. Die Gruppen erhalten Listen mit Zahlen, Namen oder Gegenständen und die Aufgabe, einen bestimmten Eintrag oder das größte Element zu finden. Zunächst entwerfen sie selbst eine Suchstrategie. Danach vergleichen sie diese mit einer zweiten Variante und halten Unterschiede in Anzahl der Schritte, Übersichtlichkeit und Eignung für verschiedene Listen fest. Am Ende formulieren sie einen klaren Suchalgorithmus.
- Liste, Suche
- Maximum, Eintrag
- Strategie, Vergleich
- Schritte, Aufwand
- Entwurf, Algorithmus
- Urteil, Begründung
28.4.3 Sortieralgorithmen handelnd und formal darstellen
Sortierverfahren werden besonders verständlich, wenn Lernende die einzelnen Vergleiche und Umordnungen selbst ausführen, weil dadurch die Logik von Wiederholung, Entscheidung und schrittweisem Verbessern unmittelbar erfahrbar wird. Die Klasse arbeitet mit Karten, Zahlenstreifen oder Namenslisten. Die Gruppen sortieren diese zunächst handelnd nach einer festgelegten Strategie, etwa durch Einfügen oder Vertauschen. Danach dokumentieren sie das Verfahren als Flussdiagramm oder Pseudocode. Im Anschluss testen sie ihren Algorithmus mit einer neuen Liste und prüfen, ob er zuverlässig funktioniert.
- Karten, Reihenfolge
- Vergleich, Vertauschung
- Einfügen, Sortierung
- Flussdiagramm, Pseudocode
- Testliste, Prüfung
- Ablauf, Erklärung
28.4.4 Entscheidungsalgorithmen mit Bedingungen entwickeln
Ein tieferes Verständnis für Verzweigungen entsteht, wenn Probleme mit mehreren möglichen Wegen bearbeitet werden, weil dann deutlich wird, wie Bedingungen Entscheidungen steuern und verschiedene Ausgaben oder Handlungen auslösen. Die Gruppen bearbeiten Aufgaben wie Zugang prüfen, Rabatte berechnen, Ampel steuern oder Schlechtwetterregel anwenden. Sie sammeln zunächst notwendige Bedingungen und ordnen danach die möglichen Fälle. Im nächsten Schritt formulieren sie einen Entscheidungsalgorithmus mit klaren Wenn-Dann-Strukturen. Anschließend setzen sie diesen in Blockcode oder einer einfachen Programmiersprache um.
- Bedingung, Entscheidung
- Fall, Alternative
- Eingang, Ausgabe
- Wenn-Dann, Struktur
- Blockcode, Umsetzung
- Test, Korrektur
28.4.5 Wiederholungen in Algorithmen erkennen und nutzen
Schleifen werden besonders tragfähig verstanden, wenn Lernende erleben, wie unnötig lang ein Algorithmus ohne Wiederholung würde und wie sehr Wiederholungsstrukturen Abläufe vereinfachen, verkürzen und übersichtlicher machen. Die Klasse arbeitet mit Aufgaben wie Punkte zählen, mehrere Werte prüfen, Gegenstände durchsuchen oder Spielfiguren bewegen. Zuerst formulieren die Gruppen eine Lösung ohne Schleife. Danach identifizieren sie wiederkehrende Schritte und ersetzen diese durch eine passende Wiederholungsstruktur. Anschließend erklären sie, warum die zweite Variante kürzer, klarer und besser wartbar ist.
- Wiederholung, Schleife
- Prüfung, Zählen
- Liste, Durchlauf
- Kürzung, Klarheit
- Variante, Vergleich
- Struktur, Nutzen
28.4.6 Einen Algorithmus aus einem Flussdiagramm implementieren
Der Übergang von formaler Darstellung zu lauffähigem Programm erzeugt besonders starke Lernwirkungen, weil dabei sichtbar wird, wie Entscheidungen, Abläufe und Wiederholungen aus einem Diagramm in konkrete Befehle übertragen werden. Die Lehrkraft gibt ein Flussdiagramm vor, etwa für ein Quiz, einen Taschenrechner oder eine einfache Zugangsprüfung. Die Gruppen lesen die Darstellung, markieren Start, Entscheidungen, Ausgaben und Schleifen und übertragen den Ablauf anschließend in Blockcode oder Textcode. Danach vergleichen sie Programm und Diagramm und prüfen, ob beide wirklich dieselbe Logik enthalten.
- Flussdiagramm, Start
- Entscheidung, Schleife
- Ausgabe, Ablauf
- Blockcode, Textcode
- Übertragung, Vergleich
- Logik, Kontrolle
28.4.7 Testfälle für Algorithmen gezielt planen
Testkompetenz entsteht besonders gut, wenn Schülerinnen und Schüler nicht erst nach Fehlern suchen, sondern vorab überlegen, mit welchen Eingaben ein Algorithmus sinnvoll geprüft werden sollte und welche Sonderfälle kritisch sein könnten. Die Gruppen erhalten einen vorhandenen Algorithmus, etwa zur Notenberechnung, Sortierung oder Eingabeprüfung. Sie entwerfen dazu Testfälle für normale Situationen, Randfälle und problematische Eingaben. Anschließend führen sie die Tests aus und dokumentieren, welche Ergebnisse erwartet und welche tatsächlich beobachtet wurden. So wird deutlich, dass gute Tests mehr sind als bloßes Ausprobieren.
- Testfall, Erwartung
- Normfall, Randfall
- Fehlfall, Prüfung
- Ergebnis, Vergleich
- Dokumentation, Analyse
- Testplan, Qualität
28.4.8 Fehlerhafte Algorithmen debuggen und verbessern
Ein besonders nachhaltiger Lerneffekt entsteht, wenn fehlerhafte Lösungswege analysiert und korrigiert werden müssen, weil dadurch typische Schwächen in Reihenfolge, Bedingungen oder Wiederholungen besser verstanden und dauerhaft vermieden werden.
Die Lehrkraft gibt absichtlich fehlerhafte Algorithmen aus, etwa mit falscher Bedingung, fehlendem Schritt, Endlosschleife oder unklarer Ausgabe. Die Gruppen führen den Ablauf anhand von Beispielen nach, lokalisieren den Fehler und formulieren eine verbesserte Version. Anschließend erklären sie, wie der Fehler entstanden ist und woran man ihn künftig schneller erkennen kann.
- Fehlalgorithmus, Analyse
- Bedingung, Fehler
- Schleife, Abbruch
- Schritt, Lücke
- Korrektur, Erklärung
- Debugging, Reflexion
28.4.9 Einen eigenen Algorithmus für ein kleines Projekt entwickeln
Algorithmen werden besonders sicher beherrscht, wenn sie nicht nur vorgegeben, sondern für ein selbst gewähltes Mini-Problem entworfen, formal dargestellt, implementiert und getestet werden müssen. Die Gruppen wählen ein kleines Projekt wie Punktesystem, Medienauswahl, einfache Buchung, Quizablauf oder Sensorreaktion. Danach beschreiben sie das Problem, entwickeln einen passenden Algorithmus, stellen ihn in Pseudocode oder Flussdiagramm dar und setzen ihn anschließend in einer geeigneten Umgebung um. Am Ende führen sie eigene Testfälle durch und dokumentieren Verbesserungen.
- Mini-Projekt, Problem
- Entwurf, Darstellung
- Pseudocode, Diagramm
- Umsetzung, Test
- Verbesserung, Dokumentation
- Projekt, Präsentation
28.4.10 Algorithmen vergleichen und begründet bewerten
Reflektiertes Verstehen entsteht besonders dann, wenn mehrere Algorithmen für ähnliche Aufgaben gegenübergestellt werden, weil dabei nicht nur Funktionieren, sondern auch Klarheit, Aufwand und Eignung für verschiedene Situationen beurteilt werden. Zum Abschluss erhalten die Gruppen mehrere Algorithmen zu ähnlichen Aufgaben, etwa unterschiedliche Such- oder Sortierverfahren oder verschiedene Lösungen für dieselbe Entscheidungsaufgabe. Sie prüfen Verständlichkeit, Schrittzahl, Wiederverwendbarkeit und Testbarkeit. Danach formulieren sie ein Gesamturteil, welcher Algorithmus für welchen Zweck besonders geeignet erscheint und warum.
- Vergleich, Verfahren
- Suche, Sortierung
- Klarheit, Aufwand
- Eignung, Testbarkeit
- Urteil, Begründung
Grundlage: Informatik – Lehrband 7. Klasse, Final V1.7 (2026).