Úvaha: Kam zmizely kvalitní výukové programy? | Kapitola 6
Seznam kapitol
V 80. letech u nás vládly dva výrazné programy, které pomáhaly začátečníkům k výuce programování: KAREL, který dovoloval programovat robotka pochodujícího po šachovnici, a LOGO, ve kterém jste ovládali „želvičku“. Ve své době to byly výborné programy – a když to srovnám s dnešní nabídkou, jsou to stále hotové hvězdy.
Zajímavou hrou je Cargo Bot, rovněž podrobněji recenzovaný na Světu aplikací. Ve zkratce je to simulátor ramene, pojíždějícího ve skladu nad bednami různých barev, které je třeba narovnat z počátečního stavu do cílového. Instrukce tu máte dokonce jenom tři (vlevo, vpravo a rameno dolů, kdy drapák sjede k nejvýše umístěné bedně – a pokud je prázdný, tak ji chňapne a pokud je plný, tak krabici vyloží). Zajímavé je ale to, že můžete každou instrukci včetně volání podprogramu opodmínkovat (provede se pouze tehdy, pokud podmínka platí). To dovoluje využívat efektivně jak volání podprogramů, tak rekurzi.
Ve výsledku máme před sebou puzzle, ve kterém jde o optimalizaci programu na délku, tedy na minimální počet použitých instrukcí. Přestože vás to vede k psaní dost nečitelného kódu, je to poměrně náročné a zajímavé i pro pokročilejší. Cargo-Bota bych rozhodně neoznačil jako věc vhodnou pro začátečníky, ale je to rozhodně zajímavý nástroj pro rozvíjení schopností u pokročilejších koderů – abyste vyřešili problém ekonomicky, musíte se na něj často podívat poměrně neotřele.
Navíc je to zadarmo, což je vynikající – je to svého druhu demo vývojového systému Codea založeného na populárním jazyku Lua. (Codea je systém speciálně navržený pro iOS, který dovoluje jednoduše nastavovat řadu parametrů klepnutím a nebo tažením, možná to nebude špatný pokračovací jazyk pro začátečníky! Uvidíme!)
Jiný docela zajímavý systém je Cato's Hike. Trochu se podobá předchozím (RoboLogic a Light Botu), ale je podstatně složitější. Vzhledem se hra podobá spíše japonskému RPG, což může být docela matoucí, jak pro odrostlejší, kteří hru budou patrně považovat za infantilní, i když by mohli ocenit poměrně bohaté možnosti programování, tak pro malý dorost, který by si mohl myslet, že to je nějaká jednoduchá zábavka (a následně si vyláme mléčné zoubky na docela komplikovaném konceptu).