Die Lektionen selbst stehen inzwischen als Kurs in sechs Stufen bereit. Dieser Beitrag entwirft einen interaktiven Kurs, in dem man das Programmieren des TI-59 Schritt für Schritt lernt, vom ersten Tastendruck bis zum eigenen Spiel. Der Kurs läuft auf einem TI-59, der als Anwendung auf einem klassischen Macintosh unter System 7.6.1 lebt, mit Tastenfeld, Leuchtziffernanzeige, Drucker PC-100C und Magnetkarten. Es gibt zwei Lernwege: Variante A, den Tastenweg, bei dem das Programm Taste für Taste im LRN-Modus entsteht, und Variante B, den Codeweg, bei dem man ein Listing schreibt, das übersetzt und eingetastet wird. Dieser Entwurf beschreibt Variante A. Variante B baut auf deren Prüfwerkzeug auf und folgt in einem eigenen Beitrag.

Der TI-59 auf dem Macintosh, rechts daneben der Drucker PC-100C

Ausgangslage

Die Macintosh-Anwendung des TI-59 ist mit Symantec Visual Architect, der THINK Class Library 2.0 und Symantec C++ 7 auf einem emulierten Macintosh (Basilisk II) gebaut. Darunter arbeitet ein Emulator, der sich Taste für Taste wie das Original verhält.

Für den Kurs ist entscheidend, was bereits vorhanden ist:

  • Tasten drücken die emulierte Tastaturmatrix. Was dann geschieht, entscheidet der emulierte TI-59 selbst, wie beim echten Gerät.
  • Programme lassen sich auf Magnetkarten speichern und wieder einlesen. So läuft die Mondlandung, ein TI-57-Programm aus L’Ordinateur de Poche, das auf dem TI-59 126 Schritte belegt.
  • Der Drucker protokolliert Rechnungen und druckt Listings.
  • Anleitungen erscheinen in einem eigenen, formatierten Fenster und sind als SimpleText-Dokumente auf dem Macintosh bearbeitbar.

Die Karte Mondlandung.u59 ist eingelesen; nach dem ersten Bremsschub zeigt die Anzeige Geschwindigkeit und Höhe: 100.2100

Die Anleitung zur Mondlandung im eigenen Fenster neben TI-59 und Drucker

Zwei Varianten, A zuerst

Variante A: TastenwegVariante B: Codeweg
EingabeTasten am TI-59, im LRN-ModusListing in einem Editorfeld (Lbl A, x², +, 1, =, R/S)
Was man lerntdas Gerät: Modi, Schrittzähler, Tastencodes, Bearbeiten mit SST/BST/Ins/Deldie Struktur eines Programms: Labels, Sprünge, Unterprogramme
PrüfungZustand des TI-59 nach jedem Schritt, Probelauf am EndeÜbersetzen mit Zeilenfehlern, derselbe Probelauf
Rückweg—Programmspeicher → Listing

Variante A kommt zuerst. Sie ist näher am Gerät, und ihr Prüfer (Zustandsabfrage und Probelauf) ist genau das Werkzeug, das Variante B danach zum Testen braucht.

Didaktischer Aufbau

Der Kurs folgt vier Grundsätzen:

  1. Ein neues Konzept pro Lektion. Jede Lektion führt genau eine Idee ein (Speicher, Programm, Label, Verzweigung, Schleife, Unterprogramm) und nur die Tasten, die sie dafür braucht.
  2. Vom Rechnen zum Programm. Die Lernenden beginnen dort, wo sie den Rechner schon kennen, beim Rechnen von Hand. Ein Programm ist dann zunächst nichts anderes als eine aufgezeichnete Rechnung. Erst danach kommen Ablaufsteuerung und Struktur.
  3. Vormachen, mitmachen, selbst machen. Innerhalb einer Lektion nimmt die Führung ab: erst Taste für Taste angeleitet, dann mit Lücken, zuletzt eine Aufgabe ohne Anleitung.
  4. Wiederholen, was trägt. Jede Lektion verwendet die Inhalte der vorigen weiter. Was in Lektion 2 neu war, ist in Lektion 4 selbstverständlich und in Lektion 10 Werkzeug.

Aufbau einer Lektion

Jede Lektion hat dieselben fünf Teile, damit man sich auf den Inhalt konzentrieren kann statt auf die Form:

TeilInhaltFührung
1. Zielein Satz: was man danach kann—
2. Erklärungdas neue Konzept, kurz, mit einem Bild der Anzeige—
3. Vormachengeführte Schritte, jeder einzeln geprüftvollständig
4. Übeneine ähnliche Aufgabe, nur die Zwischenstände werden genanntteilweise
5. Probe und RückblickAbschlussaufgabe ohne Anleitung, Probelauf, Zusammenfassung der neuen Tastenkeine

Wer eine Lektion abschließt, hat sie also einmal vorgemacht bekommen, einmal mit Hilfe und einmal allein gelöst.

Die Lektionen

Nr.Lernziel: danach kann man …Neue Tastenbaut aufAbschlussaufgabe
1Zwischenergebnisse speichern und weiterrechnenSTO RCL SUM 2nd CMs ( )—Kreisfläche aus dem Radius in Speicher 01
2eine Rechnung als Programm aufzeichnen und abspielenLRN RST R/S1x² + 1 als Programm
3ein Programm nach Eingaben fragen und Ergebnisse zeigen2nd Pause 2nd Fix2Fahrenheit in Celsius, zwei Nachkommastellen
4Programme mit eigenen Funktionstasten starten2nd Lbl A–E 2nd A'2, 3A rechnet Fahrenheit in Celsius, B zurück
5ein Programm ansehen, Fehler finden und korrigierenSST BST 2nd Ins 2nd Del2, 4ein Programm mit eingebautem Fehler reparieren
6ein Programm entscheiden lassenx<>t 2nd x≥t 2nd x=t INV4den Betrag einer Zahl ohne die Betragstaste
7einen Ablauf wiederholen2nd Dsz1, 6die Summe 1 bis n
8wiederkehrende Teile auslagernSBR INV SBR4, 7Fakultät mit Hilfsunterprogramm
9Programme sichern und dokumentieren2nd Write 2nd Prt 2nd List2, 5Programm auf Karte sichern, Listing drucken
10ein vorhandenes Programm verstehen und selbst nachbauen—alledie Mondlandung nach dem TI-57-Listing

Die Abschlussaufgaben greifen bewusst ineinander: Die Umrechnung aus Lektion 3 wird in Lektion 4 zur Funktionstaste, und das Programm aus Lektion 4 ist in Lektion 5 das Objekt, an dem man das Bearbeiten übt. Lektion 10 schließt den Bogen zum Ursprung des Projekts. Das TI-57-Programm kommt mit 50 Schritten aus, weil dort ein Schritt Taste, INV und Ziffer in einem Byte trägt. Auf dem TI-59 braucht dasselbe Programm mehr als doppelt so viele Schritte. Die Lernenden sehen dabei selbst, warum.

Zwei Sichten auf dasselbe Programm

Ab Lektion 2 sieht man ein Programm auf zwei Arten: im LRN-Modus Schritt für Schritt in der Anzeige (Schrittnummer und Tastencode) und ab Lektion 9 als Listing auf dem Drucker. Beide zeigen dieselben Zahlen. Das Bild unten zeigt die Mondlandung in beiden Sichten: Die Anzeige steht im LRN-Modus auf Schritt 000 mit Code 43, und die erste Druckerzeile lautet 000 43 RCL.

LRN-Modus und Listing: Die Anzeige zeigt Schritt 000 mit Code 43, der Drucker dieselbe Zeile als 000 43 RCL

Variante A im Detail

Das Kursfenster

Das Menü Kurs öffnet ein drittes Fenster neben dem TI-59 und seinem Drucker. Es zeigt:

  • oben die Lektion, ihren Teil und den Fortschritt („Lektion 2 · Vormachen · Schritt 3 von 7“),
  • in der Mitte den Text des aktuellen Schritts, formatiert wie die Anleitungen,
  • unten die Schaltflächen Tipp, Schritt wiederholen und Weiter.

Weiter wird erst aktiv, wenn der Schritt erfüllt ist. TI-59 und Drucker bleiben voll bedienbar: Man lernt am Gerät, nicht in einer Simulation des Kurses.

Zustand statt Tastenfolge

Der Prüfer vergleicht nicht die gedrückten Tasten mit einer Musterfolge, sondern fragt den Zustand des emulierten TI-59 ab. Dafür gibt es drei Gründe:

  1. Mehrere Wege sind richtig. STO 1 und STO 01 speichern dasselbe; wer erst CLR drückt, hat nichts falsch gemacht.
  2. Fehler bleiben erklärbar. Ein Zustand sagt, was nicht stimmt („Schritt 002 enthält 85 (+), erwartet war 33 (x²)“), eine Tastenfolge nur, dass etwas abweicht.
  3. Das Gerät entscheidet. Was eine Taste bewirkt, bestimmt der emulierte TI-59, nicht eine Nachbildung im Kurs.

Abgefragt werden kann alles, was der Emulator ohnehin führt:

PrüfgrößeBeispielQuelle im Emulator
Anzeige14., 000 00, blinkendAnzeigepuffer (zwölf Stellen, Dezimalpunkte, Blinken)
ModusLRN, Lauf, HaltAnzeigeform im LRN-Modus, Programmzähler
Schrittzähler005Programmzeiger
ProgrammspeicherSchritt 000 = 33 (x²)Datenspeicher in Programmschritten
RegisterR01 = 3,14159Datenspeicher als Register
Druckerzeile14.Druckerwarteschlange

Probelauf in einer Kopie

Am Ende jeder Lektion steht ein Probelauf. Der Kurs kopiert dafür den Zustand des Emulators, gibt in der Kopie Eingaben ein (zum Beispiel 3 A), lässt sie mit voller Geschwindigkeit laufen und vergleicht die Anzeige mit dem erwarteten Wert. Mehrere Fälle laufen nacheinander, darunter Randfälle wie 0 oder negative Zahlen. Weil der Lauf in der Kopie stattfindet, bleiben Anzeige, Speicher und Programm der Lernenden unberührt. Ein Fehlschlag nennt den Fall: „Bei 3 A erwartet 10, angezeigt 9.“

Tipps und Fehler

Jeder Schritt hat bis zu drei gestufte Tipps. Der erste erinnert an das Konzept, der zweite nennt die Taste, der dritte zeigt die Lösung. Ergänzend erkennt der Prüfer häufige Fehlgriffe und antwortet gezielt:

  • nicht im LRN-Modus („Die Anzeige zeigt eine Zahl, keinen Schrittzähler: drücke LRN“),
  • 2nd vergessen (x² statt sin im Programmspeicher),
  • Programm nicht mit RST an den Anfang gesetzt.

Ein Fehler ist dabei kein Abbruch, sondern ein Anlass: Die Erklärung sagt, was der TI-59 mit der falschen Taste gemacht hat, und wie man von dort weiterkommt (zum Beispiel mit BST und 2nd Del). So übt schon Lektion 2 nebenbei, was Lektion 5 dann systematisch einführt.

Fortschritt

Erledigte Lektionen und der aktuelle Schritt werden in einer Einstellungsdatei neben dem Programm gespeichert. Ein Neustart setzt den Kurs dort fort, wo man aufgehört hat. Jede Lektion lässt sich zurücksetzen und wiederholen.

Das Lektionsformat

Lektionen sind Textdateien neben der Anwendung, in MacRoman wie die Anleitungen. Man kann sie auf dem Macintosh bearbeiten, ohne neu zu übersetzen. Ein Ausschnitt aus Lektion 2, Teil „Vormachen“:

LEKTION 2  Das erste Programm
ZIEL Eine Rechnung als Programm aufzeichnen und abspielen.

TEXT
Ein Programm ist eine aufgezeichnete Rechnung. Im LRN-Modus
merkt sich der TI-59 jede Taste als Programmschritt, statt sie
auszuführen.

TEIL Vormachen

SCHRITT Drücke LRN.
  ERWARTE modus LRN
  ERWARTE anzeige "000 00"
  TIPP Die Taste LRN steht links in der dritten Reihe.

SCHRITT Tippe x², +, 1, = und R/S.
  ERWARTE schritt 005
  ERWARTE programm 000 33 85 01 95 91
  TIPP Die Anzeige zeigt nach jeder Taste den nächsten freien Schritt.
  FEHLER programm 000 23 : Das ist lnx; x² ist die Taste daneben.

SCHRITT Verlasse den LRN-Modus und setze das Programm an den Anfang.
  ERWARTE modus HALT
  ERWARTE zeiger 000
  TIPP Erst LRN, dann RST.

TEIL Üben
AUFGABE Ändere das Programm so, dass es x² + 2 rechnet.
  ERWARTE programm 002 02

PROBE
  3 R/S -> 11
  0 R/S -> 2

ZIEL, TEIL und AUFGABE geben der Lektion ihre fünf Teile. ERWARTE nennt Bedingungen, die alle zugleich gelten müssen. FEHLER verknüpft einen bekannten Fehlzustand mit einer Erklärung. PROBE beschreibt die Fälle des Probelaufs. Die Codes sind die Tastencodes des TI-59 (Reihe und Spalte), dieselben, die er im LRN-Modus anzeigt.

Technische Umsetzung

  • Eigenes Codesegment. Das Hauptmodul CMain belegt rund 32 000 von 32 768 Bytes, die ein 68K-Codesegment fassen kann. Der Kurs kommt deshalb als CCourse.cp in ein zweites Segment des THINK-Projekts. CMain bekommt nur den Menüeintrag und eine Weiterleitung.
  • Abfragen am Emulator. Der Emulator erhält einige lesende Zugriffe: Programmschritt n, Register n, Programmzeiger, LRN-Zustand. Sie verändern nichts und kosten keine Rechenzeit.
  • Prüfen im Leerlauf. Der Prüfer läuft in der Leerlaufroutine, die auch den Emulator antreibt, nach jedem abgeschlossenen Tastendruck. Er prüft also nie mitten in einer Taste. Der Macintosh bleibt dabei bedienbar, weil die Anwendung weiterhin bei jedem Durchlauf an das System abgibt.
  • Kopie für den Probelauf. Der Zustand des Emulators (Prozessor, Speicher, Anzeige) wird in ein zweites Objekt kopiert.

Ein Detail aus der Vorbereitung zeigt, warum der Kurs am echten Verhalten prüfen muss: Beim Druck eines Listings fragt der TI-59 die Tastatur nur zwischen zwei gedruckten Zeilen ab. Ein kurzer Tastendruck auf R/S ging dazwischen verloren, das Listing lief bis Schritt 479 durch. Seitdem hält die Anwendung eine Taste länger gedrückt, wenn der TI-59 gerade arbeitet; R/S beendet das Listing wie am Original.

Der Drucker PC-100C mit dem Listing der Mondlandung, Schritt 000 bis 048

Prüfung der Lektionen

Bevor eine Lektion auf den Macintosh kommt, wird sie auf dem Host gegen denselben Emulator geprüft:

  1. Ein Host-Werkzeug liest die Lektionsdatei, tastet die Musterlösung Schritt für Schritt ein und prüft nach jedem Schritt die ERWARTE-Bedingungen.
  2. Es spielt jeden PROBE-Fall durch.
  3. Es tastet die bei FEHLER beschriebenen Fehlgriffe ein und prüft, dass der Prüfer sie erkennt.

So kann keine Lektion eine Bedingung stellen, die der TI-59 nie erfüllt. Danach folgt der Test am TI-59 auf dem Macintosh, zuerst an Lektion 1 und 2 von Hand. Didaktisch geprüft wird jede Lektion zusätzlich von einer Person, die den TI-59 noch nicht programmiert hat: Wo sie einen Tipp braucht, fehlt der Erklärung etwas.

Arbeitsschritte

SchrittInhaltErgebnis
A1Lektionsformat, Host-Prüfer, Lektionen 1–2 mit allen fünf Teilenalle Bedingungen und Proben auf dem Host bestanden
A2Kursfenster, zweites Segment, Abfragen am EmulatorLektion 1–2 auf dem Macintosh durchspielbar
A3Probelauf in der Kopie, gestufte Tipps, Fehlererkennung, FortschrittLektion 2 erkennt die drei häufigsten Fehlgriffe
A4Lektionen 3–10jede Lektion auf dem Host geprüft, auf dem Macintosh durchgespielt und von einer Person ohne Vorkenntnisse erprobt
BCodeweg: Editorfeld, Übersetzer, Rückweg zum Listingeigener Beitrag

Über TI-59

Offene Fragen

  • Sprache. Der Kurs ist auf Deutsch geplant. Die Tastenbeschriftungen bleiben englisch wie am Gerät.
  • Sprung zu Lektion 10. Das Nachbauen der Mondlandung setzt Lektion 6–8 voraus. Ein Zwischenschritt, etwa das Übertragen eines kürzeren TI-57-Programms, könnte den Sprung verkleinern.
  • Druckerausgabe als Prüfgröße. Ob der Drucker in Lektion 9 verbindlich geprüft wird oder nur gezeigt, hängt davon ab, ob die Lernenden den PC-100C angeschlossen haben. Das ist auf dem Macintosh eine Einstellung des TI-59.