Zum Inhalt springen

Informatik 6: Grundlegende Algorithmen entwerfen und testen

Aus Informatik.wiki
Version vom 15. September 2026, 10:47 Uhr von Maintenance script (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

← Zurück zur 6. Klasse

Worum geht es? Du entwickelst aus Problemen konkrete Algorithmen, stellst sie formal dar, implementierst sie und überprüfst sie mit Testfällen und systematischer Fehlersuche.

Lernziele

Nach diesem Kapitel kannst du:

  • einfache Problemstellungen in Teilaufgaben zerlegen.
  • für eine Aufgabe einen grundlegenden Algorithmus entwerfen.
  • Eingaben, Verarbeitung und Ausgaben in einem Ablauf benennen.
  • lineare Abläufe, Bedingungen und Wiederholungen in Algorithmen erkennen und nutzen.
  • Algorithmen in Alltagssprache, Schrittliste, Pseudocode oder Flussdiagramm formal darstellen.
  • einfache Variablen und geeignete Datenstrukturen wie Listen oder Tabellen verwenden.
  • einen entworfenen Algorithmus in einer blockbasierten oder textbasierten Umgebung implementieren.
  • Programme schrittweise ausführen und deren Verhalten beobachten.
  • Testfälle planen und erwartete Ergebnisse formulieren.
  • Fehler in Ablauf, Logik oder Darstellung erkennen und verbessern.
  • die Korrektheit und Verständlichkeit eines Algorithmus begründet einschätzen.
  • eigene Lösungen mit anderen Lösungswegen vergleichen und überarbeiten.

Anschluss an die 5. Klasse

Du baust auf einfachen Algorithmen auf und führst Entwurf, formale Darstellung, Implementierung, Test und Verbesserung zu einem vollständigen Entwicklungsprozess zusammen.

Lerninhalte

Kompaktüberblick

Entwicklungsphase Frage Ergebnis
Analysieren Was ist das Problem? klare Problemstellung
Entwerfen Welche Schritte braucht die Lösung? Algorithmus
Darstellen Wie dokumentiere ich den Ablauf? Pseudocode/Flussdiagramm
Implementieren Wie wird daraus Code? Programm
Testen Funktioniert es korrekt? geprüfte Lösung

Merke: Gute Programmierung beginnt vor dem Code und endet erst nach dem Testen.

Vom Problem zur algorithmischen Lösung

Ein informatiktauglicher Lösungsweg beginnt nicht mit dem Programmcode, sondern mit der genauen Klärung der Aufgabe, der benötigten Informationen und der Entscheidung, welche Schritte wirklich notwendig und in welcher Reihenfolge sinnvoll sind.

Am Anfang steht die Frage, was genau erreicht werden soll. Aus „Ordne die Bücher“ wird zum Beispiel „Sortiere die Bücher alphabetisch nach Titel“. Aus „Zähle die Stimmen“ wird „Gehe alle Stimmen durch und erhöhe für jede Nennung den passenden Zähler“. Aus „Finde den Weg“ wird „Bewege dich vom Startfeld zum Zielfeld, ohne Hindernisse zu betreten“. Solche Umformulierungen machen aus einer alltagssprachlichen Aufgabe eine bearbeitbare Problemstellung. Hilfreiche Leitfragen sind: Was ist das Ziel, welche Daten liegen vor, welche Regeln gelten, welches Ergebnis wird erwartet? Beispiele, Punkte vergleichen, Namen suchen, Tage zählen, Würfelaugen addieren, Klassenliste prüfen.

Algorithmen entwerfen

Ein guter Entwurf entsteht meist dann, wenn ein Problem zunächst vereinfacht, in Teilprobleme zerlegt und anschließend als geordnete Folge aus kleinen, eindeutigen Handlungsschritten aufgebaut wird, die später auch von anderen nachvollzogen werden können.

Beim Entwerfen werden einzelne Schritte festgelegt. Ein Algorithmus zum Finden der größten Zahl kann so aussehen: Nimm die erste Zahl als größte, vergleiche jede weitere Zahl mit ihr, ersetze sie bei Bedarf, gib am Ende die größte Zahl aus. Ein Algorithmus zum Sortieren von Karten kann lauten: Vergleiche zwei benachbarte Karten, tausche sie bei Bedarf, wiederhole den Durchgang, bis alles geordnet ist. Ein Ampelalgorithmus kann mit wenn, dann, sonst arbeiten: Wenn die Ampel grün ist, gehe; sonst warte. Solche Entwürfe zeigen, dass Algorithmen nicht erraten, sondern systematisch aufgebaut werden.

Grundelemente von Algorithmen

Viele grundlegende Algorithmen lassen sich auf wenige zentrale Bausteine zurückführen, deren bewusstes Erkennen und Anwenden den Übergang von einfachen Schrittfolgen zu allgemeineren und flexibleren Problemlösungen deutlich erleichtert.

Zu den wichtigsten Bausteinen gehören Sequenz, Auswahl, Wiederholung. Eine Sequenz ist eine feste Abfolge von Schritten, etwa „öffne die Datei, lies den Wert, speichere das Ergebnis“.

Eine Auswahl trifft eine Entscheidung, etwa „wenn Zahl größer als 10, dann markiere sie“. Eine Wiederholung führt denselben Schritt mehrfach aus, etwa „wiederhole für jede Zahl in der Liste“. Dazu kommen oft Eingabe, Verarbeitung, Ausgabe. Beispiele, Passwort prüfen, Würfelsumme berechnen, geraden Zahlen folgen, Treffer zählen, Objekte sortieren. Diese Bausteine bilden das Grundgerüst fast aller einfachen Programme.

Formale Darstellungen von Algorithmen

Formale Darstellungen helfen dabei, Abläufe missverständnisarm festzuhalten, weil sie klare Schreibweisen, Symbole und Begriffe verwenden und dadurch dieselbe Lösung in überprüfbarer und leichter vergleichbarer Form sichtbar machen.

Ein Algorithmus kann als Schrittliste, Pseudocode, Flussdiagramm, Blockfolge oder einfache Programmanweisung dargestellt werden. Beispiel als Schrittliste: 1. Lies die Zahl. 2. Prüfe, ob sie gerade ist. 3. Gib ja oder nein aus. Beispiel als Pseudocode:

START

EINGABE Zahl

WENN Zahl mod 2 = 0

DANN AUSGABE „gerade“

SONST AUSGABE „ungerade“

ENDE

Im Flussdiagramm können Start, Entscheidung und Ausgabe als Symbole gezeigt werden. Für jüngere Lernende sind Pfeile, nummerierte Schritte und einfache Wenn-Dann-Strukturen oft besonders hilfreich. Wichtig ist, dass die Darstellung klarer wird als eine bloße Alltagserzählung.

Geeignete Datenstrukturen verwenden

Ein Algorithmus arbeitet nicht im leeren Raum, sondern mit geordneten Daten, weshalb einfache Datenstrukturen wie Listen, Tabellen oder Raster wesentlich dazu beitragen, Informationen übersichtlich zu erfassen und logisch weiterzuverarbeiten.

Eine Liste eignet sich für geordnete Elemente wie Namen, Zahlen, Farben oder Punkte. Eine Tabelle eignet sich für Zuordnungen wie Name–Punkte, Tag–Temperatur, Produkt–Preis. Ein Raster eignet sich für Wege, Spielfelder oder Raumpläne. Beispiele: Eine Klassenliste wird durchsucht, eine Punktetabelle ausgewertet, ein Labyrinthfeld schrittweise durchlaufen. Für das Zählen von Stimmen kann eine Tabelle mit Spalten für Optionen und Zählerwerten sehr nützlich sein. Für ein Suchspiel im Klassenraum kann ein Raster hilfreicher sein als eine Liste.

Lernende sollen erkennen, dass die Datenstruktur nicht beliebig ist, sondern den Lösungsweg stark beeinflusst.

Orientierung auf einen Blick

Testart Zweck
Normalfall typische Eingabe prüfen
Grenzfall Randwerte prüfen
Fehlerfall ungültige Eingabe prüfen
Vergleichstest zwei Lösungswege bewerten

Algorithmen implementieren

Die Umsetzung in einer blockbasierten oder textbasierten Umgebung macht sichtbar, ob ein Entwurf tatsächlich ausführbar ist, weil erst bei der Implementation kleine Lücken, unklare Bedingungen oder fehlende Zwischenschritte zuverlässig auffallen.

Bei der Implementation wird der entworfene Algorithmus in eine Programmierumgebung übertragen, etwa in Scratch, Open Roberta, MakeCode, Python oder eine andere Lernumgebung. Ein Zählalgorithmus kann dort als Variable umgesetzt werden: setze Zähler auf 0, wiederhole für jeden Treffer, erhöhe Zähler um 1. Ein Suchalgorithmus kann mit einer Liste arbeiten: gehe jedes Element durch, prüfe auf Übereinstimmung, gib Fundstelle aus. Ein Bewegungsalgorithmus kann Figuren über den Bildschirm oder Roboter über ein Feld steuern.

Wichtig ist, dass Lernende nicht nur Blöcke zusammensetzen, sondern verstehen, welcher Block welchen Schritt ihres Entwurfs umsetzt.

Testen mit geeigneten Testfällen

Zuverlässige Programme entstehen erst dann, wenn sie mit passenden Eingaben überprüft werden, denn ein scheinbar funktionierender Algorithmus kann unter anderen Bedingungen falsche Ergebnisse liefern oder an übersehenen Sonderfällen scheitern.

Testen bedeutet, vorab zu überlegen, welche Eingaben ein Programm erhalten kann und welches Ergebnis jeweils erwartet wird. Für einen Algorithmus „größte Zahl finden“ können Testfälle sein: eine normale Liste, eine Liste mit nur einem Element, nur gleiche Zahlen, negative Zahlen, eine leere Liste. Für eine Gerade-Ungerade-Prüfung können Testfälle 2, 7, 0, -4 sein. Beim Testen werden Eingabe, erwartete Ausgabe, tatsächliche Ausgabe verglichen. So lernen Schülerinnen und Schüler, dass gute Tests nicht nur den Normalfall prüfen, sondern auch Randfälle und Fehlerquellen einbeziehen.

Fehler finden und verbessern

Fehleranalyse gehört wesentlich zum algorithmischen Arbeiten, weil unklare Bedingungen, falsche Reihenfolgen, ungeeignete Daten oder vergessene Sonderfälle oft erst durch systematisches Prüfen und schrittweises Verbessern erkannt werden.

Typische Fehler sind vergessene Startwerte, falsche Bedingungen, unendliche Wiederholungen, unklare Vergleiche, fehlende Ausgaben. Ein Zähler wird vielleicht nie erhöht, weil die Bedingung falsch gesetzt wurde. Eine Liste wird nicht vollständig durchsucht, weil die Wiederholung zu früh endet. Ein Wegalgorithmus führt gegen ein Hindernis, weil das Raster nicht richtig geprüft wurde. Hilfreich sind dabei Trockenläufe, Zwischenausgaben, Partnerkontrolle, Markieren einzelner Schritte. Debuggen bedeutet also nicht bloß Reparieren, sondern bewusstes Nachdenken über die Ursache des Problems.

Lösungen vergleichen und bewerten

Mehrere Algorithmen können dieselbe Aufgabe lösen, unterscheiden sich aber oft in Verständlichkeit, Länge, Übersicht oder Zweckmäßigkeit, weshalb der Vergleich verschiedener Lösungswege ein wichtiger Teil informatischer Kompetenz ist.

Eine Sortieraufgabe kann sehr detailliert oder eher kompakt beschrieben werden. Eine Suchaufgabe kann auf einer ungeordneten Liste Zeile für Zeile ablaufen oder auf einer sortierten Liste gezielter organisiert sein. Ein Algorithmus kann korrekt sein, aber schwer verständlich. Ein anderer ist leicht lesbar, aber enthält unnötige Wiederholungen. Kriterien für die Bewertung sind Korrektheit, Eindeutigkeit, Verständlichkeit, Vollständigkeit, Zweckmäßigkeit. Beispiele: zwei verschiedene Wege durch ein Raster, zwei Zählverfahren für Stimmen, zwei Sortierbeschreibungen für Karten. Solche Vergleiche fördern Einsicht, dass Informatik nicht nur richtig oder falsch kennt, sondern auch bessere und schlechtere Lösungen.

Typische Unterrichtsbeispiele

Anschauliche Beispiele aus Schule, Spiel und Alltag erleichtern den Zugang besonders stark, weil sie algorithmisches Entwerfen, Darstellen, Implementieren und Testen an vertrauten Inhalten sichtbar und praktisch erfahrbar machen.

Geeignete Unterrichtsbeispiele sind: größte Zahl finden, Stimmen auszählen, Würfelpunkte addieren, Spielfigur steuern, Namen alphabetisch ordnen, Passwortlänge prüfen, Temperaturwerte vergleichen, Weg im Raster planen, Schatzsuche beschreiben, Klassendienst verteilen. Ein Projekt kann so ablaufen: Zuerst wird die Aufgabe besprochen, dann der Algorithmus als Schrittliste entworfen, anschließend in Scratch oder einer ähnlichen Umgebung umgesetzt und schließlich mit mehreren Testfällen geprüft. Gerade diese Verbindung von Entwurf, Formalisierung, Umsetzung und Test führt zu einem vollständigen Verständnis des Themas.

Kurz zusammengefasst

Von Zu
Problem Algorithmus
Algorithmus formale Darstellung
Darstellung Programm
Programm getestete Lösung

Merke: Die wichtigsten Zusammenhänge solltest du nicht nur wiedergeben, sondern an einem neuen Beispiel erklären und anwenden können.

Passende LearningSnacks

Übungen

Die Aufgaben setzen die Inhalte praktisch um. Bei jeder Aufgabe ist der konkrete Arbeitsauftrag ausdrücklich gekennzeichnet.

Vom Problem zur Schrittfolge

Ziel/Fokus: Entwurf, Zerlegung

Arbeitsauftrag: Die Lernenden erhalten Problemstellungen wie „größte Zahl finden“, „Stimmen auszählen“, „Weg durch ein Raster planen“ oder „Bücher alphabetisch ordnen“. In Partnerarbeit zerlegen sie die Aufgabe in Teilschritte, notieren Eingabe, Verarbeitung und Ausgabe und formulieren danach eine nummerierte Schrittfolge. Anschließend prüfen sie, ob ein anderer Partner den Ablauf ohne Rückfragen verstehen kann.

Material/Beispiele: Aufgabenkarten, Stifte, Raster, Arbeitsblatt

Sicherung/Reflexion: Schrittfolge, Klarheit

Klare und unklare Algorithmen vergleichen

Ziel/Fokus: Präzision, Sprache

Arbeitsauftrag: Die Klasse erhält Anweisungen wie „sortiere richtig“, „geh weiter“, „nimm die beste Zahl“ oder „zähl alles“. Die Lernenden markieren unklare Stellen, formulieren genauere Varianten und ergänzen fehlende Schritte. Danach testen sie beide Versionen an einem kleinen Beispiel und beschreiben, welche Fassung tatsächlich zuverlässig ausführbar ist.

Material/Beispiele: Satzkarten, Marker, Vergleichsbogen

Sicherung/Reflexion: Fehlerarten, Merksatz

Algorithmen formal darstellen

Ziel/Fokus: Formalisierung, Darstellung

Arbeitsauftrag: Die Lernenden wählen einen einfachen Algorithmus, etwa „größte Zahl finden“ oder „gerade Zahlen markieren“. Zuerst notieren sie die Lösung in Alltagssprache. Danach übertragen sie den Ablauf in eine Schrittliste und anschließend in Pseudocode mit Begriffen wie START, EINGABE, WENN, SONST, WIEDERHOLE, AUSGABE. Optional erstellen sie zusätzlich ein Flussdiagramm.

Material/Beispiele: Pseudocode, Diagramm, Vorlage, Karten

Sicherung/Reflexion: Vergleich, Übersicht

Datenstrukturen passend wählen

Ziel/Fokus: Datenwahl, Begründung Material, Vorlagen Liste, Tabelle, Raster, Zahlen, Namen

Arbeitsauftrag: Die Gruppen bearbeiten Aufgaben wie „Anwesenheit prüfen“, „Punkte vergleichen“, „Lieblingssport auszählen“ oder „einen Weg finden“. Sie entscheiden, ob eine Liste, Tabelle oder ein Raster sinnvoll ist, tragen die Daten passend ein und beschreiben anschließend den Lösungsweg algorithmisch. Danach vergleichen sie ihre Strukturwahl mit einer zweiten Gruppe.

Sicherung/Reflexion: Struktur, Nutzen

Einen Algorithmus implementieren

Ziel/Fokus: Umsetzung, Programmierung

Arbeitsauftrag: Die Lernenden setzen einen zuvor entworfenen Algorithmus um, etwa „zähle Treffer“, „bewege Figur zum Ziel“, „finde die größte Zahl in einer Liste“ oder „prüfe gerade, ungerade“. Dabei ordnen sie jedem Entwurfsschritt passende Blöcke oder Befehle zu. Wichtig ist, dass sie nicht nur bauen, sondern jeden Programmteil einem eigenen Planungsschritt zuordnen.

Material/Beispiele: Scratch, Open Roberta, MakeCode, Computer

Sicherung/Reflexion: Entwurf, Code

Testfälle planen und durchführen

Ziel/Fokus: Testen, Kontrolle Material, Hilfen Testblatt, Eingaben, Erwartung, Ergebnis

Arbeitsauftrag: Zu einem fertigen Algorithmus planen die Lernenden mehrere Testfälle. Für „größte Zahl finden“ können das normale Listen, gleiche Zahlen, negative Zahlen oder nur ein Element sein. Für eine Wegsteuerung können verschiedene Start- und Zielpositionen gewählt werden. Die Lernenden notieren jeweils Eingabe, erwartetes Ergebnis und tatsächliches Ergebnis und vergleichen anschließend beides.

Sicherung/Reflexion: Testfall, Abweichung

Fehler finden und verbessern

Ziel/Fokus: Debugging, Korrektur

Arbeitsauftrag: Die Lehrkraft stellt einfache fehlerhafte Beispiele bereit, etwa einen Zähler ohne Startwert, eine Bedingung mit falschem Vergleich oder eine Wiederholung, die zu früh endet. Die Lernenden führen den Ablauf schrittweise durch, markieren die Problemstelle, beschreiben die Auswirkung und verbessern die Stelle begründet. Danach testen sie die korrigierte Version erneut.

Material/Beispiele: Fehlercode, Ablaufplan, Marker, Testfälle

Sicherung/Reflexion: Fehlerquelle, Lösung

Zwei Lösungswege vergleichen

Ziel/Fokus: Vergleich, Bewertung

Arbeitsauftrag: Die Gruppen erhalten zwei unterschiedliche Lösungswege zu derselben Aufgabe, etwa zwei Suchverfahren oder zwei Beschreibungen für ein Sortierproblem. Sie prüfen beide auf Korrektheit, Verständlichkeit, Vollständigkeit und Zweckmäßigkeit. Danach formulieren sie, welche Lösung sie bevorzugen und mit welchem Kriterium sie ihre Entscheidung begründen.

Material/Beispiele: zwei Algorithmen, Bewertungsraster, Karten

Sicherung/Reflexion: Kriterien, Urteil

Ein eigenes Mini-Projekt entwickeln

Ziel/Fokus: Projekt, Gesamtprozess Material, Themen Quiz, Spielfigur, Zähler, Wegsuche, Punkte

Arbeitsauftrag: Kleingruppen wählen ein kleines Vorhaben, etwa einen Punktzähler, eine einfache Quizfrage, eine Figursteuerung oder ein Sortierspiel. Sie dokumentieren zunächst Problem, Eingabe und Ausgabe, entwerfen danach den Algorithmus, stellen ihn formal dar, setzen ihn um und testen ihn mit mehreren Fällen. Am Ende präsentieren sie nicht nur das Produkt, sondern auch ihren Lösungsweg.

Sicherung/Reflexion: Produkt, Prozess

Rückblick und Kurzabfragen

Ziel/Fokus: Abruf, Festigung

Arbeitsauftrag: Zum Stundenende beantworten die Lernenden kurze Fragen wie „Welche Bausteine hat ein grundlegender Algorithmus?“, „Warum braucht man Testfälle?“, „Was ist der Unterschied zwischen Entwurf und Implementierung?“ oder „Wann ist eine Liste als Datenstruktur sinnvoll?“. In einer zweiten Runde formulieren sie selbst eine Mini-Aufgabe und nennen einen passenden Algorithmusbaustein oder einen möglichen Testfall.

Material/Beispiele: Quiz, Exit-Ticket, Karten, Whiteboard

Sicherung/Reflexion: Lernstand, Transfer

Kompetenzcheck

Überprüfe am Ende selbst, ob du die zentralen Kompetenzen dieses Kapitels sicher anwenden kannst:

Ich kann … Ja Noch üben
einfache Problemstellungen in Teilaufgaben zerlegen. ☐ ☐
für eine Aufgabe einen grundlegenden Algorithmus entwerfen. ☐ ☐
Eingaben, Verarbeitung und Ausgaben in einem Ablauf benennen. ☐ ☐
lineare Abläufe, Bedingungen und Wiederholungen in Algorithmen erkennen und nutzen. ☐ ☐
Algorithmen in Alltagssprache, Schrittliste, Pseudocode oder Flussdiagramm formal darstellen. ☐ ☐
einfache Variablen und geeignete Datenstrukturen wie Listen oder Tabellen verwenden. ☐ ☐
einen entworfenen Algorithmus in einer blockbasierten oder textbasierten Umgebung implementieren. ☐ ☐
Programme schrittweise ausführen und deren Verhalten beobachten. ☐ ☐
Testfälle planen und erwartete Ergebnisse formulieren. ☐ ☐
Fehler in Ablauf, Logik oder Darstellung erkennen und verbessern. ☐ ☐
die Korrektheit und Verständlichkeit eines Algorithmus begründet einschätzen. ☐ ☐
eigene Lösungen mit anderen Lösungswegen vergleichen und überarbeiten. ☐ ☐