Rudolf Pecinovský: Programování pro všechny žáky

pondělí 27. srpna 2001 ·

Odpověď na otázku, zda je na základních a středních školách vhodné masově vyučovat programování, není pro mnoho učitelů vůbec jednoznačná. Další spor nastává ohledně programovacího jazyka. Který je pro tento účel nejlepší?

(Pozn. red.: Tento článek původně vznikl jako příspěvek do mohutné diskuse na jiném serveru našeho vydavatelství Živě.cz. Protože se domníváme, že problém výuky programování je důležitý také pro mnoho čtenářů České školy, zveřejňujeme jej zde jako samostatný článek, který může být impulzem i pro další, možná z trochu jiného pohledu vedenou diskuzi.)


Učit na škole programování?

ANO, ANO, ANO! Domnívám se totiž, že znalosti základů programování použijí všichni žáci ve svém životě mnohem více než znalosti vlastností Thaletovy kružnice, počtu krvinek v 1 krychlovém mm krve, data nástupu Jagelonců na trůn, chemické rovnice tvrdnutí malty a řady dalších nezbytných vědomostí, které do nich hustí naše školy. (Vynechám skutečnost, že všichni od svého batolecího věku “programujeme“ sami sebe a své okolí.) Nikdo nepochybuje o tom, že prakticky všichni dnešní žáci budou v budoucnu muset pracovat s počítači. Zkušenost ukazuje, že ti, kteří prošli kurzy základů programování, dokáží daleko lépe pochopit řadu úskalí, která na ně počítač chystá, a umí se s nimi proto také lépe vypořádat.

Není pravda, že znalosti programování využijí pouze profesionální programátoři. Jistě jste si všimli stále masivnějšího pronikání programovacích prostředků do dalších a dalších aplikací. Stále více uživatelů bude chtít umět přizpůsobit chování těchto aplikací svým potřebám.

S názory, že aplikace jsou stále dokonalejší a že veškerý vývoj bude záležitostí čím dál užší skupiny programátorů, se opakovaně setkávám již od roku 1984. Skutečnost je však taková, že lidí, kteří si tu a tam něco naprogramují, čím dále tím rychleji přibývá. “Vinu“ nese nejenom stále větší pronikání počítačů do nejrůznějších oblastí života, ale také stále schopnější a “přítulnější“ programovací nástroje.


Jak začít

Řada příspěvků v diskusi na Živě.cz zdůrazňovala, že není důležitý použitý jazyka, ale že důležité je to, aby se žáci naučili správně myslet. Asi vás udivím, když zrovna já prohlásím, že to není pravda. Pokusím se vysvětlit proč.

Učit se programovat pouze na papíře není o moc efektivnější než učit se jazyk pouze za pomoci slovníku. Znám několik vynikajících programátorů, kteří se takto naučili programovat. Populaci však nemůžeme posuzovat podle několika Einsteinů. Průměrný žák se nic nenaučí, dokud nenapíše a neodladí pár programů. K tomu však nezbytně potřebují jazyk a vývojové prostředí.

Na programovací jazyk a vývojové prostředí, které bych byl ochoten doporučit pro výuku začátečníků, mám několik zásadních požadavků:

Jedním z nejdůležitějších je, aby jazyk měl maximálně jednoduchou a přirozenou syntaxi, která by neodpoutávala pozornost žáků od vlastního řešení zadaného problému. Z tohoto hlediska považuji pro první vstup do světa programování všechny běžné jazyky za prakticky nepoužitelné, a to včetně tolik opěvaného Pascalu a zdánlivě (ale opravdu jenom zdánlivě) jednoduchého Visual Basicu.

Z hlediska maximálně jednoduchého a intuitivního vstupu do světa programování v současné době jednoznačně vede programovací nástroj Baltík. K jeho přednostem navíc patří i to, že při tvorbě programů pro Baltíka vůbec nevadí, že začínající programátoři píší ďábelskou rychlostí 7 znaků za minutu.

Potěšilo mne, kolik z diskutujících se domnívá, že pro vstup do světa programování je nejlepší Karel. Podíváte-li se na web, zjistíte, že si totéž myslí učitelé na desítkách univerzit. Pamatuji se, jak byl Karel zatracován jako jazyk určený pro děti a jak jeho odpůrci tvrdili, že pro výuku programování je daleko lepší Basic. Tito oponenti však zaměňovali příčinu a důsledek. Prostředí robota Karla navrhl Richard Pattis ze Standfordské univerzity tak geniálně, že se s jeho pomocí mohli učit programovat i děti (Karel byl totiž navržen pro výuku programování na vysokých školách).

Baltík vychází z koncepce prostředí robota Karla a doplňuje je o další možnosti nabízené současnými počítači, mezi nimiž bych vypíchl zejména animace a práce s multimédii.

Baltík má (obdobně jako Karel) dvě důležité vlastnosti: 1) žáci v něm mohou hned první hodinu tvořit (pro ně) netriviální programy a 2) hned zpočátku, když ještě nic neumějí, mohou řešit úlohy, které jsou pro ně relativně zajímavé. Tyto dvě vlastnosti výrazně zvyšují motivaci žáků (včetně “blondýnek“) a tím i efektivitu výuky. Vynechám-li drobné mušky, tak současnému Baltíkovi chybí k dokonalosti jediné: alespoň základní debugger. Bez něj se složitější programy vyvíjejí velice obtížně.


Jak nezačít

O tom, proč nezačínat Pascalem či jiným klasickým programovacím jazykem jsem již hovořil. Měl bych však ještě dodat, proč pro začátek není vhodné Logo a už vůbec ne Petr.

Logo je krásný jazyk s mnoha skvělými vlastnostmi. Z hlediska výuky programování má však jednu nevýhodu: vede programátora k jinému způsobu uvažování než klasické programovací jazyky. Jeho autoři také přiznávají, že Logo nemá učit žáky programovat, ale myslet. To je sice krásná idea, ale já bych ocenil, kdyby žáci, kteří projdou mými kurzy, dokázali po jejich absolvování „spáchat“ jednoduché makro v Excelu či Wordu i když by se o tom v kurzech nic neučili.

Petr je ještě větší exot než Logo. Kromě toho jsem zatím (na rozdíl od Baltíka i Loga) neslyšel o žádném složitějším programu, který by v tomto prostředí nějaké dítě samostatně vytvořilo. Měl jsem možnost jej kdysi testovat a nějak jsme se neskamarádili – asi na něj mé IQ nestačilo.

Z obdobných důvodů mi nesedí ani Baltazar. Uznávám, že jde o dokonalou implementaci myšlenek jednoho z velkých počítačových guru, souhlasím s tím, že program zapsaný ve strukturogramech je přehlednější a snáze modifikovatelný. Přechod k běžně používaným jazykům však není zdaleka tak splavný jako např. u Baltíka.


Jak pokračovat

Teď řeknu kacířskou větu, kterou mohu omluvit pouze tím, že jí říkám velmi nerad. Pro další výuku je pro běžné žáky asi nejlepší Visual Basic. Přiznejme si, že až do verze 6 jako jazyk opravdu za moc nestojí (zaplaťpánbůh, že ve verzi 7 určené pro .NET udělal Microsoft z Visual Basicu konečně programovací jazyk). Jedno mu však nemůžeme upřít: je téměř všude. Vedle Microsoftu jej do svých produktů začlenil i Corel, AutoDesk a řada dalších firem. Přiznejme si, že budou-li naši žáci ve své budoucí praxi programovat, 95  % z nich vystačí s Visual Basicem. Jak by řekl klasik: „Můžeme s tím nesouhlasit, můžeme proti tomu protestovat, ale to je všechno, co s tím můžeme dělat.“

Náš výběr jazyka nebude příliš svobodný ani tehdy, budeme-li chtít vést své žáky k vyšším metám (např. na specializovaných školách či v zájmových kroužcích). Vždy totiž budeme muset přemýšlet na tím, kolik stojí dostupné překladače a jak “nadupané“ počítače vyžadují. K čemu je nám geniální překladač, který seženeme zadarmo, když jej můžeme spustit pouze na počítači v ředitelně.

Rudolf Pecinovský

0 komentářů:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.