Lidt om, hvad skoleinformatik var i 90'erne, og hvorfor alle programmører dengang var udelukkende autodidakter.

Hvordan børn blev undervist i programmering
I begyndelsen af 90'erne begyndte Moskvas skoler selektivt at udstyre klasselokaler med computere. I lokalerne blev der straks sat gitre for vinduerne og en tung jerninddækket dør. Fra et eller andet sted dukkede en informatiklærer op (han så ud som den vigtigste person efter rektoren), hvis hovedopgave var at sikre, at ingen rørte noget. Overhovedet ikke. Selv ikke indgangsdøren.
I klasseværelserne kunne man oftest møde BK-0010-systemer (i deres varianter) og BK-0011M.

Foto taget
Børnene fik at vide om den generelle struktur, samt et dusin kommandoer i 'BASIC', så de kunne tegne linjer og cirkler på skærmen. For de yngre og mellemste klasser var det nok.
Der var separate problemer med at gemme sine værker (programmer) dengang. Ofte blev computere koblet sammen via monokanal-controllerne i et netværk med 'delte bus'-topologi og en overførselshastighed på 57600 baud. Diskdrev var som regel kun ét, og det virkede ofte ikke. Nogle gange fungerede det, nogle gange gjorde det ikke, nogle gange frøs netværket, og nogle gange blev disketten ikke læst.
Jeg havde dengang dette mesterværk på 360 kB med mig.

Chancerne for at jeg endnu en gang ville få fat i mit program var 50-70 procent.
Men det største problem med alle disse historier om 'BK'-computere var de uendelige nedbrud.
Det kunne ske når som helst, uanset om det var ved kodning eller programudførelse. Et nedbrudt system betød, at du havde spildt 45 minutter, fordi du måtte starte forfra, og der var ikke længere tid tilbage af lektionen til det.
Nærmere 1993 begyndte nogle skoler og gymnasier at få normale klasselokaler med 286-maskiner, og nogle steder stod der endda '3'er-maskiner'. Når det kom til programmeringssprog, var der to muligheder: hvor 'BASIC' sluttede, begyndte 'Turbo Pascal'.
Programmering i 'Turbo Pascal' med eksemplet 'tanks'
På "Pascal" lærte børn at opbygge cyklusser, tegne forskellige funktioner og arbejde med arrays. I fysik-matematik gymnasiet, hvor jeg på et tidspunkt "opholdt mig", blev der afsat en time om ugen til informatik. Og i to år var dette den kedeligste del. Det var klart, at man ønskede at lave noget mere seriøst end blot at udskrive værdierne i et array eller en eller anden sinuskurve.
Tankspil
Battle City var et af de mest populære spil på klonede NES-konsoller (Dendy m.fl.).

I 1996 var populariteten af 8-bit konsollerne svundet ind, de havde længe samlet støv i skabe, og jeg syntes, det ville være sjovt at lave en klon af "Tankspil" til PC som et stort projekt. Videre vil jeg forklare, hvordan man dengang måtte være kreativ for at lave noget med grafik, mus og lyd i "Pascal".

Man kan kun tegne streger og cirkler
Lad os starte med grafikken.

I den basale version tillod "Pascal" at tegne nogle former, farvelægge og definere farverne på punkterne. De mest avancerede procedurer i Graph-modulet, der bragte os tættere på sprites, er GetImage og PutImage. Ved hjælp af dem kunne man fange et område af skærmen i et forudreservede hukommelsesområde og derefter bruge dette stykke som et rasterbillede. Med andre ord, hvis du ønsker at bruge nogle elementer eller billeder flere gange på skærmen, skal du først tegne dem, kopiere dem til hukommelsen, rense skærmen, tegne det næste, og fortsætte indtil du har skabt det nødvendige bibliotek i hukommelsen. Da alt sker hurtigt, bemærker brugeren ikke disse tricks.
Det første modul, hvor sprites blev anvendt, var kortredigeren.

Det indeholdt et markeret spillefelt. Et klik med musen åbnede en menu, hvor man kunne vælge en af fire forskellige forhindringer. For resten, om musen…
Musen – det var allerede slutningen af 90'erne
Musen, selvfølgelig, havde alle, men indtil midten af 90'erne blev de kun brugt i Windows 3.11, grafikpakker og et par få spil. I Wolf og Doom spillede man kun med tastaturet. Desuden var musen ikke meget nødvendig i DOS-miljøet. Derfor blev Borland-modulet til musen ikke engang inkluderet i standardpakken. Man måtte lede efter det hos bekendte, der bare rystede på hovedet og udbrød "hvorfor har du brug for det?".
At finde et modul til musens input er kun halvdelen af arbejdet. For at kunne klikke med musen på skærmbuttonerne, måtte de tegnes. Og der skulle være to versioner (tryk og ikke-tryk). Den ikke-trykte knap har en lys overflade, mens den under har en skygge. Det er omvendt for den trykte knap. Og derefter skulle det tegnes på skærmen tre gange (ikke-tryk,tryk, så igen ikke-tryk). Plus, husk at sætte forsinkelser på visningen, og gemme markøren.

For eksempel så kodebehandlingen af hovedmenuen således ud:

Lyd – kun PC Speaker piezo-kuv.
En separat historie handler om lyden. I begyndelsen af 90'erne var klonerne af Sound Blaster kun i gang med at forberede deres sejrsgang, og de fleste applikationer fungerede kun med den indbyggede højttaler. Dens maksimale muligheder var at afspille kun én tone ad gangen. Og netop dette kunne Turbo Pascal gøre. Gennem proceduren sound kunne man 'pipe' forskellige frekvenser, hvilket var tilstrækkeligt til lyde af skud og eksplosioner, men til musikalske intros, som var populære dengang, var det ikke egnet. I sidste ende blev der fundet en ret snedig løsning: i den egen software-arkiv blev der opdaget en 'exe', som engang var downloadet fra en eller anden BBS. Den kunne udføre mirakler – afspille ukomprimerede wav-filer gennem PC Speaker, og gjorde det fra kommandolinjen uden interface. Alt, hvad der var brug for, var at kalde det ved hjælp af Pascal-proceduren exec og sørge for, at denne konstruktion ikke knækkede ned.
I sidste ende kom der en fantastisk musik på introen, men der opstod et sjovt problem. I 1996 havde jeg et system med en Pentium 75, overclocket til 90. På det fungerede alt perfekt. Men på universitetet, hvor vi i andet semester fik Pascal, stod der ældre 'trekanter' i undervisningslokalet. Efter aftale med læreren tog jeg disse tankspil med til anden lektion for at få godkendt og ikke komme der mere. Og efter opstarten kom der et højt brøl fra højttaleren blandet med buldrende lyde. Generelt kunne 33 megahertz 'trekanten' ikke håndtere det pågældende 'exe' ordentligt. Men ellers var alt i orden. Selvfølgelig, bortset fra den sløve tastaturinput, som ødelagde hele gameplayet uanset PC'ens ydeevne.

Men det primære problem ligger ikke i 'Pascal'
I mit min forståelse er "Tankerne" det maksimale, man kunne få ud af Turbo Pascal uden assemblerværk. Blandt de åbenlyse mangler ved det færdige produkt var langsom tastaturaflæsning og langsom grafikrendering. Situationen blev forværret af det ekstremt begrænsede antal tredjepartsbiblioteker og -moduler. De kunne tælles på én hånd.
Men mest skuffede mig tilgangen i den skoleuddannelse. Ingen fortalte børnene dengang om fordele og muligheder ved andre sprog. I timerne begyndte man næsten med det samme at tale om begin, println og if, hvilket låste eleverne inden for en begrebsmæssig ramme af Basic-Pascal. Begge disse sprog kan betragtes som udelukkende uddannelsesmæssige. Deres "kampe" i praksis er en sjældenhed.
Hvorfor lære børn fiktive sprog er et mysterie for mig. De er måske mere illustrative. Variationer af "Basic" anvendes forskellige steder. Men i hvert fald, hvis en person overvejer at binde sin fremtid med programmering, må han starte forfra med at lære andre sprog. Så hvorfor ikke give børnene de samme undervisningsopgaver, men allerede på en ordentlig platform (sprog), inden for hvilken de kunne udvikle sig videre selv?
Forresten om opgaver. I skolen og på universitetet har de altid været abstrakte: beregn det ene eller det andet, byg en funktion, tegn noget. Jeg gik i tre forskellige skoler, plus vi havde "Pascal" på første år af universitetet, og aldrig satte lærerne nogen reelle anvendte opgaver. For eksempel at lave en kontaktbog eller noget nyttigt. Alt var påtaget. Og når folk i månedsvis løser meningsløse opgaver, som derefter går i papirkurven... Generelt går folk ud fra universitetet udbrændte.
For øvrigt fik vi på tredje år på samme universitet indført "plusser" i pensum. Det virker som et godt initiativ, men folk var trætte, mættede med fiktive og "undervisnings" opgaver. Der var ikke den samme entusiasme som første gang.
P.S. Jeg har googlet emnet om, hvilke sprog der nu undervises i skolerne i it-undervisningen. Alt er som for 25 år siden: Basic, Pascal. Med enkelte indslag af Python.
Kilde: habr.com
