Roll out!

Historický úvod

V některém ročníku se studenti-programátoři učí krásný programovací jazyk C++, a pak v některém dalším ročníku k tomu přidají ještě programovací jazyk C#. Oč méně krásný, o to více tržně prosazený. Je to dost?

Ano i ne. Lze předpokládat, že v každém ročníku se najde student, který se dokáže naučit libovolný počet dalších programovacích jazyků, a pokud k tomu potřebuje školu, tedy aby (levně) dodala překladače. A bohužel je jisté a mnohokrát na vlastní kůži experimentálně ověřeno, že v každém ročníku se najde student neschopný (nebo neochotný) rozpoznat, co mají jazyky společné a v čem se liší (a proč se liší a jak významné jsou ty odchylky) – tedy student,  který se ocitne zcela dezorientován i při změně překladače z v.07 na v.08. 

A pak je možné, že ta skupinka studentů, těžiště jejichž odbornosti leží kdesi na půl cesty mezi hardwarem a softwarem,  (zdánlivě?) nadšená ze sdělení, že se navíc budou učit prapůvodní programovací jazyk C, si od onoho vývoje slibovala ještě cosi jiného, ne nutně mně známého a mnou očekávaného. Přece proč všichni studenti vítají, když výuka probíhá jinak, než si učitel nalajnoval …

Každopádně rozhodnutí vyučovat jazyk C považuji za správné a neopomněl jsem je příslušnému kolegovi-navrhovateli pochválit.  Pochvalu doprovázelo varovné sdělení, že mu záhy pošlu seznam předmětů a údajů, o kterých očekávám, že mi je on poskytne. Kolega-navrhovatel kontroval varovným sdělením, že mi je samozřejmě ochotně poskytne, ale vyhledání může jistou dobu trvat. Délku prodlení neupřesnil, ale mám s ním své zkušenosti. Týdny, měsíce, roky …

Pomůcka

Jedním z předmětů mého zájmu bylo nějaké jednoduché programovatelné zařízení, které by zřetelně demonstrovalo činnost studentských programů. Student naprogramuje, exáč nahraje do mašinky, zmáčkne čudlík, a mašinka něco dělá. Svítivky blikají, obrazce na displeji se seskupí do tvaru písmen, text roluje po displeji. Zařízení vyžádáno, přislíbeno, nedodáno. Zmínil jsem se ve společenské konverzaci o této situaci a osoba, na jejíž soud dám, se (jemně) vysmála mojí naivitě, když nechám běh celého kurzu drhnout na této nesplněné podmínce.

Vyléčen z naivity, rozhodl jsem se na nic nečekat a kýžené zařízení nahradit programem (jmenuje se testbed_1, současná verze je v.1.02).  Student nebude nikam nahrávat svůj exáč, naopak si na studentský počítač nahraje můj exáč, spustí jej a pokusí se přimět ten svůj program, aby s ním komunikoval. Místo mačkání čudlíku klikne myší,  místo svítivek se budou rozsvěcet a zhášet pouze pixely na monitoru. Toto řešení má svoje pro i proti.

Argumenty pro: Ladění. Komunikace se bude snáze ladit. Můj program vše loguje, a zpětně lze analyzovat vše, čeho se studentův program při komunikaci dopustil. Množení. Elektronické hejble by bylo nejspíš jedno. Maximálně dvě, tři, ale každé jiné. Zatímco program si stáhne každý student, který dostane za úkol s ním komunikovat. Všechna paré zaručeně stejná.

Argumenty proti: Neprůchodnost rozhraní. Tohle bude zhýčkaným studentům vadit. Zhýčkaným studentům budu muset znovu a znovu (a nejspíš marně) vysvětlovat, že rozhraní o teoretické šíři 27 bitů (a praktické šíři 14 bitů) je tu schválně, že právě ono má studenty naučit disciplíně a rozvaze, co dělat dříve a co později. Možnost obejít. Moje nejhorší obava. Zadám úkol „prostřednicvím programu testbed_1 zobrazte text o délce 200 znaků“. A student šikula sedne a napíše program, po obrazovce mu bude sem a tam jezdit dlouhatánský text i s hyperodkazy, v barvách duhy a v desti fontech. Všechny požadavky splněny, chci jedničku! Všechny požadavky opravdu splněny, až na ten základní – programu testbed_1 a jeho čtrnáctibitovému rozhraní se studentovo řešení vyhýbá zdaleka. Kdyby tou hrací plochou bylo opravdové elektronické zařízení, bylo by mi mnohem více jedno, jak na něm student docílil požadovaný efekt.

Jednoduché a složité

Proč dělat něco jednoduše, když to jde složitě? (Ne, teď nehodnotím vlastnosti prostředku Moodle, přes který jsem nucen protlačovat moje informace studentům.)  Už slyším studenty – proč máme něco tak jednoduchého dělat tak složitě? Odpověď  je stejná, dnes ve škole jako kdysi dávno na vojně – z cvičných důvodů. Jde o ten čtrnáctibitový interface. Cílem studentských činností kolem programu testbed_1 není testovat schopnost studentů ovládat grafické výstupní funkce počítače. Jistě by se našli studenti schopní pokrýt velkoplošnou obrazovku vlastnoručne renderovanou animovanou grafikou v HD rozlišení,  dle vlastního scénáře. Ale cíl těchto cvičení je jiný – naučit studenty komunikovat s „cizím“ procesem skrze pevně definované („úzkopásmové“) rozhraní. Zkušenost mi říká, že přesně dodržet zadání je to, co působí studentům největší potíže. Zde budou mít nevýhodu – když nedodrží zadání, program nezobrazí nic. Ale i výhody – okamžitou zpětnou vazbu a v logovacím souboru veškeré údaje, podle kterých mohou diagnostikovat, co zvorali.

Optimismus

Vždy spolehlivý princip schválnosti by měl nyní zapůsobit a ten kýžený kus hardwaru, který se pokouším emulovat a bez kterého se už obejdu, by se mohl objevit na mém stole již příští pondělí. Uvidíme.