Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Ein wenig darĂŒber, wie der Informatikunterricht in den 90er Jahren war und warum damals alle Programmierer Selbstlerner waren.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Woran man Kinder das Programmieren beigebracht hat

Zu Beginn der 90er Jahre begannen die Moskauer Schulen, selektiv Computerklassen auszustatten. In den RĂ€umen wurden sofort Gitter an den Fenstern und eine schwere, mit Eisen ausgekleidete TĂŒr installiert. Irgendwoher tauchte ein Informatiklehrer auf (er sah aus wie der wichtigeste Genosse nach dem Direktor), dessen Hauptaufgabe es war, darauf zu achten, dass niemand irgendetwas berĂŒhrte. Absolut nichts. Sogar die EingangstĂŒr nicht.
In den Klassen traf man hÀufig auf die Systeme BK-0010 (in seinen Varianten) und BK-0011M.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.
Das Foto wurde entnommen von hier

Den Kindern wurde das allgemeine GerĂ€t erklĂ€rt und ein Dutzend Befehle von „Basisk“, damit sie Linien und Kreise auf dem Bildschirm zeichnen konnten. FĂŒr die unteren und mittleren Klassen war das vermutlich ausreichend.

Das Speichern der eigenen Kreationen (Programme) war damals ein eigenes Problem. Die Computer wurden hĂ€ufig mit Hilfe von Monokanalcontrollern zu einem Netzwerk mit der Topologie „gemeinsame Bus“ und einer Übertragungsgeschwindigkeit von 57600 Baud verbunden. Normalerweise gab es nur ein Laufwerk, und oft funktionierte es nicht richtig. Mal ging es, mal ging es nicht, mal hing das Netzwerk, mal wurde die Diskette nicht gelesen.

Ich hatte damals dieses Werk mit einer KapazitÀt von 360 KB dabei.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Die Chancen, dass ich erneut mein Programm von dort abziehen konnte, lagen bei etwa 50-70 Prozent.

Das grĂ¶ĂŸte Problem dieser ganzen Geschichten mit den „BK“-Computern waren die endlosen AbstĂŒrze.

Das konnte jederzeit passieren, egal ob beim Eintippen von Code oder beim AusfĂŒhren eines Programms. Ein abgestĂŒrztes System bedeutete, dass du 45 Minuten Zeit verschwendet hattest, weil du alles von vorne machen musstest, aber die verbleibende Zeit des Unterrichts dafĂŒr schon nicht mehr ausreichte.

Gegen 1993 tauchten in einzelnen Schulen und Lyzeen normale Klassen mit 286-Maschinen auf, und an manchen Orten standen sogar „DreiĂ€ugige“. Was die Programmiersprachen angeht, gab es zwei Optionen: dort, wo „Basisk“ endete, begann „Turbo Pascal“.

Programmieren in „Turbo Pascal“ am Beispiel von „Panzer-Spielen“

In Pascal lernten Kinder, Schleifen zu erstellen, verschiedene Funktionen zu zeichnen und mit Arrays zu arbeiten. Am Physik-Mathematik-Gymnasium, wo ich eine Zeit lang „lebte“, wurde der Informatik nur eine Stunde pro Woche gewidmet. Und zwei Jahre lang war das hier eine regelrechte Langeweile. NatĂŒrlich wollte ich etwas Seriöseres machen als nur die Werte eines Arrays oder eine Sinuskurve auf dem Bildschirm auszugeben.

Tankspiele

Battle City war eines der beliebtesten Spiele auf NES-Klonen (Dendy u.a.).

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

1996 war die PopularitĂ€t der 8-Bit-Konsolen vorbei, sie verstaubten schon lange in den SchrĂ€nken, und ich fand es cool, als etwas Großes einen Klon von „Tankspielen“ fĂŒr den PC zu machen. Weiter unten geht es genau darum, wie man damals Tricks anwenden musste, um in Pascal etwas mit Grafik, Maus und Ton zu programmieren.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Man kann nur Striche und Kreise zeichnen

Lass uns mit der Grafik beginnen.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

In der Grundversion erlaubte Pascal das Zeichnen bestimmter Figuren, das Ausmalen und das Bestimmen von Farben von Punkten. Die fortschrittlichsten Prozeduren im Graph-Modul, die uns den Sprites nĂ€her brachten, sind GetImage und PutImage. Mit ihnen konnte man einen Bereich des Bildschirms in einem zuvor reservierten Speicherbereich erfassen und dann dieses StĂŒck als Rasterbild verwenden. Mit anderen Worten, wenn Sie bestimmte Elemente oder Bilder mehrfach auf dem Bildschirm verwenden möchten, zeichnen Sie sie zuerst, kopieren sie in den Speicher, löschen den Bildschirm, zeichnen das nĂ€chste und so weiter, bis Sie die benötigte Bibliothek im Speicher erstellt haben. Da alles schnell geschieht, bemerkt der Benutzer diese Tricks nicht.

Das erste Modul, in dem Sprites verwendet wurden – der Karteneditor.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Es gab ein markiertes Spielfeld. Ein Mausklick öffnete ein MenĂŒ, in dem man eine von vier Arten von Hindernissen auswĂ€hlen konnte. Apropos Maus...

Die Maus – das war schon Ende der 90er Jahre

MĂ€use hatten natĂŒrlich alle, aber bis zur Mitte der 90er Jahre wurden sie nur in Windows 3.11, grafischen Paketen und wenigen Spielen verwendet. In Wolf und Doom spielte man nur mit der Tastatur. Und in der DOS-Umgebung war die Maus nicht wirklich notwendig. Daher wurde das Modul fĂŒr die Maus in der Standardinstallation von Borland nicht einmal enthalten. Man musste es bei Bekannten suchen, die mit den Schultern zuckten und erstaunt fragten: „Wozu brauchst du das?“

Die Suche nach einem Modul fĂŒr die Umfrage mit der Maus ist jedoch nur die halbe Miete. Damit die Maus auf die SchaltflĂ€chen auf dem Bildschirm klicken kann, mĂŒssen diese gezeichnet werden. Und zwar in zwei Varianten (gedrĂŒckt und nicht gedrĂŒckt). Bei der nicht gedrĂŒckten SchaltflĂ€che ist die Oberseite hell, und darunter gibt es einen Schatten. Bei der gedrĂŒckten ist es umgekehrt. Und man muss sie dann dreimal auf dem Bildschirm darstellen (nicht gedrĂŒckt, gedrĂŒckt, dann wieder nicht gedrĂŒckt). Außerdem darf man die Verzögerungen fĂŒr die Anzeige nicht vergessen und muss den Mauszeiger verstecken.

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Beispielsweise sah die Verarbeitung des HauptmenĂŒs im Code so aus:

Tanks auf Pascal: Wie Kinder in den 90ern Programmieren gelernt haben und was daran nicht stimmte.

Ton – nur der PC-Lautsprecher

Eine eigene Geschichte ist der Ton. Zu Beginn der neunziger Jahre bereiteten sich die Sound-Blaster-Klone gerade auf ihren triumphalen Siegeszug vor, und die meisten Anwendungen arbeiteten nur mit dem eingebauten Lautsprecher. Das Maximum seiner Möglichkeiten ist die gleichzeitige Wiedergabe nur eines Tones. Genau das ermöglichte Turbo Pascal. Über die Prozedur sound konnte man mit verschiedenen Frequenzen "pfeifen", was fĂŒr die GerĂ€usche von SchĂŒssen und Explosionen ausreichend war, aber fĂŒr eine musikalische Einlage, die damals in Mode war, war das nicht geeignet. Am Ende fand sich eine ziemlich clevere Lösung: In meinem Software-Archiv entdeckte ich ein "Exekutivprogramm", das irgendwann von einer BBS heruntergeladen wurde. Es konnte Wunder wirken - unkomprimierte wav-Dateien ĂŒber den PC-Speaker wiedergeben, und das sogar von der Kommandozeile aus, ohne eine eigene BenutzeroberflĂ€che zu haben. Alles, was nötig war, war, es ĂŒber die Pascal-Prozedur exec aufzurufen und sicherzustellen, dass diese Konstruktion nicht abstĂŒrzt.

Am Ende gab es einen beeindruckenden Soundtrack im Intro, aber damit kam eine amĂŒsante Sache heraus. 1996 hatte ich ein System mit einem Pentium 75, der auf 90 ĂŒbertaktet war. Darauf funktionierte alles einwandfrei. In der UniversitĂ€t jedoch, wo wir im zweiten Semester Pascal hatten, standen im Unterrichtsraum alte "Dreier". Nach Vereinbarung mit dem Dozenten brachte ich zu der zweiten Sitzung diese kleinen Panzer mit, um die Note zu bekommen und nicht mehr dorthin zu mĂŒssen. Und so kam, nachdem ich sie gestartet hatte, ein lautes BrĂŒllen aus dem Lautsprecher, gemischt mit hustenartigen GerĂ€uschen heraus. Kurz gesagt, der 33-MHz "Dreier" konnte es nicht schaffen, dieses "Exekutivprogramm" normal auszufĂŒhren. Aber ansonsten lief alles gut. NatĂŒrlich abgesehen von der trĂ€ge umgesetzten Tasteneingaben, die das gesamte Gameplay unabhĂ€ngig von der PC-Leistung ruinierte.

Video abspielen

Aber das Hauptproblem liegt nicht bei "Pascal".

Meiner Meinung nach ist "Tanks" das Maximum, was man aus Turbo Pascal ohne Assembly-EinfĂŒgungen herausholen konnte. Zu den offensichtlichsten Nachteilen des Endprodukts gehören die langsame Abfrage der Tastatur und die langsame grafische Darstellung. Die Situation wurde durch die extrem geringe Anzahl an externen Bibliotheken und Modulen verschĂ€rft. Diese ließen sich an einer Hand abzĂ€hlen.

Aber was mich am meisten frustrierte, war der Ansatz in der schulischen Ausbildung. Kindern wurde damals niemand die Vorteile und Möglichkeiten anderer Sprachen erklĂ€rt. Im Unterricht ging es praktisch sofort um begin, println und if, was die SchĂŒler in der Basic-Pascal-Paradigmen einsperrte. Beide Sprachen können ausschließlich als Lehrsprachen betrachtet werden. Ihre "eigenstĂ€ndige" Anwendung ist ein seltenes PhĂ€nomen.

Warum man Kindern gefĂ€lschte Sprachen beibringen sollte, bleibt fĂŒr mich ein RĂ€tsel. Sicher, sie sind anschaulicher. Sicher, Variationen von "Basic" werden hier und da verwendet. Aber in jedem Fall, wenn eine Person beschließt, ihre Zukunft mit Programmierung zu verbinden, muss sie andere Sprachen von Grund auf lernen. Warum also nicht denselben pĂ€dagogischen Ansatz wĂ€hlen, aber auf einer normalen Plattform (Sprache), in deren Rahmen sie sich weiterentwickeln können?

Apropos Aufgaben. In der Schule und an der UniversitĂ€t waren sie immer abstrakt: ZĂ€hle das, baue eine Funktion, zeichne etwas. Ich besuchte drei verschiedene Schulen, plus wir hatten "Pascal" im ersten Studienjahr, und kein einziges Mal stellten die Lehrer eine einigermaßen realistische praktische Aufgabe. Zum Beispiel ein Notizbuch erstellen oder etwas NĂŒtzliches. Alles war erfunden. Und wenn jemand monatelang leere Aufgaben löst, die dann in den MĂŒll wandern... Insgesamt verlassen die Leute die UniversitĂ€t bereits ausgebrannt.

Übrigens, im dritten Jahr an derselben UniversitĂ€t wurde uns "C++" ins Programm gesetzt. Es schien eine gute Sache zu sein, aber die Leute waren mĂŒde, hatten genug von FĂ€lschungen und "Lehraufgaben". Der Enthusiasmus, wie beim ersten Mal, war bei niemandem zu sehen.

P.S. Ich habe gegoogelt, welche Sprachen derzeit in den Schulen im Informatikunterricht unterrichtet werden. Alles wie vor 25 Jahren: Basic, Pascal. Einzelne Einsprengsel von Python erscheinen hier und da.

Quelle: habr.com

60GB SSD 8Gb DDR4