IM6 - Programme vergleichen und verbessern

IM6 - Programme vergleichen und verbessern
Einleitung
In diesem aiMOOC lernst Du, wie Du verschiedene Programme für dieselbe Aufgabe vergleichst und gezielt verbesserst. Dabei geht es nicht darum, möglichst komplizierten Code zu schreiben. Du sollst erkennen, welche Lösung verständlich, angemessen kurz und zuverlässig ist. Außerdem lernst Du, wie eine Lösung so aufgebaut werden kann, dass Du sie später wiederverwenden kannst.
Ein Programm besteht aus Anweisungen. Diese Anweisungen bilden einen Algorithmus, also eine eindeutige Folge von Schritten zur Lösung einer Aufgabe. In grafischen Programmiersprachen wie Scratch werden solche Anweisungen als Blöcke zusammengesetzt. In textbasierten Programmiersprachen stehen sie als Quelltext in Zeilen. In beiden Fällen gilt: Gute Programme sollen nicht nur funktionieren, sondern auch so geschrieben sein, dass andere Menschen sie prüfen, verstehen und verändern können.

Das Bild zeigt eine Scratch-Programmieroberfläche. Auch bei Blockprogrammen kann derselbe Ablauf auf verschiedene Arten programmiert werden. Genau diese Unterschiede untersuchst Du in diesem aiMOOC.
Lernziele
Nach diesem aiMOOC kannst Du
- Programme vergleichen: mehrere Lösungen derselben Aufgabe anhand vorher festgelegter Kriterien untersuchen.
- Verständlichkeit: erklären, warum Namen, Struktur und übersichtliche Wiederholungen das Lesen eines Programms erleichtern.
- Programmlänge: unnötige Wiederholungen erkennen, ohne automatisch anzunehmen, dass die kürzeste Lösung immer die beste ist.
- Zuverlässigkeit: mit geeigneten Testfällen prüfen, ob ein Programm erwartete Ergebnisse liefert.
- Schleifen: wiederholte Anweisungen zusammenfassen.
- Unterprogramme: einen eigenen wiederverwendbaren Programmteil planen und mit einem Parameter flexibel machen.
- Verbessern: eine Lösung schrittweise verändern, erneut testen und begründen, warum die Änderung sinnvoll ist.
Grundidee: Gleiche Aufgabe, verschiedene Programme
Für eine Aufgabe kann es mehrere richtige Lösungswege geben. Zwei Programme können am Ende dasselbe Ergebnis erzeugen und trotzdem sehr unterschiedlich aufgebaut sein. Deshalb reicht die Frage „Funktioniert es?“ für einen guten Vergleich nicht aus.
Ein einfaches Beispiel ist das Zeichnen eines Quadrats. Die Figur soll vier gleich lange Seiten zeichnen und sich nach jeder Seite um 90 Grad drehen. Diese Aufgabe ist bewusst einfach, damit Du Dich auf die Qualität der Lösung konzentrieren kannst.

Ein Ablaufdiagramm zeigt, dass Programme als Folge von Schritten und Entscheidungen beschrieben werden können. Beim Vergleichen suchst Du nicht nur nach dem richtigen Endergebnis, sondern auch nach einer sinnvollen Struktur des Lösungswegs.
Drei Lösungen für dieselbe Aufgabe
Die folgenden Beispiele sind vereinfachter Pseudocode. Sie orientieren sich an Scratch-Blöcken, damit Du die Struktur leicht vergleichen kannst.
Aufgabe: Zeichne ein Quadrat mit einer Seitenlänge von 60 Schritten.
Lösung A – alles einzeln notiert
gehe 60 Schritte drehe dich 90 Grad gehe 60 Schritte drehe dich 90 Grad gehe 60 Schritte drehe dich 90 Grad gehe 60 Schritte drehe dich 90 Grad
Lösung B – Wiederholung mit Schleife
wiederhole 4-mal
gehe 60 Schritte
drehe dich 90 Grad
Lösung C – wiederverwendbarer eigener Block
definiere zeichneQuadrat seitenlaenge
wiederhole 4-mal
gehe seitenlaenge Schritte
drehe dich 90 Grad
zeichneQuadrat 60
Alle drei Lösungen können für die angegebene Aufgabe ein Quadrat zeichnen. Trotzdem sind sie nicht gleich gut für jeden Zweck.
Erster Vergleich: Verständlichkeit
Verständlichkeit bedeutet: Eine andere Person kann möglichst schnell erkennen, was das Programm tun soll und wie es aufgebaut ist.
Lösung A ist zunächst leicht zu verfolgen, weil jeder Schritt einzeln dasteht. Bei längeren Programmen wird diese Art jedoch schnell unübersichtlich. Eine kleine Änderung muss an mehreren Stellen vorgenommen werden.
Lösung B zeigt die Idee des Quadrats deutlicher: Eine Seite zeichnen und die Drehung werden viermal wiederholt. Die Schleife macht die Struktur sichtbar.
Lösung C ergänzt einen sprechenden Namen: zeichneQuadrat. Dadurch steht im Hauptprogramm direkt, was passieren soll. Die Einzelheiten sind im eigenen Block gebündelt. Ein eigener Block entspricht der Idee eines Unterprogramms: Ein Teil des Programms übernimmt eine bestimmte Aufgabe und kann später erneut aufgerufen werden.

Auch in textbasiertem Quellcode helfen klare Strukturen und aussagekräftige Namen dabei, den Ablauf zu verstehen. Übersichtlichkeit ist deshalb kein Zusatz, sondern ein wichtiges Qualitätsmerkmal.
Zweiter Vergleich: Länge
Länge bedeutet hier nicht einfach die Zahl der sichtbaren Zeichen. Für Klasse 6 ist eine praktische Frage hilfreicher: Wie viele Anweisungen müssen wir schreiben, lesen und später ändern?
Bei einem einzigen Quadrat ist Lösung B besonders kurz. Die wiederholten Befehle stehen nur einmal im Schleifenkörper. Lösung C benötigt zusätzlich die Definition des eigenen Blocks. Deshalb ist C für nur einen einzigen Aufruf nicht automatisch kürzer als B.
Sobald aber mehrere Quadrate mit verschiedenen Größen gezeichnet werden sollen, wird Lösung C interessant:
zeichneQuadrat 20 zeichneQuadrat 40 zeichneQuadrat 80
Jetzt muss die eigentliche Zeichenlogik nicht erneut kopiert werden. Die Lösung wächst nur um weitere Aufrufe. Das zeigt eine wichtige Regel: Der kürzeste Code ist nicht immer der beste Code. Gute Länge bedeutet vor allem, unnötige Wiederholungen zu vermeiden und trotzdem verständlich zu bleiben.
Dritter Vergleich: Zuverlässigkeit
Zuverlässigkeit bedeutet in diesem aiMOOC: Das Programm liefert bei den vorgesehenen Eingaben wiederholt das erwartete Ergebnis.
Lösung A enthält viele wiederholte Stellen. Wenn bei einer der vier Drehungen versehentlich 80 statt 90 Grad eingetragen wird, kann das Ergebnis falsch werden. Weil ähnliche Befehle mehrfach vorkommen, kann ein solcher Fehler beim Lesen leichter übersehen werden.
Lösung B enthält die Seitenlänge und den Winkel jeweils nur einmal. Dadurch gibt es weniger Stellen, an denen sich beim Ändern widersprüchliche Werte einschleichen können.
Lösung C hat zusätzlich einen Parameter. Dadurch kann dieselbe geprüfte Zeichenlogik mit verschiedenen Seitenlängen verwendet werden. Allerdings gilt auch hier: Wenn der Fehler in der Definition des eigenen Blocks steckt, betrifft er alle Aufrufe. Deshalb ersetzt Wiederverwendung niemals das Testen.
Ein Softwaretest kann zeigen, dass bestimmte Testfälle erfolgreich sind. Er beweist bei größeren Programmen jedoch nicht, dass überhaupt kein Fehler mehr vorhanden ist. Deshalb prüfst Du sinnvoll ausgewählte Fälle.
Testfälle für die Quadrat-Lösung
Ein Testfall beschreibt, was Du eingibst, was Du erwartest und was tatsächlich passiert.
| Testfall | Eingabe | Erwartetes Ergebnis | Wozu dient der Test? |
|---|---|---|---|
| Kleines Quadrat | Seitenlänge 20 | Vier gleich lange Seiten mit rechten Winkeln | Prüft, ob kleine Werte funktionieren |
| Mittleres Quadrat | Seitenlänge 60 | Quadrat wie in der Ausgangsaufgabe | Prüft den bekannten Standardfall |
| Großes Quadrat | Seitenlänge 100 | Größeres Quadrat mit gleicher Struktur | Prüft die Wiederverwendbarkeit mit anderem Wert |
Nach jeder Änderung am Programm solltest Du mindestens die wichtigen Testfälle erneut ausführen. So erkennst Du, ob Deine Verbesserung unbeabsichtigt etwas verschlechtert hat.
Use-Case 1: Übersichtlicher Code
Stell Dir vor, Du öffnest ein Programm mit zwanzig fast gleichen Bewegungsblöcken. Du möchtest nur herausfinden, wie eine Figur ihr Muster zeichnet. Wenn viele Anweisungen mehrfach hintereinander stehen, musst Du viel lesen und vergleichen.
Eine Schleife kann solche Wiederholungen zusammenfassen. Dadurch wird die Grundidee sichtbarer: Was wird wiederholt und wie oft? Für übersichtlichen Code helfen außerdem sinnvolle Namen, Einrückungen beziehungsweise Blockgruppen und kleine Programmteile mit klaren Aufgaben.

Du musst den gezeigten C++-Code nicht verstehen. Das Bild zeigt nur, dass textbasierter Quellcode ebenfalls strukturiert dargestellt wird. Beim Lernen ist entscheidend, dass Du die Struktur eines Programms erkennst, nicht dass Du schon jede Programmiersprache kennst.
Checkliste für übersichtlichen Code
- Sprechende Namen: Kann man an einem Namen erkennen, wofür ein Block oder eine Variable da ist?
- Wiederholung: Werden gleiche Anweisungen sinnvoll mit einer Schleife zusammengefasst?
- Struktur: Sind zusammengehörige Befehle als Einheit erkennbar?
- Erklärung: Ist nur dort eine Zusatz-Erklärung nötig, wo die Idee nicht schon durch den Code selbst klar wird?
- Änderbarkeit: Muss eine wichtige Zahl oder Regel nur an möglichst wenigen Stellen geändert werden?
Use-Case 2: Wiederverwendbare Lösung
Eine Lösung ist wiederverwendbar, wenn Du sie für ähnliche Aufgaben erneut einsetzen kannst, ohne ihren Kern jedes Mal zu kopieren.
Beim Quadrat kann der eigene Block zeichneQuadrat mehrfach aufgerufen werden. Der Parameter seitenlaenge bestimmt dabei, wie groß das Quadrat wird. So bleibt die Zeichenlogik gleich, während die Eingabe verändert wird.
Ein Parameter ist also ein Platzhalter für einen Wert, der beim Aufruf übergeben wird. In Scratch können eigene Blöcke mit Eingaben eine ähnliche Rolle übernehmen wie Unterprogramme mit Parametern in anderen Programmiersprachen.
zeichneQuadrat 30 zeichneQuadrat 50 zeichneQuadrat 70
Wenn später entschieden wird, dass jedes Quadrat nach dem Zeichnen noch eine kurze Pause machen soll, kann diese Ergänzung in der Definition des eigenen Blocks vorgenommen werden. Alle Aufrufe verwenden danach die neue Version. Genau das ist ein Vorteil zentraler, wiederverwendbarer Lösungen.
Kriterienraster zum Vergleichen
Bevor Du zwei Programme bewertest, legst Du Kriterien fest. So wird aus einem bloßen Eindruck eine begründete Bewertung.
| Kriterium | 3 Punkte – sehr gut | 2 Punkte – gut | 1 Punkt – teilweise | 0 Punkte – noch zu verbessern |
|---|---|---|---|---|
| Verständlichkeit | Zweck und Ablauf sind schnell erkennbar; Namen und Struktur sind klar. | Der Ablauf ist verständlich; einzelne Stellen könnten klarer sein. | Man versteht die Lösung erst nach längerem Suchen. | Zweck oder Ablauf sind kaum nachvollziehbar. |
| Länge | Keine unnötigen Wiederholungen; die Lösung bleibt trotzdem gut lesbar. | Nur wenige unnötige Wiederholungen. | Mehrere gleiche Teile werden kopiert. | Sehr viele Wiederholungen machen Änderungen aufwendig. |
| Zuverlässigkeit | Mehrere passende Testfälle liefern die erwarteten Ergebnisse. | Die wichtigsten Testfälle funktionieren. | Nur ein einfacher Fall wurde geprüft oder einzelne Fälle schlagen fehl. | Die Lösung wurde nicht sinnvoll getestet oder liefert falsche Ergebnisse. |
| Wiederverwendbarkeit | Ein klarer Programmteil kann mit unterschiedlichen Eingaben erneut genutzt werden. | Der Programmteil kann erneut genutzt werden, ist aber wenig flexibel. | Wiederverwendung ist nur durch Kopieren möglich. | Die Lösung ist stark an einen einzigen Fall gebunden. |
| Änderbarkeit | Eine wichtige Änderung muss nur an einer zentralen Stelle vorgenommen werden. | Änderungen sind an wenigen Stellen nötig. | Änderungen müssen an mehreren ähnlichen Stellen erfolgen. | Änderungen sind schwer planbar und führen leicht zu Widersprüchen. |
Wichtig: Punkte helfen beim Vergleichen, ersetzen aber keine Begründung. Zwei Lösungen können dieselbe Punktzahl erreichen und trotzdem unterschiedliche Stärken haben.
Beispielbewertung der drei Quadrat-Lösungen
| Lösung | Verständlichkeit | Länge bei einem Quadrat | Zuverlässigkeit nach Tests | Wiederverwendbarkeit | Begründung |
|---|---|---|---|---|---|
| A | 2 | 1 | 2 | 1 | Direkt lesbar, aber viele Wiederholungen und viele Änderungsstellen |
| B | 3 | 3 | 3 | 2 | Schleife zeigt die Struktur sehr klar und vermeidet Wiederholung |
| C | 3 | 2 | 3 | 3 | Für einen einzelnen Aufruf etwas aufwendiger, dafür besonders gut wiederverwendbar |
Diese Beispielpunkte sind keine ewige Wahrheit. Wenn sich die Aufgabe ändert, kann auch die Bewertung anders ausfallen. Für zehn verschieden große Quadrate wäre die Wiederverwendbarkeit von Lösung C viel wichtiger als bei nur einem Quadrat.
Programme systematisch verbessern
Beim Verbessern ist eine Reihenfolge hilfreich:
- Anforderung: Beschreibe zuerst genau, was das Programm leisten soll.
- Testfall: Lege einfache und schwierige Testfälle fest.
- Vergleich: Untersuche mindestens zwei Lösungen mit demselben Kriterienraster.
- Verbesserung: Ändere möglichst gezielt nur einen Aspekt, zum Beispiel eine Wiederholung durch eine Schleife.
- Testen: Führe die Testfälle erneut aus.
- Reflexion: Begründe, ob Verständlichkeit, Länge oder Zuverlässigkeit wirklich besser geworden sind.
So vermeidest Du, dass Du Code nur „schöner“ machst, ohne zu prüfen, ob er noch richtig funktioniert.
Typische Verbesserungen
- Schleife statt Kopieren: Wiederholte Befehle werden gebündelt.
- Eigener Block statt langer Hauptstrecke: Ein Teilproblem erhält einen passenden Namen.
- Parameter statt fester Zahl: Ein Programmteil kann mit verschiedenen Werten arbeiten.
- Variable statt verstreuter Werte: Ein wichtiger Wert kann zentral verändert werden.
- Mehrere Testfälle statt nur einmal Ausprobieren: Unterschiedliche Eingaben decken mehr mögliche Fehler auf.
Was bedeutet „besser“?
Ein Programm ist nicht allein deshalb besser, weil es kürzer ist. Manchmal macht eine zusätzliche Zeile oder ein eigener Block die Lösung viel verständlicher. Ebenso ist ein sehr verständliches Programm nicht zuverlässig, wenn es bei wichtigen Eingaben falsche Ergebnisse liefert.
Darum vergleichst Du immer mehrere Kriterien gleichzeitig. Für diesen aiMOOC stehen drei Kernfragen im Mittelpunkt:
- Verständlichkeit: Kann ich schnell erklären, was das Programm tut?
- Länge: Vermeidet das Programm unnötige Wiederholungen?
- Zuverlässigkeit: Liefert es bei passenden Testfällen die erwarteten Ergebnisse?
Als vierte Frage kommt bei den Use-Cases besonders die Wiederverwendbarkeit hinzu: Kann ich einen guten Programmteil später erneut nutzen?
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Warum ist Lösung B mit einer Schleife oft übersichtlicher als eine lange Folge gleicher Befehle? (Weil die Wiederholung als gemeinsame Struktur erkennbar wird) (!Weil Schleifen jedes Programm automatisch fehlerfrei machen) (!Weil Schleifen immer nur einmal ausgeführt werden) (!Weil man dann keine Testfälle mehr braucht)
Was beschreibt das Kriterium Verständlichkeit am besten? (Man kann Zweck und Ablauf des Programms gut erkennen) (!Das Programm hat möglichst viele Blöcke) (!Das Programm enthält nur Zahlen) (!Das Programm wird niemals verändert)
Warum ist die kürzeste Lösung nicht automatisch die beste? (Weil Verständlichkeit und Zuverlässigkeit ebenfalls wichtig sind) (!Weil kurze Programme grundsätzlich falsch sind) (!Weil lange Programme immer schneller laufen) (!Weil jedes Programm gleich lang sein muss)
Wozu dient ein Testfall? (Er prüft eine festgelegte Eingabe mit einem erwarteten Ergebnis) (!Er ersetzt den gesamten Programmcode) (!Er macht aus einer Schleife eine Variable) (!Er zählt nur die sichtbaren Blöcke)
Welcher Vorteil entsteht, wenn eine Seitenlänge als Parameter übergeben wird? (Derselbe Programmteil kann mit verschiedenen Seitenlängen genutzt werden) (!Das Programm braucht keine Befehle mehr) (!Jede Seitenlänge wird automatisch gleich groß) (!Der Parameter verhindert jeden Programmfehler)
Was ist beim Verbessern eines Programms nach einer Änderung besonders wichtig? (Die passenden Testfälle erneut ausführen) (!Alle Namen durch einzelne Buchstaben ersetzen) (!Jede Schleife entfernen) (!Nur die Zahl der Zeilen zählen)
Welche Lösung ist für viele verschieden große Quadrate besonders wiederverwendbar? (Ein eigener Block mit einem Parameter für die Seitenlänge) (!Vier kopierte Bewegungsfolgen ohne Parameter) (!Eine Lösung ohne erkennbare Struktur) (!Ein Programm ohne Eingabemöglichkeit)
Warum kann kopierter Code Änderungen erschweren? (Weil dieselbe Änderung an mehreren Stellen nötig sein kann) (!Weil Kopieren die Bildschirmgröße verändert) (!Weil kopierter Code nie ausgeführt werden kann) (!Weil dadurch automatisch eine Schleife entsteht)
Was gehört zu einer begründeten Programmbewertung? (Ein Kriterienraster und eine Begründung zu den Beobachtungen) (!Nur die Lieblingsfarbe der Programmieroberfläche) (!Nur die Anzahl der verwendeten Figuren) (!Nur der Name der Datei)
Was bedeutet Zuverlässigkeit in diesem aiMOOC? (Das Programm liefert bei vorgesehenen Eingaben wiederholt das erwartete Ergebnis) (!Das Programm ist möglichst bunt gestaltet) (!Das Programm enthält keine Schleifen) (!Das Programm ist immer die kürzeste Lösung)
Memory
| Verständlichkeit | Zweck und Ablauf sind gut erkennbar |
| Programmlänge | unnötige Wiederholungen werden vermieden |
| Zuverlässigkeit | erwartete Ergebnisse werden mit Testfällen geprüft |
| Schleife | wiederholt einen Anweisungsblock |
| Parameter | übergibt einen veränderlichen Wert |
| Unterprogramm | bündelt einen erneut nutzbaren Programmteil |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Übersichtlicher Code | Schleife statt unnötiger Wiederholungen |
| Wiederverwendbare Lösung | eigener Block mit Parameter |
| Zuverlässiges Prüfen | mehrere passende Testfälle |
| Sprechender Name | zeichneQuadrat statt unklarer Kurzbezeichnung |
| Gezielte Verbesserung | eine Änderung durchführen und erneut testen |
...
Kreuzworträtsel
| Schleife | Welche Kontrollstruktur wiederholt einen Anweisungsblock? |
| Parameter | Wie heißt ein Platzhalter für einen beim Aufruf übergebenen Wert? |
| Testfall | Wie heißt eine festgelegte Prüfung mit Eingabe und erwartetem Ergebnis? |
| Funktion | Wie kann ein benannter wiederverwendbarer Programmteil genannt werden? |
| Lesbarkeit | Welches Merkmal beschreibt, wie leicht Code verstanden werden kann? |
| Variable | Wie heißt ein benannter Speicherplatz für einen veränderlichen Wert? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Zwei Wege zum Quadrat: Baue in Scratch zwei Lösungen für ein Quadrat: einmal mit einzeln wiederholten Blöcken und einmal mit einer Schleife. Beschreibe, welche Lösung Du schneller verstehst.
- Raster anwenden: Bewerte die beiden Quadrat-Lösungen mit den Kriterien Verständlichkeit, Länge und Zuverlässigkeit. Begründe jede Punktzahl in einem Satz.
- Testplan: Erstelle drei Testfälle für einen eigenen Block, der ein Quadrat zeichnet. Nutze drei unterschiedliche Seitenlängen.
- Namen verbessern: Erfinde fünf unklare Block- oder Variablennamen und ersetze sie durch verständliche Namen. Begründe zwei Deiner Verbesserungen.
Standard
- Wiederholungen finden: Untersuche ein eigenes Scratch-Projekt und markiere Stellen, an denen gleiche Blöcke mehrfach vorkommen. Ersetze mindestens eine Stelle durch eine Schleife.
- Eigenen Block bauen: Erstelle einen eigenen Block für eine wiederkehrende Aufgabe, zum Beispiel Quadrat zeichnen oder Figur begrüßen. Verwende mindestens einen Parameter.
- Code-Tandem: Tausche Dein Programm mit einer anderen Person. Bewertet eure Lösungen gegenseitig mit demselben Kriterienraster und besprecht Unterschiede in der Bewertung.
- Absichtlicher Fehler: Baue in eine funktionierende Lösung einen kleinen Fehler ein. Lass eine andere Person mit Testfällen herausfinden, an welcher Stelle das Problem liegt.
Schwer
- Vorher und nachher: Nimm ein längeres Programm mit Wiederholungen und verbessere es schrittweise. Dokumentiere für jede Änderung, welches Kriterium besser werden soll und ob die Testfälle danach noch funktionieren.
- Mini-Bibliothek: Entwickle drei eigene Blöcke, die Du in mehreren Projekten verwenden könntest. Beschreibe für jeden Block Eingaben, Aufgabe und mögliche Testfälle.
- Kriterien gewichten: Vergleiche zwei Programme für dieselbe Aufgabe und entscheide, ob Verständlichkeit, Länge oder Zuverlässigkeit in diesem Fall am wichtigsten ist. Begründe Deine Gewichtung mit einem konkreten Einsatzszenario.
- Erklärvideo produzieren: Erstelle ein kurzes Video oder eine Bildschirmaufnahme, in der Du zwei Lösungen derselben Aufgabe vergleichst. Zeige mindestens einen Testfall und erkläre, warum Deine verbesserte Lösung übersichtlicher oder wiederverwendbarer ist.


Lernkontrolle
- Neue Aufgabe übertragen: Eine Figur soll ein regelmäßiges Dreieck zeichnen. Entwickle zwei unterschiedliche Lösungen und entscheide mit dem Kriterienraster, welche Du für ein größeres Projekt verwenden würdest.
- Änderungsfehler erklären: Ein Programm enthält dieselbe Zahl an sieben Stellen. Erkläre, warum spätere Änderungen dadurch unzuverlässiger werden können, und schlage eine bessere Struktur vor.
- Testfälle auswählen: Ein eigener Block zeichnet Quadrate mit frei wählbarer Seitenlänge. Wähle drei sinnvolle Testwerte und begründe, warum gerade diese Werte unterschiedliche Situationen prüfen.
- Kürzer oder verständlicher: Lösung X hat weniger Blöcke, Lösung Y hat einen klar benannten eigenen Block und eine zusätzliche Zeile. Begründe, welche Lösung Du bevorzugst und unter welchen Bedingungen sich Deine Entscheidung ändern könnte.
- Projektplanung: Plane ein Muster aus fünf Quadraten verschiedener Größe. Erkläre, wie ein Parameter und ein eigener Block verhindern können, dass Du denselben Code immer wieder kopierst.
- Kriterienkonflikt: Beschreibe eine Situation, in der eine sehr kurze Lösung schwerer zu verstehen ist. Formuliere eine Verbesserung, ohne die Zuverlässigkeit zu verringern.
Lernnachweis
Für einen Lernnachweis zu diesem Thema solltest Du zeigen, dass Du nicht nur Begriffe kennst, sondern Programme begründet beurteilen und verbessern kannst.
- Du kannst mindestens zwei Lösungen derselben Aufgabe vorstellen.
- Du kannst die Lösungen anhand von Verständlichkeit, Länge und Zuverlässigkeit vergleichen.
- Du kannst ein Kriterienraster nachvollziehbar ausfüllen und Deine Bewertung begründen.
- Du kannst mit mindestens drei Testfällen überprüfen, ob eine Lösung erwartete Ergebnisse liefert.
- Du kannst mindestens eine unnötige Wiederholung durch eine Schleife ersetzen.
- Du kannst einen wiederverwendbaren eigenen Block mit einem Parameter planen oder umsetzen.
- Du kannst erklären, warum die kürzeste Lösung nicht automatisch die beste ist.
- Du kannst eine Verbesserung vornehmen, danach erneut testen und die Wirkung der Änderung beschreiben.
OERs zum Thema
Der Wikipedia-Artikel zur Programmierung bietet weiterführende Informationen zu Programmen, Quelltext und grundlegenden Konzepten.
Zusätzlich passen die Artikel Quelltext, Schleife (Programmierung), Unterprogramm, Parameter (Informatik) und Softwaretest zu diesem Lernbereich.
Verknüpfte Lernbereiche
aiMOOC-Projekte
NEWSLernweltNOAH fragen