Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Natuke sellest, milline oli kooli „arvutiteadus” 90ndatel ja miks kõik programmeerijad olid siis eranditult iseõppijad.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Mille järgi lapsi programmeerima õpetati

90ndate alguses hakati Moskva koole valikuliselt arvutiklassidega varustama. Ruumid olid kohe varustatud akende trellidega ja raske rauduksega. Kuskilt ilmus välja informaatikaõpetaja (paistis direktori järel kõige tähtsam kamraad), kelle põhiülesanne oli jälgida, et keegi midagi ei puutuks. Mitte midagi. Isegi välisuks.
Klassiruumides võis kõige sagedamini leida süsteeme BK-0010 (selles sortides) ja BK-0011M.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli
Foto tehtud siit

Lastele räägiti nii üldisest ülesehitusest kui ka kümmekonnast BASIC-käsklusest, et nad saaksid ekraanile jooni ja ringe joonistada. Noorematele ja keskmistele klassidele sellest ilmselt piisas.

Oma loomingu (programmide) säilitamisega oli probleeme. Kõige sagedamini ühendati ühe kanaliga kontrollereid kasutavad arvutid "ühise siini" topoloogiaga võrku, mille edastuskiirus oli 57600 boodi. Reeglina oli ainult üks kettaseade ja sellega läksid asjad sageli viltu. Mõnikord see töötab, mõnikord mitte, mõnikord on võrk külmunud, mõnikord on diskett loetamatu.

Kandsin siis kaasas seda loomingut mahuga 360 kB.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Tõenäosus, et ma oma programmi sealt uuesti välja saan, oli 50-70 protsenti.

Kõigi nende BC arvutitega lugude põhiprobleemiks olid aga lõputud külmumised.

See võib juhtuda igal ajal, olenemata sellest, kas sisestate koodi või käivitate programmi. Külmunud süsteem tähendas, et kulutasite 45 minutit asjata, sest... Pidin kõike uuesti tegema, kuid järelejäänud tunniajast selleks enam ei piisanud.

1993. aastale lähemale tekkisid mõnes koolis ja lütseumis tavaklassid 286 autoga, kohati oli neid isegi kolm rubla. Programmeerimiskeelte osas oli kaks võimalust: kus lõppes “BASIC”, algas “Turbo Pascal”.

Programmeerimine "Turbo Pascalis" "tankide" näitel

Pascali abil õpetati lapsi looma silmuseid, joonistama kõikvõimalikke funktsioone ja töötama massiividega. Füüsika-matemaatika lütseumis, kus ma mõnda aega “elasin”, määrati üks paar nädalas informaatika erialale. Ja kaks aastat oli see igav koht. Muidugi tahtsin teha midagi tõsisemat kui massiivi või mingi sinusoidi väärtuste kuvamine ekraanil.

Tankid

Battle City oli üks populaarsemaid mänge NES-i kloonikonsoolidel (Dendy jne).

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

1996. aastal oli 8-bitiste populaarsus möödas, need olid juba ammu kappides tolmu kogunud ja mulle tundus lahe teha “Tanksi” kloon PC-le kui midagi suuremahulist. Alljärgnev on just sellest, kuidas tollal oli vaja kõrvale põigelda, et Pascalis graafika, hiire ja heliga midagi kirjutada.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Joonistada saab ainult pulgakesi ja ringe

Alustame graafikaga.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Põhiversioonis võimaldas Pascal joonistada mõningaid kujundeid, värvida ja määrata punktide värve. Graafi mooduli kõige arenenumad protseduurid, mis viivad meid spraitidele lähemale, on GetImage ja PutImage. Nende abiga oli võimalik jäädvustada osa ekraanist eelnevalt reserveeritud mälualasse ja seejärel kasutada seda tükki bitmap-pildina. Teisisõnu, kui soovite mõnda elementi või pilti ekraanil uuesti kasutada, peate need esmalt joonistama, kopeerima mällu, kustutama ekraani, joonistama järgmise ja nii edasi, kuni loote mällu soovitud teegi. Kuna kõik toimub kiiresti, ei pane kasutaja neid nippe tähele.

Esimene moodul, kus spraite kasutati, oli kaardiredaktor.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Sellel oli märgistatud mänguväli. Hiirt klõpsates avanes menüü, kus saate valida ühe neljast takistuse valikust. Rääkides hiirest...

Hiir on juba 90ndate lõpp

Muidugi olid kõigil hiired, kuid kuni 90ndate keskpaigani kasutati neid ainult Windows 3.11-s, graafikapakettides ja vähesel hulgal mängudes. Wolfi ja Doomi mängiti ainult klaviatuuriga. Ja DOS-i keskkonnas polnud hiirt eriti vaja. Seetõttu ei lisanud Borland hiiremoodulit isegi standardpaketti. Teda tuli otsida oma tuttavate kaudu, kes tõstsid käed ja hüüdsid vastuseks: "Milleks sa teda vajad?"

Hiire küsitlemiseks mooduli leidmine on aga vaid pool võitu. Selleks, et hiirega ekraanil olevatele nuppudele vajutada, tuli need joonistada. Pealegi kahes versioonis (pressitud ja mitte pressitud). Vajutamata nupul on hele ülaosa ja selle all vari. Kui vajutada, on see vastupidi. Ja siis joonista see kolm korda ekraanile (ei vajuta, vajuta, siis ei vajuta uuesti). Lisaks ärge unustage seadistada kuvamiseks viivitusi ja peita kursor.

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

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

Tanchiki Pascalis: kuidas lastele 90ndatel programmeerimist õpetati ja mis selles valesti oli

Heli – ainult arvuti kõlarid

Heliga eraldi lugu. Üheksakümnendate alguses valmistusid Sound Blasteri kloonid just oma võidukaks marsiks ja enamik rakendusi töötas ainult sisseehitatud kõlariga. Selle võimaluste maksimum on ainult ühe tooni samaaegne taasesitamine. Ja just seda lubas Turbo Pascal teil teha. Heliprotseduuri kaudu oli võimalik erinevate sagedustega “surida”, millest piisab püssipaugude ja plahvatuste jaoks, kuid muusikaliseks ekraanisäästjaks, nagu tollal moes, see ei sobinud. Selle tulemusena leiti väga kaval lahendus: tarkvara enda arhiivist avastati “exe-fail”, mis laaditi üks kord mõnest BBS-ist alla. Ta suutis teha imesid – mängida pakkimata wav-e läbi arvuti kõlari ja ta tegi seda käsurealt ja tal polnud tegelikku liidest. Kõik, mida oli vaja, oli kutsuda see läbi Pascal exec protseduuri ja veenduda, et see konstruktsioon kokku ei kukuks.

Selle tulemusena ilmus ekraanisäästjasse tapjamuusika, kuid sellega juhtus naljakas seik. 1996. aastal oli mul süsteem Pentium 75 peal, vändati kuni 90-ni. Kõik töötas sellel hästi. Ülikoolis, kuhu Pascal meile teisel semestril paigaldati, olid klassiruumis kulunud “kolm rubla”. Kokkuleppel õpetajaga viisin need tankid teise tundi, et saada kontrolltöö ja mitte enam sinna minna. Ja nii kostus pärast käivitamist kõlarist valju mürinat, mis oli segatud urisevate kõhuhelidega. Üldiselt selgus, et 33-megahertsine DX "kolmerublane kaart" ei suutnud seda sama "täitmisfaili" korralikult keerutada. Aga muidu oli kõik hästi. Muidugi, kui mitte arvestada aeglast klaviatuuri küsitlust, mis rikkus kogu mängu, sõltumata arvuti jõudlusest.

Kuid põhiprobleem pole Pascalis

Minu arusaamise järgi on “tankid” maksimum, mida sai Turbo Pascalist ilma montaaživahedeta välja pigistada. Lõpptoote ilmsed puudused on aeglane klaviatuuri pollimine ja aeglane graafika renderdamine. Olukorda raskendas kolmandate osapoolte raamatukogude ja moodulite äärmiselt väike arv. Neid võis ühe käe sõrmedel üles lugeda.

Kõige rohkem häiris mind aga lähenemine kooliharidusele. Keegi ei rääkinud siis lastele teiste keelte eelistest ja võimalustest. Tunnis hakati peaaegu kohe rääkima algus-, println- ja if-st, mis lukustas õpilased BASIC-Pascali paradigma sisse. Neid mõlemaid keeli võib pidada eranditult harivateks. Nende "lahing" kasutamine on haruldane.

Miks õpetada lastele võltskeeli, on minu jaoks mõistatus. Las nad on visuaalsemad. Siin-seal kasutatakse BASICu variatsioone. Kuid igal juhul, kui inimene otsustab oma tuleviku programmeerimisega siduda, peab ta õppima teisi keeli nullist. Miks siis ei võiks lastele anda samu õppeülesandeid, vaid ainult tavalisel platvormil (keeles), mille raames nad saaksid iseseisvalt edasi areneda?

Rääkides ülesannetest. Koolis ja kolledžis olid nad alati abstraktsed: arvutage midagi, konstrueerige funktsioon, joonistage midagi. Õppisin kolmes erinevas koolis, lisaks oli meil instituudi esimesel kursusel “Pascal” ja mitte kordagi ei tekitanud õpetajad ühtegi tegelikku rakenduslikku probleemi. Tee näiteks märkmik või midagi muud kasulikku. Kõik oli kaugelt ära toodud. Ja kui inimene lahendab kuid tühje probleeme, mis siis prügikasti lähevad... Üldiselt lahkutakse instituudist juba läbipõlenuna.

Muide, sama ülikooli kolmandal kursusel pandi meile programmis “plussid”. Tundus hea asi, aga rahvas oli väsinud, võltsinguid ja “treeningu” ülesandeid täis. Keegi polnud nii entusiastlik kui esimesel korral.

PS Uurisin googeldades, mis keeli nüüd koolides informaatikatundides õpetatakse. Kõik on sama, mis 25 aastat tagasi: Basic, Pascal. Python on juhuslike lisanditena.

Allikas: www.habr.com

Lisa kommentaar