Veidi sellest, milline oli kooli "informaatika" 90ndatel ja miks olid kõik programmerid siis peamiselt isekoolitunud.

Millega õpetati lapsi programmeerima
90ndate alguses hakkasid Moskva koolid vahelduvalt varustama klasse arvutitega. Ruumi pandi kohe päevasel ajal restid akendele ja rasked metallist uksed. Kustagilt ilmus arvutiklassi õpetaja (nähtavasti pärast direktorit kõige tähtsam isik), kelle peamine ülesanne oli jälgida, et keegi midagi ei puudutaks. Üldse mitte. Isegi sissepääsu ust.
Klassides võis kõige sagedamini kohata süsteeme BK-0010 (tema variatsioonides) ja BK-0011M.

Foto on võetud
Lastele räägiti üldseadmestikust ja umbes kümnest "Basic" käsust, et nad saaksid ekraanile joonistada jooni ja ringe. Algklasside ja keskmiste klasside jaoks oli see arvatavasti piisav.
Oma loomingute (programmide) salvestamisega olid siis eraldi probleemid. Kõige sagedamini ühendati arvutid monokontrollerite abil ühte võrku „ühine buss” ja edastuskiirus oli 57600 baudi. Diskettajam oli tavaliselt üks ja see ei töötanud tihti. Kas töötab või ei tööta, kas võrguühendus katkes või diskett ei loe.
Tollal kandsin endaga kaasas seda loomingut, mille maht oli 360 kB.

Tõenäosus, et suudan sellelt oma programmi jälle üles leida, oli umbes 50–70 protsenti.
Kuid peamine probleem kõigi nende lugude juures arvutitega „BK” olid lõputud hangumised.
See võis juhtuda igal hetkel, olgu see siis koodi sisestamine või programmi käitamine. Jääk süsteem tähendas, et 45 minutit aega oli raisatud, sest tuli kõik alustada uuesti, kuid jäänud õppetööks ei olnud sellele enam piisavalt aega.
Aasta 1993 lähenedes ilmnesid mõnes koolis ja gümnaasiumites normaalsed klassid 286 masinatega, mõnes kohas seisis isegi 'kolmnurk'. Programmeerimiskeelte osas oli kaks varianti: seal, kus lõppes 'BASIC', algas 'Turbo Pascal'.
Programmimine 'Turbo Pascalis' näidetes 'tankid'
Lastele õpetati „Pascalis“ tsüklite loomist, funktsioonide joonistamist ja massiividega töötamist. Füüsika-matemaatika gümnaasiumis, kus ma mõnda aega „viibisin“, antakse informaatikale üks õppetund nädalas. Ja seal oli kaks aastat seda igavust. Loomulikult tahtsin ma teha midagi tõsist, mitte lihtsalt massiivi väärtuste või mingi siinusfunktsiooni ekraanile väljatrükki.
Tankimängud
Battle City oli üks populaarsemaid mänge NES-i (Dendy jmt) koopia gazettidel.

1996. aastal oli 8-bitiste mängude populaarsus möödas, nad olid ammu kapis tolmu kogumas, ja mulle tundus huvitav teha midagi mastaapset – nimelt kloon „Tankimängudest“ PC-le. Edasi räägin sellest, kuidas siis tõeliselt nutikas olla, et „Pascalis“ midagi graafika, hiire ja heliga tekitada.

Sa saad joonistada ainult pulkasid ja ringe
Alustame graafikast.

Põhiversioonis võimaldas „Pascal“ joonistada teatud kuju, neid täita ja punktide värve määrata. Kõige arenenumad protseduurid, mis modulis Graph meid sprite'ide juurde viisid, olid GetImage ja PutImage. Nende abil sai eelnevalt reserveeritud mälu alasse ekraani osa salvestada ja seejärel kasutada seda lõigatud rasterpildina. Teisisõnu, kui soovite ekraanil mitmeid elemente või pilte korduvalt kasutada, joonistate need esmalt, kopeerite mälu, kustutate ekraani, joonistate järgmise ja nii edasi, kuni olete loonud vajaliku teegi mällu. Kuna kõik toimub kiiresti, ei pane kasutaja neid trikke tähele.
Esimene moodul, kus kasutati sprite'e, oli kaardiredaktor.

Seal oli markeeritud mänguväli. Hiireklõps kutsus esile menüü, kus võis valida ühe neljast takistuse variandist. Muide hiire kohta...
Hiir – see on juba 90ndate lõpp
Hiiri oli muidugi kõigil, kuid 90ndate keskpaigani kasutati neid vaid Windows 3.11, graafiliste paketide ja vähese arvu mängude puhul. Wolfis ja Doom'is mängiti ainult klaviatuuriga. Ka DOS-i keskkonnas ei olnud hiir eriti vajalik. Seetõttu ei sisaldanud Borlandi hiire kasutamise moodulit isegi standardne pakkumine. Seda pidi otsima tuttavatelt, kes lehvitasid käsi ja küsisid: „Milleks sul seda vaja on?“
Kuid hiirekursoriga menüüelementide klõpsamine on vaid osa töödest. Esmalt tuleb need ekraanile joonistada, kahes variandis (tavaolekus ja vajutatuna). Tavaolekus on nupul hele ülemine osa ja all on vari. Vajutatuna on vastupidi. Ja see tuleb ekraanil kuvada kolm korda (tavaolekus, vajutatuna, siis taas tavaolekus). Lisaks ei tohi unustada, et seadistada viivitused kuvamiseks ja peita kursor.

Näiteks nägi peamenüü töötlemine koodis välja nii:

Heli – ainult PC Speakeri piiks
Heli on eraldi lugu. Kaheksakümnendate alguses valmistusid Sound Blasteri kloonid oma võidukäiguks ja enamus rakendusi töötasid vaid sisseehitatud kõlariga. Selle maksimaalsed võimalused piirduvad ühe tooni samaaegse esitamisega. Just seda võimaldas teha Turbo Pascal. Protseduuri sound kaudu sai 'piiksuda' erinevatel sagedustel, mis oli piisav paugutamise ja plahvatuste helide jaoks, kuid muusikapala esitlemiseks, nagu sel ajal moes oli, see ei sobinud. Lõpuks leiti üsna nutikas lahendus: oma tarkvara arhiivist leiti mingi "ekzeshniku", mis kunagi mingist BBS-ist alla laaditud. See suutis imesid teha – esitada kompressimata wav-faile PC Speakeri kaudu, tehes seda käsurealt, ilma eraldi liidese olemasoluta. Kõik, mis oli vajalik, oli kutsuda see välja pascalite protseduuri exec kaudu ja jälgida, et see struktuur ei kukuks kokku.
Lõpuks ilmus ekraanile lahe muusika, kuid sellega juhtus naljakas asi. 1996. aastal oli mul Pentium 75, mille olin üle kelle 90-ni üles keeranud. Sellel töötas kõik suurepäraselt. Kuid ülikoolis, kus me teisel semestril Pascalit õppima hakkasime, olid õpetlikus klassis vanad "kolmandad" arvutid. Kokku lepitud õpetajaga, tõin ma teisele tunnile need tankid, et saada arvestus ja rohkem sinna mitte minna. Ja nii, pärast käivitamist kostus kõlaritest vali möiramine koos kõhklsete hääletustega. Ühesõnaga, 33-megahertsine "kolmas" DX ei suutnud isegi seda "ekzeshnikut" korralikult tööle panna. Aga muidu oli kõik hästi. Loomulikult, arvestamata klaviatuuri mahajäämust, mis rikkus kogu mängukogemuse sõltumata PC jõudlusest.

Kuid peamine probleem ei olnud "Pascalis".
Minu arusaama järgi on «Tankid» maksimum, mis Turbo Pascalist ilma assembleri sisestusteta välja pigistada sai. Selgeks puuduseks lõpptootes olid aeglane klaviatuuri küsitlus ja aeglane graafika joonistamine. Olukorda süvendas äärmiselt vähene kolmandate osapoolte teekide ja moodulite arv. Neid sai ühe käe sõrmedega lugeda.
Aga kõige rohkem häiris mind lähenemine koolihariduses. Lastele ei räägitud siis teiste keelte eeliste ja võimaluste kohta. Tundides hakati peaaegu kohe rääkima begin, println ja if, mis lukustas õpilased Basic-Pascal'i paradigmasse. Neid kahte keelt saab pidada ainuüksi õpikuteatekse. Nende "lahedat" rakendamist esines harva.
Miks õpetada lastele vale keeli – see on minu jaoks müsteerium. Olgu nad visuaalselt arusaadavamad. Olgu Basic'i variandid kusagil kasutusel. Aga igal juhul, kui inimene plaanib oma tulevikku programmeerimisega siduda, peab ta siiski nullist õppima teisi keeli. Miks mitte seada lastele samu õpiküsimusi, vaid juba normaalses platvormis (keeles), mille raames nad saaksid edasi areneda iseseisvalt?
Muide, ülesannete kohta. Koolis ja instituudis olid need alati abstraktsed: arvutada midagi, koostada funktsioon, joonistada midagi. Õppisin kolmes erinevas koolis, pluss meil oli "Pascal" esimesel kursusel instituudis, ja kordagi ei seadnud õppejõud mingit reaalselt rakenduslikku ülesannet. Näiteks teha märkmik või midagi kasulikku. Kõik oli välja mõeldud. Ja kui inimene kuude kaupa lahendab tühje ülesandeid, mis siis minema visatakse… Kokkuvõtteks, instituudist tulevad inimesed juba läbi põletatuna.
Muide, kolmandal kursusel sama ülikooli programmis said meil "plussid". Tundus, et asi on hea, kuid rahvas oli väsinud, küllastunud vale ja "õppimise" ülesannetest. Entusiasm ei olnud enam see, nagu esimesel korral.
P.S. Otsisin teavet selle kohta, milliseid keeli praegu koolides infotehnoloogia tundides õpetatakse. Kõik on nagu 25 aastat tagasi: Basic, Pascal. Üksikud sisestused on Python.
Allikas: habr.com
