Veidi sellest, milline oli kooli "informaatika" 90ndatel ja miks kõik programmeerijad olid siis vaid iseseisvad õppijad.

Millega õpetati lapsi programmeerima
90ndate alguses hakati Moskva koolides valikuliselt varustama klassiruume arvutitega. Hoonesse pandi kohe akendele restid ja rasked raudkatted. Kuskilt ilmus välja informaatika õpetaja (kes nägi välja nagu kõige olulisem isik pärast direktorit), kelle peamine ülesanne oli jälgida, et keegi midagi ei puudutaks. Üldse mitte. Isegi sissepääsuväravat.
Klassides võis kõige sagedamini kohata süsteeme BК-0010 (erinevates versioonides) ja BК-0011М.

Foto on võetud
Lastele räägiti seadme üldisest ülesehitusest ja tosinast „Basic“ käsust, et nad saaksid ekraanile joonistada jooni ja ringe. Nooremate ja keskmiste klasside jaoks oli sellest ilmselt piisavalt.
Oma loominguga (programma) olid siis eraldi probleemid. Enamasti ühendasid arvutid ühekanalsete kontrollerite abil võrku „ühtse busi“ topoloogiaga, mille edastuskiirus oli 57600 baudi. Diskketas oli enamasti üks ja tihti tekkis sellega probleeme. Kas töötab või ei tööta, kas võrk on kinni või diskett ei loe.
Tookord vedasin endaga kaasas seda loomingut, mille mahutavus oli 360 kB.

Tõenäosus, et ma sellega oma programmi jälle kätte saan, oli umbes 50-70%.
Kuid peamine probleem kõigi nende arvutite „BK“ lugudega olid lõputud hangud.
See võis juhtuda igal hetkel, olgu see koodi kirjutamine või programmi käitamine. Kinni jäänud süsteem tähendas, et 45 minutit aega oli raisku läinud, kuna kõik tuli uuesti algusest alustada, aga jäänud koolitunni aega ei olnud enam piisavalt.
Ligikaudu 1993. aastaks hakkasid mõnes koolis ja gümnaasiumides ilmnema normaalsed klassid 286 arvutitega, ja vahel olid isegi „kolmikud“. Programmeerimiskeelte osas oli kaks varianti: seal, kus lõpetati „BASIC“, algas „Turbo Pascal“.
Programmeermine "Turbo Pascalis" näitel "Tanksidest"
"Pascali" õpetasid lapsi tsükleid koostama, erinevaid funktsioone joonistama, massiividega töötama. Füüsika-matemaatika gümnaasiumis, kus ma mõnda aega "elasin", oli informaatikale ette nähtud üks paar nädalas. Ja kaks aastat seal oli just selline igavus. Loomulikult tahtsin teha midagi tõsisemat, kui lihtsalt massiivi väärtuste ekraanile väljastamine või mingi siinus.
Tankid
Battle City oli üks populaarsemaid mänge NES (Dendy jne) kloonidel.

1996. aastal oli 8-bitiste populaarsus möödas, need kogusid juba tolmu kappides, ja mulle tundus toredana teha just klooni "Tanksidest" PC-le. Järgnevalt räägin sellest, kuidas tol ajal tuli läbi ajada, et "Pascali" teha midagi graafika, hiire ja heliga.

Joonistada saab ainult pulkasid ja ringe
Alustame graafikaga.

Baasmudelis "Paskal" sai joonistada mõningaid kujundeid, värvida ja määrata punktide värve. Kõige arenenumad protseduurid Graph moodulis, mis viivad meid sprite'ideni, on GetImage ja PutImage. Nende abil sai ekraanilt eelnevalt reserveeritud mälu alale kinni püüda ekraani osa ja see tükk kasutada rasterpildina. Teisisõnu, kui soovite ekraanil korduvalt kasutada mõnda elementi või pilti, joonistate need esmalt, kopeerite mälu, kustutate ekraani, joonistate järgmise ja nii edasi, kuni olete mälus loonud vajaliku teegi. Kuna kõik toimub kiiresti, ei märka kasutaja neid trikke.
Esimene moodul, kus kasutati sprite'e – kaardiredaktor.

Selles oli märgistatud mänguväli. Hiire klikkimine kutsus esile menüü, kust sai valida ühe neljast takistusest. Muide, hiire kohta…
Hiir – see on juba 90ndate lõpp
Hiired olid muidugi kõigil, kuid 90ndate keskpaigani kasutasid neid ainult Windows 3.11, graafikapakettide ja mõne mängu puhul. Wolfis ja Doom'is mängiti vaid klaviatuuri abil. Samuti ei olnud hiire kasutamine DOS-keskkonnas eriti vajalik. Seetõttu ei olnud Borlandi hiiremoodulit isegi standardpaketis. Selle leidmiseks tuli küsida tuttavatelt, kes käsi laiutades ütlesid: "Aga miks sa seda vaja pead?".
Kuid hiireküsitluse mooduli leidmine on vaid pool tööst. Et hiirega ekraanil nuppe klõpsata, pidi need ka joonistama. Ehk kahe variandina (vajutatud ja mitte vajutatud). Mitte vajutatud nupul on ülemine osa hele ja allpool vari. Vajutatud nupul on vastupidi. Ja tuleb joonistada ekraanile kolm korda (mitte vajutatud, vajutatud, ja siis jälle mitte vajutatud). Pluss ei tohi unustada näidata viivitusi ja hiirt peita.

Näiteks nägi põhimenüü töötlemine koodis välja selline:

Heli – ainult PC Speaker.
Erinev lugu on heliga. 90ndate alguses valmistusid Sound Blasteri koopiad oma võiduka juurdeolekuks, ja enamik rakendusi töötas ainult sisseehitatud kõlariga. Tema võimaluste maksimaalne tase oli korraga ainult ühe tooni esitamine. Just seda võimaldas teha Turbo Pascal. Heliprotseduuriga sound sai "piiksuda" erinevatel sagedustel, mis oli piisav tule- ja plahvatushelide jaoks, kuid muusika tausta loominguks, nagu tol ajal oli moes, oli see kõik sobimatu. Lõpuks leiti üsna nutikas lahendus: oma tarkvara arhiivist leiti "eksekuteeritav fail", mis kunagi sai alla laaditud mingist BBS-ist. See oskas imesid teha – esitada tihendamata wav-failide kaudu PC Speaker'i, tehes seda käsurealt ja ilma oma kasutajaliideseta. Kõik, mida vaja, oli selle käivitamine Pascal'i protseduuri exec kaudu ja hoolitseda, et see konstruktsioon kokku ei kuku.
Lõpuks ilmnes ekraanil võimas muusika, kuid koos sellega tuli välja üks huvitav asi. 1996. aastal oli mul Pentium 75 süsteem, mis oli üle kliendatud 90-le. Sellega töötas kõik suurepäraselt. Ülikoolis, kus me teisel semestril õppisime Pascalit, seisis õpiklassis mõningaid vanu „kolmekesi“. Kooskõlastades õpetajaga, tõin teisele tunnile need mängud, et saada arvestus ja enam sinna tagasi mitte minna. Ja siin, pärast käivitamist, kostus kõlarist vali mürin koos burkade häältetega. Ühesõnaga, 33-megahertsine „kolmekas“ DX-l ei olnud võimalik korralikult käivitada seda „exe“ faili. Aga muul osas oli kõik korras. Muidugi, välja arvatud aeglane klaviatuuri küsitlus, mis rikkus kogu mängukogemuse, sõltumata arvuti jõudlusest.

Kuid peamine probleem ei ole Pascalis
Minu arusaam «Tankidest» on, et see on maksimaalne, mida Turbo Pascalist ilma assembleri sisestusteta välja võtta sai. Selgelt nähtavad puudused lõpp-toote juures olid aeglane klaviatuuri küsitlus ja aeglane graafika joonistamine. Situatsiooni halvendas ülimalt vähe kolmandate osapoolte raamatukogusid ja mooduleid. Neid sai ühe käe sõrmedega kokku lugeda.
Aga kõige rohkem häiris mind lähenemine koolihariduses. Lastele ei räägitud siis teiste keelte eelistest ja võimalustest. Tundides hakati peaaegu kohe rääkima begin, println ja if, mis sulges õpilased beesiiko-paskali paradigmadesse. Neid kahte keelt võib pidada puhtalt hariduseks. Nende „sõjaline“ rakendamine on haruldane nähtus.
Miks õppida lapsi vale keeltesse – see on minu jaoks mõistatus. Need võivad olla rohkem visuaalsed. Kuigi erinevaid „Basic” variante kasutatakse mõnes kohas. Aga igal juhul, kui inimene mõtleb oma tuleviku sidumise üle programmeerimisega, peab ta õppima algusest peale teisi keeli. Miks mitte esitada lastele samu õppeülesandeid, aga juba normaalses platvormis (keeles), mille raames nad võiksid edaspidi iseseisvalt areneda?
Muide, õppeülesannetest. Koolis ja ülikoolis olid need alati abstraktsed: arvutada, ehitada funktsioon, joonistada midagi. Olen õppinud kolm erinevat kooli, lisaks oli meil ülikooli esimesel aastal „Pascal”, ja mitte kordagi ei esitatud õpetajate poolt mingit tõeliselt rakenduslikku ülesannet. Näiteks teha märkmik või midagi kasulikku. Kõik oli välja mõeldud. Kui inimene kuu aega lahendab tühje ülesandeid, mis seejärel prügi minna ... Lõppkokkuvõttes tulevad inimesed ülikoolist välja läbi põlenud.
Muide, kolmandal aastal samas ülikoolis lisandus meie õppekavasse „plussid“. Tundub, et teema on hea, kuid inimesed olid väsinud, küllastunud valeandmetest ja „õppeteemadest“. Entusiasmi, nagu esimesel korral, ei olnud kellelgi.
P.S. Otsisin, milliseid keeli praegu koolides informaatikatundides õpetatakse. Kõik on sama nagu 25 aastat tagasi: Basic, Pascal. Üksikutes kohtades tuleb ka Python.
Allikas: habr.com
