Programmierung & Algorithmen
Abläufe entwickeln, Code nachvollziehen und Fehler mit einem ausführbaren Pseudocode-Trainer verstehen.
Problem, Eingabe und Ergebnis
Ein Algorithmus beschreibt endliche, nachvollziehbare Schritte zur Lösung einer Aufgabe. Definiere Eingaben, erwartetes Ergebnis und Randfälle vor der Implementierung. Beschreibe etwa, ob eine Summe negative Zahlen enthalten darf und was bei einer leeren Liste geschehen soll. Ein Ablaufdiagramm oder UML-Aktivitätsdiagramm unterstützt die Planung.
Variablen und Datentypen
Eine Variable hält einen Wert, der sich ändern kann. Zahlen, Wahrheitswerte und Zeichenketten haben unterschiedliche Operationen. Zuweisung ändert eine Variable; ein Vergleich erzeugt einen Wahrheitswert. Typumwandlungen, Rundung und Ganzzahldivision müssen passend zur Sprache geprüft werden.
SETZE punkte = 5 SETZE punkte = punkte + 2 AUSGABE punkte
Bedingungen und boolesche Logik
Eine Bedingung entscheidet zwischen Pfaden. UND verlangt beide Bedingungen, ODER mindestens eine und NICHT kehrt den Wahrheitswert um. Prüfe Grenzwerte wie genau 18 bei einer Altersgrenze. Verschachtelungen sollten lesbar bleiben; kurze Bedingungen und eindeutig benannte Variablen helfen.
SETZE alter = 18 WENN alter >= 18 DANN AUSGABE "volljährig" SONST AUSGABE "minderjährig" ENDEWENN
Schleifen und Terminierung
Eine Zählschleife bearbeitet einen bekannten Bereich. Eine kopfgesteuerte Schleife kann null Durchläufe haben. Initialisierung, Bedingung und Fortschritt müssen zusammenpassen; sonst entsteht eine Endlosschleife. Off-by-one-Fehler entstehen häufig durch falsche Anfangs- oder Endgrenzen.
SETZE summe = 0 FUER i VON 1 BIS 4 SETZE summe = summe + i ENDEFUER AUSGABE summe
Listen und Suchverfahren
Listen halten mehrere Werte. Indizes beginnen in vielen Sprachen bei null, aber nicht in allen. Eine lineare Suche prüft Elemente nacheinander. Binäre Suche halbiert den Suchbereich und setzt eine passende Sortierung voraus. Eine Laufzeitklasse beschreibt das Wachstum, keine garantierte Dauer in Sekunden.
SETZE werte = [4, 7, 2] AUSGABE werte[1] AUSGABE LAENGE(werte)
Funktionen und objektorientierte Grundlagen
Funktionen kapseln eine Aufgabe mit Parametern und optionalem Rückgabewert. Lokale Variablen begrenzen Seiteneffekte. Eine Klasse beschreibt einen Typ; ein Objekt ist eine Instanz. Kapselung schützt interne Zustände. Vererbung sollte eine fachliche ist-ein-Beziehung abbilden, nicht nur Code sparen. Der kleine Trainer konzentriert sich auf Ausdrücke, Bedingungen und Schleifen; eigene Funktionen oder Klassen werden dort nicht ausgeführt.
Debugging und Tests
Prüfe Syntaxfehler, Laufzeitfehler und fachliche Fehler getrennt. Ein Programm kann ohne Ausnahme laufen und trotzdem ein falsches Ergebnis liefern. Vergleiche Variablenzustände nach jedem Schritt. Tests mit normalen Eingaben, Randwerten und ungültigen Daten helfen beim Eingrenzen. Ändere möglichst eine Ursache und prüfe erneut.
Pseudocode im Trainer
FISIBase verwendet eine ausdrücklich definierte Lernnotation: SETZE, AUSGABE, WENN/DANN/SONST/ENDEWENN, SOLANGE/TUE/ENDESOLANGE und FUER/VON/BIS/ENDEFUER. Zählschleifen steigen inklusive Endwert um eins. Listenindizes beginnen bei null; / liefert eine Zahlendivision. Kommentare beginnen mit //. Es gibt keinen Zugriff auf Dateien, Netzwerk oder JavaScript. Das Schrittlimit beendet nicht terminierende Programme.