UNIVERZITA KARLOVA V PRAZE PEDAGOGICKÁ FAKULTA Katedra informačních technologií a technické výchovy POSUDEK OPONENTA DIPLOMOVÉ PRÁCE Jméno a příjmení autora: Bc. Lukáš Kotek Název tématu práce v českém jazyce: Výuka algoritmizace a programování se zaměřením na programovací jazyk Python Rok odevzdání: 2013 Jméno a tituly oponenta práce: doc. RNDr. Miroslava Černochová, CSc. Pracoviště: UK v Praze, PedF, KITTV Kontaktní e-mail: miroslava.cernochova@pedf.cuni.cz I. Základní náležitosti listinné podoby práce: Jak z hlediska rozsahu práce, tak z hlediska počtu a rozsahu příloh je práce nadprůměrná. Diplomová práce sestává ze dvou částí: o vlastní práce v rozsahu 128 stran rozdělené do 8 hlavních kapitol a doplněné 7 obrázky, 28 tabulkami, 8 grafy a 37 ukázkami, o tří příloh na přiloženém CD. Práce obsahuje všechny základní formální náležitosti (titulní list, zadání diplomového úkolu, prohlášení diplomanta, obsah, přílohy, seznam použité literatury, název práce a abstrakt v anglickém jazyce). Osm klíčových slov plně vystihuje zaměření diplomové práce. V seznamu použité literatury je uveden 51 zdroj, z toho 38 v jazyce anglickém, převažují zdroje dostupné na Internetu. II. Obsah a odborná úroveň práce: Ve velice stručném Úvodu vymezuje diplomant cíl své diplomové práce (s. 9). Cílem předložené práce je zmapovat používané programovací jazyky na českých SŠ, jejich vhodnost pro potřeby výuky, jejich specifika a vhodnost využití ve školní praxi. Teoretická část diplomové práce je soustředěna do dvou kapitol, Kapitoly 2 a 3. Hlavní pozornost je zaměřena na programovací jazyk Python, jeho specifika a možnosti, porovnání jeho syntaxe s dalšími jazyky jako Pascal a C/C++. o Východiskem pro teoretickou část se staly kurikulární dokumenty pro vzdělávání na SŠ, a to RVP GV, RVP IT a RVP Elektrotechnika, jejichž porovnáním bylo identifikováno třináct oblastí vztahujících se k tématu diplomové práce (s. 11-12) a v nichž se může uplatnit výuka algoritmizace a programování. Tyto oblasti nabízejí prostor pro rozvoj jak komunikativních kompetencí (čtení grafů, diagramů, schémat, znalost grafických formátů, aj.), tak kompetencí matematických (geometrická interpretace číselných, 1
algebraických vztahů, grafické znázornění rovnic, nerovnic a jejich soustav aj.), a mohou tak být využity ve výuce programování. o Stěžejní kapitolou teoretické práce je pak Kapitola 3 věnovaná programovacímu jazyku Python, jeho základním vlastnostem a historii. Autor v této kapitole porovnává syntaxi Pythonu, Pascalu případně jazyka C pro práci s datovými typy a operátory, s datovými strukturami, datovými poli, seznamy a n-ticemi, slovníkem, pro práci s cykly a podmínkami pro větvení, pro práci s procedurami a funkcemi, pro tvorbu třídy a pro porovnání syntaktických konstrukcí v objektovém programování, dále pak na koncepci modulů Pythonu, které slouží k rozdělení zdrojového kódu do více souborů. Srovnání zápisů v různých programovacích jazycích či ukázky v Pythonu jsou doloženy řadou konkrétních ukázek. V této kapitole prokázal diplomant, že mu objektově orientovaný jazyk Python přirostl k srdci, že je to jazyk, v němž se skvěle orientuje a s nímž umí pracovat v různých platformách. o Součástí teoretické části je i zmínka o historickém vývoji Pythonu, jehož syntaxe je z velké části převzatá z jazyka C. Autor zmiňuje filosofická východiska Guido van Rossum, autora Pythonu (s. 35-36). V teoretické části se diplomant věnuje také problematice implementace Pythonu v podobě CPythonu (napsané v jazyce C), zejména pak implementace řady 3 označované Python 3000 nebo 3k, implementace Iron Python pro.net Framework a implementace Jythonu orientovaného na platformu Java. Empirická část diplomové práce je soustředěna do tří kapitol, Kapitoly 4 až 6. Výzkumné aktivity korespondují se zadáním diplomového úkolu. o V Kapitole 4 diplomant formuluje pro svůj výzkumný projekt výzkumné cíle a tři hlavní otázky, vyslovuje 15 hypotéz. Ze statistického hlediska se však nejedná o hypotézy, ale o tvrzení, o jejichž pravdivosti diplomant rozhoduje na základě porovnání základních statistických charakteristik, nikoliv statistických testů. Vyslovené hypotézy se týkají hlavně první a třetí hlavní otázky. To, co diplomanta zajímá, je to, zda je Python vhodný pro výuku algoritmizace a programování, jaká jsou jeho specifika a zda jsou na SŠ využívány (nejen vyučovány) programovací jazyky. o V Kapitole 5 diplomant seznamuje s výzkumnými metodami a nástroji k realizaci výzkumného šetření. Pro svá výzkumná šetření zvolil kombinaci kvantitativní a kvalitativní metody, konkrétně dotazníkovou metodu a strukturovaný rozhovor. Výzkumné šetření prováděl diplomant jak mezi učiteli, tak mezi studenty SŠ. Veřejně přístupný formulář dotazníku pro dotazníkové šetření mezi učiteli sestával z 5 částí, přičemž 1 část se týkala charakteristiky respondenta, a zbývající 4 části sestávaly ze 17 otázek různého typu. Na závěr dotazníku mohl respondent vlastními slovy doplnit další informace, názory, připomínky. Formulář dotazníku pro učitele je v Příloze B. Dotazníková metoda se uplatnila i v šetření mezi 11 studenty SŠ. On-line dostupný formulář dotazníku sestávající ze 7 částí, přičemž 22 otázek různého typu slouží ke zmapování charakteristik používaného Pythonu a oblastí jeho využití ve školní výuce, je k dispozici v Příloze B. Dotazníkového šetření se zúčastnilo 41 učitelů SŠ (41% z G, 15% ze SOŠ s jiným zaměřením, 37% ze SOŠ se zaměřením na elektrotechniku či ICT) a 11 středoškolských studentů. 2
Rozhovor byl uskutečněn s jedním učitelem pražského gymnázia, jehož studenti se účastnili dotazníkového šetření. Během rozhovoru odpovídal učitel na 12 otázek (s. 100-101). Výsledky získané v rozhovoru s učiteli autor porovnal s výsledky dotazníkových šetření. o Výsledky výzkumných šetření jsou zpracovány v Kapitole 6. Prezentace těchto výsledků je deskriptivní povahy s využitím standardních statistických charakteristik (četnosti výskytu daného jevu, průměr, modus a medián). Pro detailnější analýzu a interpretaci dat získaných od respondentů z řad učitelů SŠ zavedl autor 13 kódů (s. 76), pomocí nichž pak přistupoval ke zpracování jednotlivých otázek a k jejichž vyhodnocení použil další statistické charakteristiky (rozptyl, směrodatná odchylka, variační koeficient, variační rozpětí). Pro detailnější analýzu a interpretaci dat získaných od respondentů z řad studentů SŠ zavedl autor 9 kódů (s. 108-109). Vzhledem k malému počtu respondentů autor činil závěry na základě měr centrální tendence. V případě šetření mezi studenty autor nepřipravil žádná tvrzení (hypotézy), které by chtěl šetřením ověřovat. V případě, že studenti a učitelé odpovídali v dotazníkovém šetření na stejnou otázku, provedl autor porovnání odpovědí obou skupin respondentů (Tab. 27). Výsledky jsou doprovozeny přehlednými grafy a tabulkami. o Diplomant přistupuje k interpretaci získaných výsledků střízlivě a provádí ji průběžně v Kapitole 6 a souhrnně v Kapitole 7. Zjištění získaná v empirické části s teoretickými úvahami v teoretické části velice pečlivě a uvážlivě propojuje a dává do souvislostí se získanými výsledky. Autor si je vědom omezení daných výběrem vzorku respondentů a výchozími podmínkami definovanými RVP pro výuku programování na SŠ. III. Výsledky a přínos práce Výsledky zjištění prezentované v diplomové práci mají význam pro koncipování a zaměření některých odborných i didaktických předmětů v přípravě ICT učitelů, konkrétně pak ve studiu oborů IKT a TIV na PedF UK v Praze. Bylo by velice užitečné, kdyby se práce stala východiskem pro další výzkum v této oblasti, pro vývoj metodických postupů pro výuku programování na SŠ a pro jejich pilotní ověřování ve vzdělávací praxi. IV. Zpracování Diplomová práce je jak po obsahové, tak formální stránce zpracována velice pečlivě, přehledně a srozumitelně. Text diplomové práce je srozumitelný. Struktura práce je dobře rozvržena, což přispívá rovněž ke srozumitelnosti práce. Práce jako celek je velice přehledně uspořádána. Autor se nevyhnul několika překlepům a formálním chybám (viz Příloha 1). V. Další vyjádření, komentáře a připomínky oponenta: Připomínky k metodologickému postupu V teoretické části mohl autor prezentovat hlubší úvahy nad tím, proč je zrovna podle jeho názoru a zkušeností Python vhodný pro utváření a rozvoj dovedností algoritmizace a programování na SŠ. 3
Škoda, že autor nevěnoval v Kapitole 4 pozornost tomu, aby vysvětlil, proč uskuteční výzkumné šetření, čemu bude šetření sloužit, proč se zaměří právě na zmíněné tři klíčové otázky a ne jiné. Výzkumné šetření se zaměřuje na vhodnost programovacího jazyka Python ve výuce na SŠ. I když autor explicitně neuvádí, co bude rozumět označením vhodný, lze se domnívat, že vhodností rozumí způsob zápisu syntaxe, algoritmizace úlohy, vhodnost modelu programování, vhodnost objektového modelu programování, vhodnost využití pro řešení matematických úloh, pro práci s textovým uživatelským rozhraním, pro tvorbu web aplikací či databázových aplikací, pro práci se soubory, vykreslování 2D či 3D grafiky, pro vytváření aplikací s grafickým uživatelským rozhraním. V teoretické části mohl autor provést teoretický rozbor programovacích jazyků, na něž se nejčastěji výuka na střední škole zaměřuje. Náměty na doplnění práce: Interpretace dat z hlediska délky praxe učitelů. (s. 69) Formulace, stylistické připomínky: Kdo to jsou učitelé algoritmizace a programování (s. 67) VI. Případné otázky pro obhajobu a náměty do diskuze: Jakými výzkumnými otázkami by se měly zabývat výzkumy, které by navazovaly na výsledky Vaší diplomové práce? Proč se domníváte, že je Python vhodný komunikační prostředek pro rozvoj algoritmického myšlení žáků SŠ? VII. Celková úroveň práce: Téma programování je v současné době velice aktuální. Řada zemí se rozhodla zaměřit se ve školním vzdělávání nikoliv na osvojování ICT uživatelských dovedností, ale na základy informatiky, na programování. Pokud se mezi odbornou veřejností v ČR začne diskutovat o programování na ZŠ nebo SŠ, velice často se tyto diskuse soustředí jen na to, jaký programovací jazyk je pro výuku ve školách nejlepší; bohužel, k žádné společné shodě tyto diskuse nevedou. Předložená práce se zaměřuje na programovací jazyk Python. Diplomant má bohaté zkušenosti a odborné znalosti pro programování v Pythonu, velice citlivě přistupuje k hodnocení didaktického potenciálu programovacích jazyků v kontextu školního vzdělávání na střední škole. Svůj pedagogický cit prokázal i v interpretaci výsledků své diplomové práce. Diplomant prokázal, že je schopen samostatně zformulovat výzkumné problémy a jejich cíle, vybrat a aplikovat adekvátní výzkumné metody, zorganizovat a provést výzkumné šetření, shromáždit a vyhodnotit data v souladu se zadáním diplomového úkolu. Svým rozsahem a výstupy v teoretické a praktické části předložená práce splňuje požadavky kladené na diplomovou práci. Závěry, k nimž autor diplomové práce dospěl, mohou být využity ve vysokoškolské přípravě ICT učitelů na PedF UK v Praze a ve školní praxi. Práci doporučuji uznat jako práci diplomovou. Práci doporučuji k obhajobě. V Praze 4. června 2013... Doc. RNDr. Miroslava Černochová, CSc. 4
Příloha 1: Seznam překlepů a drobných chyb v textu Překlepy: s. 16 syntaxi s. 18 hodnoty s. 62 - k výuce procedurálního modelu s. 80 - data týkající se dat vázajících se s. 90 dosáhl s. 113 - orientovaný programovací jazyk s. 114 - postaveného na bázi Gramatické chyby: s. 29 interpunkce: udává, kolik Fibonacciho s. 37 tečka na konci věty s. 79 - výrazně pozitivně, a další dvě, které byly hodnoceny s. 79 interpunkce: Oblasti definované na základě otázek s kódem 11 a 7 jsou také jediné s. 85 interpunkce: Stejně tak jako v závěru předchozí kapitoly 6.1.2 Statistika konkrétních programovacích jazyků je možné s. 112 interpunkce: jazykem Pascal / Object Pascal, se týká toho 5