Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Iets over hoe de 'informatica' op school er in de jaren negentig uitzag, en waarom alle programmeurs toen uitsluitend autodidact waren.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Waar kinderen op leerden programmeren

Begin jaren negentig begonnen scholen in Moskou selectief te worden uitgerust met computerlessen. De kamers werden onmiddellijk voorzien van tralies voor de ramen en een zware, met ijzer beklede deur. Ergens verscheen een leraar computerwetenschappen (hij leek op de belangrijkste kameraad na de directeur), wiens voornaamste taak het was ervoor te zorgen dat niemand iets aanraakte. Helemaal niets. Zelfs de voordeur.
In klaslokalen kon je meestal de BK-0010 (in zijn varianten) en BK-0011M-systemen vinden.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was
foto gemaakt vandaar

De kinderen kregen uitleg over de algemene structuur en over een tiental BASIC-commando's, zodat ze lijnen en cirkels op het scherm konden tekenen. Voor de lagere en middenklassen was dit waarschijnlijk voldoende.

Er waren enkele problemen met het behouden van iemands creaties (programma's). Meestal werden computers die monokanaalcontrollers gebruikten gecombineerd tot een netwerk met een "common bus" -topologie en een transmissiesnelheid van 57600 baud. In de regel was er maar één schijfstation, en daar ging vaak iets mis mee. Soms werkt het, soms niet, soms is het netwerk bevroren, soms is de diskette onleesbaar.

Ik heb toen deze creatie met een capaciteit van 360 kB bij me gedragen.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

De kans dat ik mijn programma er weer uit zou halen was 50-70 procent.

Het grootste probleem met al deze verhalen over BC-computers was echter het eindeloze vastlopen.

Dit kan op elk moment gebeuren, of het nu gaat om het typen van code of het uitvoeren van een programma. Een bevroren systeem betekende dat je 45 minuten tevergeefs doorbracht, omdat... Ik moest alles opnieuw doen, maar de resterende lestijd was daarvoor niet meer voldoende.

Dichter bij 1993 verschenen op sommige scholen en lycea normale klassen met 286 auto's, en op sommige plaatsen waren er zelfs drie roebel. Qua programmeertalen waren er twee opties: waar “BASIC” eindigde, begon “Turbo Pascal”.

Programmering in "Turbo Pascal" aan de hand van het voorbeeld van "tanks"

Met behulp van Pascal leerden kinderen loops bouwen, allerlei functies tekenen en met arrays werken. Op het natuurkunde- en wiskundelyceum, waar ik een tijdje ‘woonde’, werd één koppel per week toegewezen aan informatica. En twee jaar lang was er een saaie plek. Natuurlijk wilde ik iets serieuzers doen dan de waarden van een array of een soort sinusoïde op het scherm weergeven.

Tanks

Battle City was een van de meest populaire games op NES-kloonconsoles (Dendy, enz.).

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

In 1996 was de populariteit van 8-bits voorbij, ze lagen al lang stof te verzamelen in kasten, en het leek mij cool om een ​​​​kloon van "Tanks" voor de pc te maken als iets grootschaligs. Het volgende gaat over hoe het destijds nodig was om te ontwijken om iets met afbeeldingen, een muis en geluid op Pascal te schrijven.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Je kunt alleen stokken en cirkels tekenen

Laten we beginnen met afbeeldingen.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

In de basisversie liet Pascal je enkele vormen tekenen, schilderen en de kleuren van punten bepalen. De meest geavanceerde procedures in de Graph-module die ons dichter bij sprites brengen, zijn GetImage en PutImage. Met hun hulp was het mogelijk om een ​​deel van het scherm vast te leggen in een eerder gereserveerd geheugengebied en dit stuk vervolgens als bitmapafbeelding te gebruiken. Met andere woorden, als u bepaalde elementen of afbeeldingen op het scherm opnieuw wilt gebruiken, tekent u ze eerst, kopieert u ze naar het geheugen, wist u het scherm, tekent u de volgende, enzovoort, totdat u de gewenste bibliotheek in het geheugen hebt aangemaakt. Omdat alles snel gebeurt, merkt de gebruiker deze trucs niet op.

De eerste module waarin sprites werden gebruikt, was de kaarteditor.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Er was een duidelijk speelveld. Als u met de muis klikte, werd een menu geopend waarin u een van de vier obstakelopties kon selecteren. Over de muis gesproken...

De muis is alweer eind jaren 90

Natuurlijk had iedereen muizen, maar tot het midden van de jaren negentig werden ze alleen gebruikt in Windows 90, grafische pakketten en een klein aantal games. Wolf en Doom werden alleen met het toetsenbord gespeeld. En in de DOS-omgeving was de muis niet echt nodig. Daarom heeft Borland de muismodule niet eens in het standaardpakket opgenomen. Je moest hem zoeken via je kennissen, die hun handen in de lucht staken en als antwoord uitriepen: "Waarvoor heb je hem nodig?"

Het vinden van een module om de muis te ondervragen is echter slechts het halve werk. Om met de muis op de knoppen op het scherm te klikken, moesten ze worden getekend. Bovendien in twee versies (geperst en niet geperst). Een knop die niet wordt ingedrukt, heeft een lichte bovenkant en een schaduw eronder. Als je erop drukt, is het andersom. En teken het vervolgens drie keer op het scherm (niet ingedrukt, ingedrukt en dan niet opnieuw ingedrukt). Vergeet bovendien niet vertragingen voor de weergave in te stellen en de cursor te verbergen.

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Het verwerken van het hoofdmenu in code zag er bijvoorbeeld als volgt uit:

Tanchiki in Pascal: hoe kinderen in de jaren 90 programmeren leerden en wat daar mis mee was

Geluid – alleen pc-luidspreker

Een apart verhaal met geluid. Begin jaren negentig waren Sound Blaster-klonen zich net aan het voorbereiden op hun zegevierende mars, en de meeste toepassingen werkten alleen met de ingebouwde luidspreker. Het maximale van zijn mogelijkheden is de gelijktijdige reproductie van slechts één toon. En dat is precies wat Turbo Pascal je toestond te doen. Via de geluidsprocedure was het mogelijk om met verschillende frequenties te "piepen", wat voldoende is voor de geluiden van geweerschoten en explosies, maar voor een muzikale screensaver, zoals toen in de mode was, was dit niet geschikt. Als gevolg hiervan werd een zeer sluwe oplossing gevonden: in het eigen archief van de software werd een “exe-bestand” ontdekt, een keer gedownload van een of andere BBS. Hij kon wonderen verrichten: ongecomprimeerde wav's afspelen via een pc-luidspreker, en hij deed het vanaf de opdrachtregel en had geen echte interface. Het enige dat nodig was, was het via de Pascal-exec-procedure te doorlopen en ervoor te zorgen dat deze constructie niet instortte.

Als gevolg hiervan verscheen de moordende muziek op de screensaver, maar er gebeurde iets grappigs mee. In 1996 had ik een systeem op een Pentium 75, opgevoerd tot 90. Alles werkte er prima op. Op de universiteit waar Pascal in het tweede semester voor ons werd geïnstalleerd, stonden er versleten “drie roebels” in de klas. In overleg met de leraar heb ik deze tanks meegenomen naar de tweede les om een ​​test te doen en daar niet meer heen te gaan. En dus kwam er na de lancering een luid gebrul vermengd met gorgelende keelgeluiden uit de luidspreker. Over het algemeen bleek de 33-megahertz DX “drie-roebelkaart” niet in staat om datzelfde “uitvoerbare bestand” correct te draaien. Maar verder was alles prima. Natuurlijk afgezien van de trage toetsenbordpolling, die de hele gameplay bedierf, ongeacht de pc-prestaties.

Maar het grootste probleem ligt niet bij Pascal

Naar mijn mening is “Tanks” het maximale dat uit Turbo Pascal kan worden geperst zonder montage-inzetstukken. De voor de hand liggende tekortkomingen van het eindproduct zijn trage toetsenbordpolling en trage grafische weergave. De situatie werd verergerd door het extreem kleine aantal bibliotheken en modules van derden. Ze waren op de vingers van één hand te tellen.

Maar wat mij het meest van streek maakte, was de benadering van het schoolonderwijs. Niemand vertelde kinderen toen over de voordelen en mogelijkheden van andere talen. In de klas begonnen ze vrijwel onmiddellijk te praten over begin, println en if, waardoor de leerlingen vastzaten in het BASIC-Pascal-paradigma. Beide talen kunnen als uitsluitend educatief worden beschouwd. Hun ‘gevechts’-gebruik komt zelden voor.

Waarom kinderen valse talen leren is mij een raadsel. Laat ze visueler zijn. Laat hier en daar variaties op BASIC worden gebruikt. Maar in ieder geval, als iemand besluit zijn toekomst te verbinden met programmeren, zal hij vanaf het begin andere talen moeten leren. Waarom zouden kinderen dan niet dezelfde onderwijstaken krijgen, maar alleen op een normaal platform (taal), waarbinnen ze zich zelfstandig verder kunnen ontwikkelen?

Over taken gesproken. Op school en op de universiteit waren ze altijd abstract: iets berekenen, een functie construeren, iets tekenen. Ik heb op drie verschillende scholen gestudeerd, en we hadden 'Pascal' in het eerste jaar van het instituut, en niet één keer hebben de leraren een echt toegepast probleem gesteld. Maak bijvoorbeeld een notitieboekje of iets anders nuttigs. Alles was vergezocht. En als iemand maandenlang lege problemen oplost, die vervolgens in de prullenbak belanden... Over het algemeen verlaten mensen het instituut al uitgebrand.

Trouwens, in het derde jaar van dezelfde universiteit kregen we 'pluspunten' in het programma. Het leek een goede zaak, maar de mensen waren moe, vol vervalsingen en ‘trainingstaken’. Niemand was zo enthousiast als de eerste keer.

PS Ik heb gegoogled naar welke talen er nu worden onderwezen in computerwetenschappenlessen op scholen. Alles is hetzelfde als 25 jaar geleden: Basic, Pascal. Python komt in sporadische insluitsels.

Bron: www.habr.com

Voeg een reactie