Lite om hur skolan "informatik" sÄg ut pÄ 90-talet och varför alla programmerare dÄ var sjÀlvlÀrda.

PÄ vad man lÀrde barn programmera
I början av 90-talet började Moskvas skolor gradvis utrusta klassrum med datorer. I lokalerna satte de genast galler pÄ fönstren och tunga dörrar klÀdda i jÀrn. Plötsligt dök en datalÀrare upp (som sÄg ut att vara den mest betydelsefulla personen efter rektorn), vars huvuduppgift var att se till att ingen rörde nÄgot. Verkligen ingenting. Inte ens ingÄngsdörren.
I klassrummen kunde man oftast möta system som BK-0010 (i dess varianter) och BK-0011M.

Bild tagen frÄn
Barnen fick lÀra sig om den allmÀnna konstruktionen samt ett tiotal kommandon i "BASIC" sÄ att de kunde rita linjer och cirklar pÄ skÀrmen. För yngre och mellanliggande klasser var detta nog tillrÀckligt.
Att spara sina skapelser (program) var dÄ ett separat problem. Oftast sammankopplades datorerna med hjÀlp av monokanalkontroller i ett nÀtverk med toppologin "gemensam buss" och en överföringshastighet pÄ 57600 baud. Diskettenheten var vanligtvis en och det var ofta problem med den. Den fungerade ibland, ibland inte, ibland hÀngde nÀtverket och ibland kunde inte disketten lÀsas.
Jag bar runt pÄ detta verk med en kapacitet pÄ 360 kB.

Chansen att jag Äterigen skulle fÄ fram mitt program frÄn disketten var 50-70 procent.
Men det största problemet med alla dessa datorhistorier med "BK" var de oÀndliga hÀngningarna.
Det kunde hÀnda nÀr som helst, vare sig det var vid koden eller vid körning av programmet. Ett fryst system betydde att de 45 minuterna du spenderade var bortkastade, eftersom du fick börja om, men den tid som var kvar av lektionen rÀckte inte till för detta.
NÀrmare 1993 började vissa skolor och gymnasier fÄ ordentliga klassrum med 286-maskiner, och pÄ vissa stÀllen stod det till och med "treor". NÀr det kom till programmeringssprÄk fanns det tvÄ alternativ: dÀr "BASIC" tog slut, började "Turbo Pascal".
Programmering i "Turbo Pascal" med exempel frÄn "tankarna"
PÄ "Pascal" lÀrde barnen sig bygga loopar, rita olika funktioner, och arbeta med arrayer. PÄ fysik-matematiska gymnasiet, dÀr jag en tid "uppehöll" mig, hade vi bara en lektion i veckan av datakunskap. Och under tvÄ Är var det just den hÀr tristessen. SjÀlvklart ville man göra nÄgot mer seriöst Àn att bara skriva ut vÀrdena i en array eller nÄgon sinuskurva.
Tankar
Battle City var ett av de mest populÀra spelen pÄ NES-kloner (Dendy m.fl.).

Ă
r 1996 hade populariteten för 8-bitarna passerat, de hade legat dammiga i skÄpen lÀnge, och det kÀndes som en kul idé att göra en klon av "Tankar" för PC. HÀrnÀst handlar det om hur jag verkligen fick kÀmpa för att fÄ nÄgot med grafik, mus och ljud i "Pascal".

Man kan bara rita pinnar och cirklar.
LÄt oss börja med grafiken.

I sin grundversion tillÀt "Pascal" att rita vissa figurer, fylla i och bestÀmma fÀrger pÄ punkter. De mest avancerade procedurerna i Graph-modulen, som nÀrmade sig sprites, Àr GetImage och PutImage. Med deras hjÀlp kunde man fÄnga en del av skÀrmen i en förutbestÀmd minnesregion och sedan anvÀnda den biten som en rasterbild. Med andra ord, om du vill anvÀnda vissa element eller bilder flera gÄnger pÄ skÀrmen ritar du dem först, kopierar i minnet, raderar skÀrmen, ritar nÀsta och fortsÀtter sÄ lÀnge tills du skapa det bibliotek du behöver i minnet. Eftersom allt sker snabbt mÀrker anvÀndaren inget av dessa trick.
Den första modulen som anvÀnde sprites var kartredigeraren.

Den hade ett markerat spelfÀlt. Ett musklick öppnade en meny dÀr man kunde vÀlja ett av fyra alternativ för hinder. Förresten, talar vi om musen...
Musen â det var redan i slutet av 90-talet.
SjÀlvklart hade alla möss, men fram till mitten av 90-talet anvÀnde man dem bara i Windows 3.11, grafiska paket och ett fÄtal spel. I Wolf och Doom spelade man bara med tangentbordet. I DOS-miljön var musens anvÀndning heller inte nödvÀndig. SÄ i Borland inkluderade man inte ens modulen för musöverföringar i standardpaketet. Man var tvungen att frÄga bekanta som ryckte pÄ axlarna och svarade "men vad ska du ha den till?".
Men att hitta en modul för att frÄga musen Àr bara hÀlften av jobbet. För att klicka med musen pÄ skÀrmknapparna mÄste de ritas. Och i tvÄ varianter (tryckt och inte tryckt). Den icke-tryckta knappen har en ljus översida och en skugga under. Den tryckta knappen Àr tvÀrtom. Dessutom mÄste man rita den pÄ skÀrmen tre gÄnger (inte tryckt, tryckt, sedan igen inte tryckt). Glöm inte att sÀtta fördröjningar för visningen och dölja muspekaren.

Till exempel sÄg behandlingen av huvudmenyn i koden ut sÄ hÀr:

Ljud â endast PC Speaker-ljudsignal
En separat historia handlar om ljud. I början av nittiotalet var klonerna av Sound Blaster fortfarande i sin begynnelse och de flesta program fungerade endast med den inbyggda högtalaren. Maximal kapacitet var att spela upp endast en ton samtidigt. Och just detta kunde Turbo Pascal göra. Genom proceduren sound kunde man "pipa" med olika frekvenser, vilket var tillrĂ€ckligt för ljud av skott och explosioner, men för musikaliska jinglar, vilket var populĂ€rt dĂ„, var detta helt otillrĂ€ckligt. I slutet hittades en ganska fyndig lösning: i vĂ„r mjukvaruarkiv fanns det en "exekverbar fil" som nĂ„gon gĂ„ng hade laddats ner frĂ„n nĂ„gon BBS. Den kunde göra underverk â spela upp okomprimerade wav-filer genom PC Speaker, vilket den gjorde frĂ„n kommandoraden och utan eget grĂ€nssnitt. Allt som behövdes var att anropa den genom Pascal-proceduren exec och se till att den konstruktionen inte kraschade.
Som ett resultat fanns det nu en fantastisk musik pÄ intro-skÀrmen, men nÄgot lustigt hÀnde. à r 1996 hade jag ett system med Pentium 75 överklockat till 90. Allt fungerade utmÀrkt pÄ den. Men pÄ universitetet, dÀr vi i andra terminen fick Pascal, stod det gamla "tres" i klassrummet. Genom en överenskommelse med lÀraren tog jag med mig dessa tanks för att fÄ ett godkÀnnande och inte behöva gÄ dit mer. SÄ efter att ha startat, kom det en hög ljud frÄn högtalaren blandat med kvÀkande, gutturala ljud. Sammanfattningsvis klarade den 33 megahertz "trean" inte av att spela den dÀr "exekverbara filen" normalt. Men annars var allt okej. Naturligtvis, förutom den fördröjda tangentbordsavlÀsningen som förstörde hela spelupplevelsen oavsett datorns prestanda.

Men det stora problemet ligger inte i "Pascal".
I min mening var "Tankar" det max som gick att fÄ ut av Turbo Pascal utan assemblerinsatser. Bland de uppenbara nackdelarna med den slutliga produkten finns en lÄngsam tangentbordsavlÀsning och lÄngsam grafikkonstruktion. Situationen försvÄrades av det extremt lilla antalet tredjepartsbibliotek och moduler. De kunde rÀknas pÄ en hand.
Men det som mest frustrerade mig var instÀllningen inom skolan. Barnen fick dÄ inte veta om fördelarna och möjligheterna med andra sprÄk. Under lektionerna började man nÀstan direkt prata om begin, println och if, vilket lÄste eleverna inom Basic-Pascal-paradigmen. BÄda dessa sprÄk kan betraktas som rent pedagogiska. Deras "kampanvÀndning" Àr ett sÀllsynt fenomen.
Varför lÀra barn falska sprÄk Àr en gÄta för mig. Visst Àr de mer illustrativa. Visst anvÀnds varianter av "Basic" hÀr och dÀr. Men i vilket fall som helst, om en person funderar pÄ att knyta sin framtid till programmering, kommer de att behöva lÀra sig andra sprÄk frÄn grunden. SÄ varför inte ge barnen samma pedagogiska uppgifter, men pÄ en riktig plattform (sprÄk), dÀr de kan utvecklas vidare pÄ egen hand?
Förresten om uppgifter. I skolan och pÄ universitetet var de alltid abstrakta: rÀkna det hÀr, bygga en funktion, rita nÄgot. Jag gick i tre olika skolor, plus att vi hade "Pascal" pÄ första Äret pÄ universitetet, och inte en enda gÄng stÀllde lÀrarna en enda verkligt praktisk uppgift. Till exempel att göra en anteckningsbok eller nÄgot annat anvÀndbart. Allt var pÄhittat. Och nÀr en person i mÄnader löser meningslösa uppgifter som sedan gÄr i papperskorgen... Sammanfattningsvis gÄr mÀnniskor frÄn universitetet ut utbrÀnda.
Förresten, pÄ tredje Äret av samma högskola satte de "plussarna" i programmet. Det tyckte vi var bra, men folk var trötta, mÀtta av falska och "pedagogiska" uppgifter. Det fanns ingen entusiasm, som första gÄngen, hos nÄgon.
P.S. Jag googlade vad det Àr för sprÄk som nu undervisas i skolorna under datorkurser. Allt Àr som för 25 Är sedan: Basic, Pascal. Med enstaka inslag av Python.
KĂ€lla: habr.com
