Otázka výuky algoritmizace a programování je zmíněna jak v RVP pro gymnázia, tak v RVP dalších středních škol. Které konkrétní programovací jazyky se však na středních školách používají? A jsou učiteli, jež tyto jazyky používají, považovány za vhodné pro daný účel? To byly jedny z otázek, které jsem si kladl v rámci realizace své diplomové práce. Některé z jejích výstupů jsou obsahem článku, který čtete.
Metodika
Prvotním problémem bylo identifikovat oblasti, ve kterých bude vhodnost použití programovacích jazyků hodnocena. Pro tento účel jsem se věnoval textům RVP, u nichž by bylo možné z podstaty věci předpokládat výraznou akcentaci témat souvisejících s algoritmizací a programování, pročež byly nakonec zvoleny RVP pro gymnázia a RVP pro obory 18-20-M/01 Informační technologie a 26-41-M/01 Elektrotechnika. Podíváme-li se do RVP samotných, zjistíme, že algoritmizaci a programování se v největší šíři a hloubce (zcela nepřekvapivě) věnuje RVP pro obor Informační technologie, kde lze nalézt témata od algoritmizace samotné, přes objektové programování, až po problematiku databází, či přesněji SQL.
Protože RVP ve svých požadavcích na oblast algoritmizace a programování jsou velice různá, rozhodl jsem se sice ze zmíněných RVP vyjít, ale zaměřit se na širší spektrum témat, i takových, v nichž programovací jazyky mohou, ale nemusí být použity. Vzhledem k charakteru dokumentů, jakými RVP jsou, lze očekávat výraznou míru různorodosti a způsobu aplikace tematických okruhů do reálné výuky. Zmapovat, jak se jednotlivé programovací jazyky pro konkrétní účely hodí, proto není na škodu.
Vhodnost programovacích jazyků byla nakonec zkoumána v následujících oblastech
[1]:
- Vhodnost použitého vývojového prostředí či editoru;
- Algoritmizace (přenesení vývojových diagramů, algoritmů, základy práce s větvením, cykly);
- Procedurální model programování;
- Objektový model programování (třídy, dědičnost, polymorfismus apod.);
- Matematické aplikace (výpočty, řešení rovnic apod.);
- Aplikace s textovým uživatelským rozhraním (textové hry apod.);
- Programování pro web (skripty vykonávané na straně serveru, přes CGI apod.);
- Práce se soubory (načítání a ukládání dat z textových či binárních souborů);
- Programování databázových aplikací (využívajících MySQL, SQLite apod.);
- Vykreslování bitmapové (rastrové) 2D grafiky (grafy, grafická primitiva apod.);
- Vykreslování 3D grafiky (např. za pomoci OpenGL či DirectX);
- Syntaxe převážně používaného programovacího jazyka (způsob zápisu programátorských konstrukcí a jeho pochopitelnost);
- Vytváření aplikací s grafickým uživatelským rozhraním (aplikace obsahující tlačítka, zatržítka, textová pole apod.).
Samotný dotazník (vytvořený ve webové aplikaci Google Docs) byl pro účely zodpovězení těchto otázek vážících se k výše pojmenovaným oblastem tvořen Likertovými škálami, kde hodnocení 1 odpovídalo nejlepšímu a hodnocení 5 naopak nejhoršímu výsledku. Ostatní otázky umožňovaly otevřenou či uzavřenou odpověď (za použití výběru z výčtu možných odpovědí), vždy v závislosti na konkrétní otázce. Veškeré odpovědi týkající se vhodnosti použití programovacích jazyků jsem vztáhl ke 44 udaným převážně používaným programovacím jazykům od 41 respondentů dotazníku
[2]. Udáváné procentuální hodnoty jsou pak vždy zaokrouhleny na celá čísla.
Respondenti dotazníku
Základními zjištěními byly údaje o učitelích, kteří algoritmizaci a programování na středních školách vyučují. V tomto směru jsem se zaměřil hlavně na průměrnou délku praxe respondentů (vztaženou k výuce algoritmizace a programování) a typ školy, na níž učí, doplněné o informace o tom, jaký druh zdrojů pro získání získání příkladů psaných v převážně používaném programovacím jazyce daný učitel používá (zda vlastní zdroje, převzaté zdroje nebo kombinaci obojího).
Graf 1: Zastoupení učitelů dle typu školy
Výsledky? Průměrná délka praxe respondentů (otázku zodpovědělo 40 z nich) ve výuce algoritmizace a programování dosáhla 8,125 roku. Nejkratší délka této praxe byla 1 rok a naopak nejdelší 21 let. Mezi druhy škol pak nejvýraznějšího zastoupení dosáhla gymnázia (41 %) a střední odborné školy se zaměřením na elektrotechniku či ICT (37 %), což shrnuje graf 1. Mezi používanými zdroji pak mírně převažují zdroje vlastní (51 %) nad kombinací zdrojů vlastních a převzatých (44 %. Ryze převzaté zdroje používá pouze 5 % respondentů.
Programovací jazyky
Jaké programovací jazyky respondenti na středních školách používají, jsem zjišťoval ve dvou oblastech. Jednak který programovací jazyk učitelé používají převážně, dále pak jazyk, který k tomuto používají jako doplňkový. U první oblasti mohli respondenti vybírat jednu položku z výčtu připravených jazyků (popř. vyplnit pole Jiný), u druhé pak libovolné množství (a opět s možností doplnění vlastní volby). V souvislosti s převážně používaným programovacím jazykem jsem zjišťoval i jaké vývojové prostředí respondenti používají, stejně jako informaci o tom, na kolik ho považují za vyhovující.
Respondenti na otázku týkající se převážně používaného programovacího jazyka poskytli 44 odpovědí, čímž došlo k jistému zkreslení (viz výše a poznámka pod čarou). Výsledky prezentuje graf 2. Na prvním místě se umístily shodně programovací jazyky Pascal / Object Pascal
[3] a Java (oba 20 %), které byly následovány jazyky Python, C / C++ (po 17 %) a dalšími. První čtyři jazyky pak jsou dále popisovány, co se týká zkoumání vhodnosti ve výše zmíněných oblastech.
Vztáhneme-li výsledky k typu školy, pak respondenti vyučující na gymnáziu nejčastěji volili jako programovací jazyk Python a respondenti ze středních odborných škol zaměřených na elektrotechniku či ICT Javu nebo C/C++ (shodný výsledek).
Graf 2: Převážně používané programovací jazyky
Mezi doplňkovými jazyky (28 respondentů poskytnulo 66 odpovědí) se na prvních třech místech objevily jazyky PHP (23 %), C / C++ (18 %) a Javascript (17 %). Tedy na prvním a třetím místě takový, jež je možné používat na webu.
Vrátíme-li se zpět k nejčastěji převážně používaným programovacím jazykům, zjistíme, že průměrná praxe ve výce algoritmizace a programování u respondenta používajícího jazyk Pascal / Object Pascal je 9,25 roku (u Javy 6,63 roku). V kombinaci s Pascalem / Object Pascalem se pak nejčastěji objevovalo použití vývojových prostředí Delphi a Lazarus (stejně zastoupena), u Javy pak Netbeans. Zajímavé je, že vývojová prostředí Delphi a Netbeans byla hodnocena relativně špatně (s průměrným hodnocením 2,66, resp. 2,0), kdežto Lazarus dosáhl průměrného skóre 1,67.
Možné oblasti použití
U čtyř, ve vzorku nejvíce zastoupených jazyků, jsem stanovil základní stastické míry a porovnal je vždy se statistikou platnou celkově pro všechny jazyky (ty v tabulce 1 reprezentuje sloupec veškeré). Zmíněná tabulka 1 ze zmíněných měr pak shrnuje průměrné hodnocení v každé ze zkoumaných oblastí. Výsledek v konkrétní oblasti je vždy tím lepší (tj. bylo dosaženo nižší hodnoty průměru), čím světlejší podbarvení dané buňky je.
Tabulka 1: Průměr vhodnosti použití nejvíce používaných programovacích jazyků
Oblast použití | Veškeré | Pascal / Object Pascal | Java | Python | C / C++ |
Vývojové prostředí (nebo editor) | 1,93 | 2,13 | 1,88 | 1,71 | 1,29 |
Algoritmizace | 1,73 | 1,25 | 1,75 | 1,43 | 2,00 |
Procedurální model programování | 1,95 | 1,50 | 2,38 | 1,29 | 1,71 |
Objektový model programování | 2,20 | 2,86 | 1,50 | 1,60 | 2,57 |
Matematické aplikace | 1,89 | 2,13 | 1,86 | 1,17 | 1,50 |
Aplikace s textovým uživatelským rozhraním | 2,15 | 1,88 | 2,38 | 1,17 | 2,00 |
Programování pro web | 3,14 | 4,00 | 2,75 | 1,50 | 3,43 |
Práce se soubory | 1,85 | 2,00 | 1,80 | 1,00 | 1,29 |
Programování databázových aplikací | 2,57 | 3,43 | 2,25 | 1,50 | 3,00 |
Vykreslování bitmapové (rastrové) 2D grafiky | 2,46 | 2,75 | 1,83 | 1,50 | 2,86 |
Vykreslování 3D grafiky | 3,42 | 4,33 | 2,60 | 2,40 | 3,50 |
Syntaxe jazyka | 1,60 | 1,25 | 1,71 | 1,57 | 1,71 |
Vytváření aplikací s grafickým uživatelským rozhraním | 2,43 | 3,29 | 2,14 | 2,00 | 2,43 |
V otázkách řešících vhodnost programovacích jazyků v konkrétních oblastech byl ve většině případů hodnocen jako nejvhodnější (na základě dosaženého průměru) Python, k získaným údajům je ale vhodné přistupovat s opatrností, neboť tato zjištění byla stanovena na základě analýzy vzorku už zmíněných 41 respondentů. V případě zjištění vztažených ke konkrétním jazykům se tak jedná o čísla ještě o něco nižší.
Shrnutí výsledků
Zajímavých výsledků dosáhl programovací jazyk Pascal / Object Pascal, který dosáhl nejlepšího průměru sice pouze ve dvou oblastech, ale zato naprosto zásadních (Algoritmizace a Syntaxe převážně používaného jazyka). Nejasný signál, který vyvstal právě v souvislosti s programovacím jazykem Pascal / Object Pascal, se týká toho, zda si učitelé spojují oblast objektového programování s oblastí tvorby grafického uživatelského rozhraní (učitelé tyto oblasti v případě Pascalu hodnotili poměrně výrazně rozdílně). I s přihlédnutím k množství respondentů (a porovnání hodnocení těchto oblastí s hodnocením průměrným) však v tomto směru nelze vyvozovat zásadní závěry.
U programovacího jazyka Pascal / Object Pascal se tak ukázalo, že se stále jedná o programovací jazyk na středních školách výrazně často používaný. Pokud bychom ho uvažovali pouze v kontextu použití zahrnující aplikaci pouze v oblasti algoritmizace a programování obecně, bez zaměření se na nějaké, již výrazně konkrétní, využití, lze Pascal / Object Pascal stále hodnotit jako vhodný nástroj, byť ostatní výsledky napovídají, že jeho univerzalita použití je, např. oproti Pythonu, který dosáhl v celkovém spektru sledovaných oblastí vcelku velmi vyrovnaných výsledků, menší.
Poděkování
Na tomto místě bych velmi rád poděkoval všem respondentům, kteří dotazník, zveřejněný i zde na stránkách České školy, vyplnili, neboť z jeho výstupů čerpá jak tento článek, tak prve zmíněná práce. Stejně tak bych rád poděkoval za prvotní možnost zde tento dotazník publikovat. Celý článek je pak nutno chápat jako stručné shrnutí některých zjištění, jež jsou v práci obsaženy.
K obsahu článku samotného chci poznamenat, že není mým záměrem poskytovat nějaké ultimativní výstupy, jako se spíše pokusit nastínit, jaká může situace na českých středních školách být, a přinést informace o tom, jak jsou jednotlivé oblasti, v nichž je nasazení programovacích jazyků na středních školách možné, učiteli vnímány z hlediska aplikace konkrétních jazyků a poskytnout tak podklad pro zamyšlení.
Literatura
- Rámcový vzdělávací program pro gymnázia [online]. Praha: Výzkumný ústav pedagogický, 2007. 100 s. [cit. 2013-04-28]. ISBN 978-80-87000-11-3. Dostupné z: http://www.vuppraha.cz/wp-content/uploads/2009/12/RVPG-2007-07_final.pdf
- Rámcový vzdělávací program pro obor vzdělání 18-20-M/01 Informační technologie [online]. Praha: Ministerstvo školství, mládeže a tělovýchovy, 2008. 79 s. [cit. 2013-04-28]. Dostupné z: http://zpd.nuov.cz/RVP/ML/RVP%201820M01%20Informacni%20technologie.pdf
- Rámcový vzdělávací program pro obor vzdělání 26-41-M/01 Elektrotechnika [online]. Praha: Ministerstvo školství, mládeže a tělovýchovy, 2007. 79 s. [cit. 2013-04-28]. Dostupné z: http://zpd.nuov.cz/RVP/ML/RVP%202641M01%20Elektrotechnika.pdf
- HENDL, Jan. Kvalitativní výzkum: základní metody a aplikace. Praha: Portál, 2005, 407 s. ISBN 80-736-7040-2.
- GAVORA, Peter. Úvod do pedagogického výzkumu. Brno: Paido, 2000, 207 s. ISBN 80-85931-79-6.
[1] Pořadí jednotlivých oblastí je odvozeno od způsobu tvorby webového dotazníku pomocí Google Docs (a neodpovídá tak jejich uvažované důležitosti). [2] Jako základ pro výpočet procent u převážně používaného programovacího jazyka bylo použito číslo 41, které odpovídá počtu respondentů, jež byli vyzváni, aby udali právě jednu odpověď. [3] Pascal a Object Pascal je uvažován jako jedna kategorie, neboť prakticky veškerá IDE a kompilátory (včetně všech udaných respondenty) od konce 80. let některý z dialektů Object Pascalu podporují.
2 komentářů:
Nechápu, jak byl vyhodnocen graf využití programovacích jazyků, když v textu vůbec není uveden Pascal/Object Pascal, ačkoliv podle grafu je zastoupen stejně jako Java - je totiž uvedeno "Vztáhneme-li výsledky k typu školy, pak respondenti vyučující na gymnáziu nejčastěji volili jako programovací jazyk Python a respondenti ze středních odborných škol zaměřených na elektrotechniku či ICT Javu nebo C/C++ (shodný výsledek)."
Děkuji za reakci. Ohledně věty, ke které svůj komentář vztahujete "Vztáhneme-li výsledky k typu školy (...)" – u oněch dvou zmíněných typů škol byl Pascal / Object Pascal zastoupený sice výrazně, ale nedosáhl u žádné prvního místa, která tam jsou jako jediná okomentována.
Graf, který je uvedený ve článku, shrnuje výsledky programovacích jazyků už nezávisle na typu školy. V celkovém součtu pak Pascal / Object Pascal je opravdu první. (V textu to okomentováno je, ale uznávám, že umístění grafu by mohlo být mírně výše - takto ta souvislost není hned patrná.)
LK
Okomentovat