Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Něco o tom, jak vypadala školní informatika v 90. letech, a proč bývali všichni programátoři tehdy výhradně samoukové.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Na čem se děti učily programovat

Na začátku 90. let začaly moskevské školy selektivně vybavovat třídy počítači. V místnostech se ihned osazovaly mříže na oknech a těžké železné dveře. Z ničeho nic se objevil učitel informatiky (vypadal jako nejdůležitější osoba hned po řediteli), jehož hlavním úkolem bylo dohlížet na to, aby si nikdo na nic nesahal. Opravdu na nic. Ani na vstupní dveře.
V třídách bylo nejčastěji možné potkat systémy BK-0010 (v jeho variantách) a BK-0011M.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně
Foto převzato odsud

Dětem byly vysvětlovány základní komponenty, stejně jako několik příkazů 'Basic', aby mohly nakreslit na obrazovce čáry a kruhy. Pro nižší a střední třídy to pravděpodobně stačilo.

S ukládáním svých výtvorů (programů) byly tehdy samostatné problémy. Nejčastěji byly počítače propojeny pomocí jednopásmových kontrolerů do sítě s topologií 'sdílená sběrnice' a rychlostí přenosu 57600 baud. Disková jednotka byla zpravidla jedna a ta často nefungovala. Někdy fungovala, někdy ne, síť zamrzla, disketu nebylo možné přečíst.

Já jsem tehdy nosil s sebou toto výtvor o kapacitě 360 kB.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Šance, že z něj opět vytáhnu svůj program, byly asi 50-70 procent.

Hlavním problémem všech těchto počítačových historek 'BK' však byla nekonečná zamrzání.

To se mohlo stát v kterémkoli okamžiku, ať už při psaní kódu nebo při spuštění programu. Zamrzlý systém znamenal, že 45 minut času jsi prožil zbytečně, protože jsi musel dělat všechno znovu, ale zbývající čas vyučovací hodiny už na to nestačil.

Kolem roku 1993 se v některých školách a gymnáziích objevovaly normální třídy s 286 počítači, a někde stály dokonce 'třístovky'. Co se týče programovacích jazyků, byly dvě varianty: tam, kde končil 'Basic', začínal 'Turbo Pascal'.

Programování v 'Turbo Pascalu' na příkladu 'tanků'

Na "Pascale" děti učily vytvářet cykly, kreslit různé funkce a pracovat s poli. V fyzikálně-matematickém lyceu, kde jsem nějakou dobu "přebýval", byla informatika vyhrazena jedné hodině týdně. A dva roky tam byla tahle nuda. Samozřejmě, chtělo se mi udělat něco vážnějšího než jen zobrazování hodnot pole nebo nějaké sinusoidy.

Tanky

Battle City byla jednou z nejpopulárnějších her na konzolích klonů NES (Dendy a dalších).

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

V roce 1996 popularity 8-bitových her pominula, už dlouho prachu v skříních a přišlo mi zajímavé udělat klon "Tanků" pro PC jako něco velkého. Další je o tom, jak bylo tehdy nutné se vykroutit, aby se na "Pascale" vytvořilo něco s grafikou, myší a zvukem.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Můžete kreslit jen tyčinky a kolečka

Začneme s grafikou.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

V základní verzi "Pascal" umožňoval kreslit některé tvary, vyplňovat a určovat barvy bodů. Nejpokročilejší procedury v modulu Graph, které nás přibližovaly ke spriteům, jsou GetImage a PutImage. S jejich pomocí bylo možné zachytit do předem rezervované oblasti paměti úsek obrazovky a poté použít tento kousek jako rastrový obrázek. Jinými slovy, pokud chcete na obrazovce opakovaně používat některé prvky nebo obrázky, nejprve je nakreslíte, zkopírujete do paměti, vymažete obrazovku, nakreslíte další a tak dál, dokud nevytvoříte v paměti potřebnou knihovnu. Protože se to děje rychle, uživatel těchto triků si nevšimne.

První modul, kde se začaly používat spritey – editor map.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Měl rozvržené herní pole. Kliknutí myší vyvolalo menu, ve kterém bylo možné vybrat jednu ze čtyř variant překážek. Mimochodem o myši…

Myš – to už je konec 90. let

Myši samozřejmě měly všichni, ale do poloviny 90. let se používaly pouze ve Windows 3.11, grafických balících a v malém počtu her. V Wolfa a Dooma se hrálo jen s klávesnicí. A v prostředí DOS ani myš nebyla moc potřebná. Proto v Borlandu modul pro práci s myší ani nezahrnovali do standardní dodávky. Ten bylo potřeba hledat u známých, kteří jen krčili rameny a na to zvolali "a k čemu ti to je?".

Najít modul pro sledování myši je pouze polovina úkolu. Aby bylo možné klikat myší na obrazovkové tlačítka, je nutné je navrhnout. A to ve dvou variantách (stisknuté a nestisknuté). U nestisknutého tlačítka je horní část světlá a pod ním je stín. U stisknutého je to naopak. A je třeba je třikrát vykreslit na obrazovce (nestisknuté, stisknuté, pak zase nestisknuté). Plus nezapomenout nastavit zpoždění na zobrazení a ukrýt kurzor.

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Například zpracování hlavního menu v kódu vypadalo takto:

Tanky na Pascalu: jak učili děti programování v 90. letech a co bylo špatně

Zvuk – pouze piezo reproduktor počítače.

Samostatný příběh je se zvukem. Na počátku devadesátých let se klony Sound Blaster teprve chystaly na své vítězné tažení a většina aplikací pracovala pouze se vestavěným reproduktorem. Jeho maximální možnosti – to je současné přehrávání pouze jednoho tónu. A právě to umožňoval Turbo Pascal. Pomocí procedury sound bylo možné "pípat" na různých frekvencích, což stačilo pro zvuky výstřelů a výbuchů, ale pro hudební znělku, jak to tehdy bylo módní, to všechno nebylo dostatečné. Nakonec se našlo velmi důmyslné řešení: v našem vlastním archivu softwaru se objevil "exekuční" program, stažený kdysi z nějaké BBS. Ten uměl dělat zázraky – reprodukovat nekomprimované wav soubory přes PC Speaker, přičemž to dělalo z příkazového řádku a nemělo vlastní rozhraní. Vše, co bylo třeba, bylo vyvolat ho přes Pascalovu proceduru exec a ujistit se, že tato konstrukce nezhavaruje.

Nakonec se na znělce objevil parádní hudební kousek, ale s tím se stala vtipná věc. V roce 1996 jsem měl systém na Pentium 75, vytaktovaném na 90. Na něm vše fungovalo skvěle. Ve škole, kde nám na druhý semestr dali Pascal, v učebně stály zastaralé "třídy". Po dohodě s učitelem jsem na druhou hodinu přinesl tyto tanky, abych dostal zápočet a už tam nechodil. A tak, po spuštění začal z reproduktoru znít hlasitý řev smíchaný s houpavými hrdlovými zvuky. Zkrátka, 33 MHz "třída" nedokázala zvládnout ten samý "exekuční" program. Ale jinak to bylo v pořádku. Samozřejmě, nepočítaje zpožděné snímání klávesnice, které kazilo celý herní zážitek bez ohledu na výkon PC.

Přehrát video

Ale hlavní problém není v "Pascalu".

Podle mého názoru byly „Tanky“ maximem, co se dalo vytěžit z Turbo Pascalu bez assemblerových vložek. Mezi zřejmé nedostatky konečného produktu patří pomalé čtení z klávesnice a pomalé vykreslování grafiky. Situaci zhoršovalo velmi nízké množství externích knihoven a modulů. Ty se daly počítat na prstech jedné ruky.

Ale nejvíc mě rozčiloval přístup ve školním vzdělávání. Dětem nikdo tenkrát neřekl o výhodách a možnostech jiných jazyků. Na hodinách se prakticky hned začalo mluvit o begin, println a if, což uvězňovalo studenty v paradigmatu basic-pascal. Oba tyto jazyky lze považovat výhradně za výukové. Jejich „bojové“ použití je vzácný jev.

Proč učit děti falešným jazykům – to je pro mě záhada. Ať už jsou více názorné. Ať už se varianty „Básika“ kdesi používají. V každém případě, pokud se někdo rozhodne spojit svou budoucnost s programováním, bude muset začít od nuly s jinými jazyky. Tak proč nedávat dětem stejné výukové úkoly, ale už na normální platformě (jazyku), v rámci které by se mohly dále samostatně rozvíjet?

Mimochodem o úkolech. Ve škole a na institutu byly vždy abstraktní: spočítat tohle, vytvořit funkci, nakreslit něco. Studoval jsem na třech různých školách, navíc jsme měli „Pascal“ na první ročník institutu, a ani jednou nám učitelé nedali nějaký reálný aplikační úkol. Například vytvořit zápisník nebo něco užitečného. Všechno bylo vymyšlené. A když člověk měsíce řeší prázdné úkoly, které pak končí v koši… Celkově lidé z institutu vycházejí vyhořelí.

Mimochodem, ve třetím ročníku stejné vysoké školy nám do programu zařadili „plusy“. Na první pohled dobrá věc, ale lidé byli unavení, nasycení falešnými a „výukovými“ úkoly. Nadšení, jako na poprvé, nikde nebylo.

P.S. Hledal jsem, jaké jazyky se dnes učí ve školách na hodinách informatiky. Vše jako před 25 lety: Basic, Pascal. Občas se vkládá Python.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster