Domů > Odborné články > Gymnaziální vzdělávání > Moderní výuka programování
Odborný článek

Moderní výuka programování

25. 9. 2008 Gymnaziální vzdělávání
Autor
Mgr. Radek Vystavěl Ph.D.

Anotace

Příspěvek se týká výuky programování pro žáky bez předchozích zkušeností s programováním. Nabízí náměty, jak tuto výuku žákům zatraktivnit.

V tomto příspěvku chci poskytnout náměty, jak výuku programování učinit pro žáky přitažlivější a účinnější. Náměty vycházejí z mé několikaleté praxe, během níž jsem si přizpůsobil výuku svých žáků, z nichž většina neměla s programováním předchozí zkušenost.

Aktuálnost

Považuji za důležité, aby se vyučovaly aktuální věci. Žáci pak vidí, že je to něco smysluplného, že se učí pro život a ne pouze pro školu. Ve výuce programování se to odráží především ve volbě platformy a programovacího jazyka, potažmo také vývojového prostředí.

Na naší škole jsem před lety začínal s Pascalem a vývojovým prostředím Turbo/Borland/Free Pascal, stejně jako to činí i mnoho dalších učitelů v ČR. Žáci však nebyli zcela spokojeni s tím, že se učí něco de facto zastaralého, že se učí v jazyce a vývojovém prostředí, které mají pro profesionální vývoj programů již jen okrajový význam. Argument, že základy programování jsou ve všech jazycích v zásadě stejné, je sice v jádru pravdivý, nikoli však účinný.

V současné době existují v programování dvě hlavní platformy:

  • platforma .NET a programovací jazyk C#;
  • platforma a programovací jazyk Java.

Obě platformy jsou si velice blízké, jsou univerzální (okénkové aplikace, konzolové aplikace, webové aplikace, systémové služby...), podporují víceméně všechny programátorské konstrukce a techniky, které se do dnešní doby osvědčily. Ostatní platformy a programovací jazyky jsou více okrajové, speciální, případně pro výuku nepříliš vhodné.

Ve své výuce jsem se rozhodl pro první možnost, .NET a C#. Pro tuto kombinaci existuje vývojové prostředí Microsoft Visual C# 2008 Express Edition. Toto prostředí je možno zdarma stáhnout z internetu, z webových stránek společnosti Microsoft.

Přitažlivost

Výběr moderní platformy a jazyka není to jediné, co by zajistilo přitažlivost studia programování. Dále považuji za důležité:

  1. vytvářet programy se současným uživatelským rozhraním;
  2. ukazovat programy aplikačně zajímavé;
  3. vybírat programy co nejreálnější, které se ještě dají se začátečníky realizovat.

Ad 1. Přestože mají vesměs všechny dnešní programy grafické uživatelské rozhraní, setrvává výuka programování, přinejmenším ta úvodní, většinou na tvorbě aplikací konzolových, které s uživatelem komunikují prostřednictvím textového rozhraní černé obrazovky příkazového řádku. Žáci opět nerozumí tomu, proč se učí něco, co se dnes již nedělá...

Dříve byla výuka na konzolových aplikacích opodstatněná větší složitostí tvorby grafického uživatelského rozhraní. V dnešní době však vývoj programátorských nástrojů postoupil natolik, že hezky vypadající okénkové aplikace může bez problémů vytvářet i začátečník. Že je tak studium programování pro něj zajímavější, je nasnadě.

Ad 2. Považuji za podstatné ukazovat programy, které jsou něčím zajímavé. Klasická kvadratická rovnice nebo výběr největšího čísla žáky příliš nenadchne. Proč však nedělat grafiku, zvuky, jednoduché hry? Moderní platformy s bohatými, ale snadno použitelnými knihovnami tříd tomu napomáhají. Jediným příkazem se načte obrázek ve formátu JPEG, druhým příkazem se zobrazí v okně programu:


Image obrázek = Image.FromFile("panáček.png");
kreslicíPlocha.DrawImage(obrázek, x, y);


Ad 3.
Považuji za důležité vybírat programy, které jsou aspoň trochu reálné, ne pouze nějaké „pahýly", které demonstrují ten a ten rys programovacího jazyka. S začátečníky je pochopitelně třeba držet se co největší jednoduchosti, ale i tak lze najít programy, které jsou reálné. Vždy se snažím, aby použití nově vysvětlované věci nějak přirozeně vyplynulo z konkrétní úlohy.

Pokrytí literaturou

Kromě výuky ve škole by žáci měli mít ke studiu také vhodnou literaturu. Většinou nemohou všechno pochytit jen z výkladu učitele. Nemusí to být jen tím, že při výkladu zrovna hráli hru nebo pod lavicí esemeskovali. Vstřebat všechno najednou při hodině zkrátka není snadné a je dobré mít ještě jinou studijní oporu. A to nemluvím o tom, že mnohé školy umožňují večerní či dálkové studium, kde je kontakt s vyučujícím ještě mnohem menší.

Přestože regály knihkupectví jsou plné počítačové literatury, najít knihu, která je vhodná, může být nakonec problém - jak jsem sám zjistil. Překlady z cizích jazyků bývají mnohdy natolik nekvalitní, že se ztrácí smysl textu. Původní české literatury zase není mnoho, snad kvůli nízkým autorským honorářům na českém knižním trhu. Když jsem pro své žáky hledal knihu, která by opravdu byla pro začátečníky a která by pokud možno splňovala kritéria naznačená výše, nenašel jsem nic.

Uvedenou situaci jsem se nakonec rozhodl vyřešit sepsáním učebnice, resp. učebnic vlastních. Jedná se o třídílnou sérii učebnic Moderní programování, z níž k datu psaní tohoto příspěvku (srpen 2008) vyšly již dvě - učebnice pro začátečníky a učebnice pro středně pokročilé. Pokud se chcete o těchto knihách dovědět více (podrobnější popis, včetně ukázkových kapitol, materiálů ke stažení ap.), nasměroval bych vás na webové stránky www.moderniprogramovani.cz. Třeba se vám budou do vaší výuky hodit.

Praktické zvládnutí problematiky

Programování je především praktická disciplína. Nejde v něm jen o to naučit se něco nazpaměť, cílem je pochopit logiku a umět vytvářet vlastní programy. Proto jsou žáci obvykle vedeni k samostatnému programování - samozřejmě v různé míře. Žáci, kteří se mají pouze seznámit s tím, o co v programování jde, moc programů pravděpodobně samostatně vytvářet nebudou. Na druhou stranu techničtěji založení žáci se v samostatných úlohách mohou realizovat.

Za účelem nabídnout možnosti k programování různých úloh jsem k výše zmíněným učebnicím Moderní programování připravil také sbírky úloh, které s příslušnou učebnicí vždy korespondují na úrovni jednotlivých kapitol. To znamená, že žák si přečte první kapitolu z učebnice, a tím se dozví vše potřebné k řešení úloh z první kapitoly sbírky. Přečte si druhou kapitolu učebnice a zjistí se vše potřebné k řešení úloh ze druhé kapitoly sbírky atd.

V každé kapitole sbírky jsou úlohy rozčleněny do pěti kategorií - jednoduché úlohy, kontrolní otázky, aplikační úlohy, technické úlohy a rozšiřující úlohy. Jednoduchými by žák měl začít. Kontrolní otázky se neprogramují, v nich by si měl žák pouze něco rozmyslet. Aplikační úlohy představují zajímavé problémy, zatímco úlohy technické slouží k prozkoumání konkrétního detailu. No a konečně rozšiřující úlohy jsou určeny žákům, kteří jsou oproti zbytku skupiny napřed a chtějí něco navíc, aby se nenudili. Ke všem úlohám jsou k dispozici také nápovědy a k většině z nich rovněž hotová řešení. Více podrobností najdete na zmíněném webu www.moderniprogramovani.cz.

Příloha:
Anotace k jednotlivým učebnicím

Soubory materiálu
Typ
 
Název
 
pdf
32.23 kB
PDF
Anotace k jednotlivým učebnicím

Licence

Všechny články jsou publikovány pod licencí Creative Commons BY-NC-ND.

Autor
Mgr. Radek Vystavěl Ph.D.

Hodnocení od uživatelů

Článek nebyl prozatím komentován.

Váš komentář

Pro vložení komentáře je nutné se nejprve přihlásit.

Článek není zařazen do žádného seriálu.

Článek pro obor:

Informatika a informační a komunikační technologie