V minulých epizodách jsme sledovali … Nahlédli jsme do článku Anabely Gomes. Autorka upravila metodiku, u závĕrečné zkoušky studenti řeší také problémy z nižších kategorií Bloomovy taxonomie, a než začnou programovat, studenti by mĕli získat schopnost číst kód. V tom bych se s paní Gomes neshodnul. Pokud by na svém požadavku – začínat kurz programování vyučováním a ovĕřováním schopnosti studentů číst kód – trvala. Ale trvá na nĕm? |
||
*** *** *** | ||
část 1 | Taxonomie a výuka programování 1 (nad článkem Anabely Gomes) | |
část 2 | Taxonomie a výuka programování 2 (znovu nad článkem Anabely Gomes) | |
Taxonomie a výuka programování 3 (stále nad článkem Anabely Gomes) | ||
*** *** *** | ||
Gomes [1] Struktura Stále čteme článek z června 2009 s názvem „Bloom’s taxonomy based approach to learn basic programming“ autorky Anabely Gomes z Instituto Politécnico de Coimbra. Článek má (co se týče relevantního obsahu) 7 částí, označených Introduction („Úvod“), Taxonomies of learning („Taxonomie učení“), The study („Studie“), Course context („Kontext kurzu“), Study („Studie“), Discussion („Diskuze“), a Conclusions („Závĕry“). V předchozích vstupech jsem rozebral první čtyři části až po „Kontext kurzu“. Zbývají části „Studie“, „Diskuze“ a „Závĕry“. Vzhůru do díla! |
||
Gomes [2] Studie Část „Studie“ je nesmírnĕ zajímavá a poučná. Přináší informace tří druhů. Za prvé popisuje koncepci a strukturu závĕrečných zkoušek kurzu Informační technologie, včetnĕ typů otázek a jejich zařazení do kategorií Bloomovy taxonomie. Za druhé výsledky, které studenti dosáhli v jednotlivých kategoriích. A za třetí interpretaci výsledků zkoušek a související typologii studentů. V souladu s celkovou koncepcí kurzu, kterou paní Gomes avizovala v předchozích částech článku, otázky byly rozvrstveny podle kategorií Bloomovy taxonomie a rozdĕleny do tří skupin. Opakuji, že mi tato část článku připadá velice poučná, a proto z ní budu citovat ve vĕtším rozsahu nežli dosud. |
||
Skupina [1] Otázky podle kategorií Bloomovy taxonomie Tato skupina obsahovala otázky příslušejíci do kategorií 1 (Znalost) a 2 (Pochopení). Otázky byly rozdĕleny do tří úrovní. 1. úroveň odpovídala 1. kategorii Bloomovy taxonomie (Znalost) a studenti zde řešili následující problémy: 2. úroveň odpovídala 2. kategorii Bloomovy taxonomie (Pochopení) a studenti mĕli pochopit roli konkrétní instrukce. Ve 3. úrovni studenti mĕli analyzovat celý program a porozumĕt mu. |
||
Skupina [2] Úkol: naprogramovat fragment kódu Zde studenti mĕli napsat krátký úsek programu, kterým doplnili již existující program. Úspĕšnost studentů byla zoufale nízká, pouhých 15.73% . Bylo by zajímavé znát názor paní Gomes na zařazení této činnosti do kategorií Bloomovy taxonomie, ale bohužel jej neuvádí. |
||
Skupina [3] Úkol: naprogramovat celý program Zde studenti mĕli naprogramovat celý program. I zde byla úspĕšnost studentů zoufale nízká, pouhých 9.46% . Ani zde paní Gomes nespecifikuje zařazení této činnosti do kategorií Bloomovy taxonomie. Paní Gomes upozorňuje, že existují studenti, kteří dokážou sledovat výklad kurzu programování, dokážou rozebírat a porozumĕt programům, ale nejsou schopni napsat vlastní program. Takovíto studenti – podle paní Gomes – umí kódovat, ale neumí vytvořit algoritmus. |
||
Poznámka k algoritmizaci: Obávám se, že mezi mnou a paní Gomes existuje jistý rozdíl v nakládání s pojmy. Moje představy jsou takovéto: „Kodér“ je programátor, který „píše kód“, neboli převádí do programovacího jazyka algoritmus vytvořený nĕkým jiným, případnĕ převádí do programovacího jazyka požadavky zadavatele. „Kodér“ nemusí umĕt vytvářet algoritmy – bohatĕ stačí, když umí používat ty již známé. „Algoritmizátor“ je nĕkdo, kdo vytváří algoritmy. Nemusí nezbytnĕ umĕt programovat, ale mĕl by dokázat ty svoje algoritmy jednoznačnĕ zapsat, což vlastnĕ vyjde nastejno s programováním. Pokud algoritmizátor neumí programovat, musí mít k ruce programátora (kodéra), který chápe jeho představy. Na to, aby kodér napsal ucelený vlastní program, nepotřebuje vytvořit žádný nový algoritmus. Psaní kódu a vytváření algoritmů jsou dvĕ odlišné činnosti. Jedno s druhým souvisí, ale nejedná se o totožné činnosti, ani není vytváření algoritmů nĕjakou vyšší úrovní psaní kódu. „Kódování“ neboli psaní kódu je rutinní, řemeslná činnost. „Algoritmizace“ neboli vytváření algoritmů je tvůrčí činnost. Cílem mého kurzu programování je vyučit řemeslné programátory, kodéry. Zdá se, že cílem kurzu „Informační technologie“ paní Gomes je vychovat algoritmizátory. |
||
Poznatky ze závĕrečné zkoušky Zdá se, že i výsledky studentů u závĕrečné zkoušky potvrzují existenci propasti mezi nejnižšími kategoriemi Bloomovy taxonomie a „opravdovým“ programováním. Lze z toho usoudit, že schopnost studentů programovat nelze zredukovat ani na znalost, ani na pochopení, a snad ani na aplikaci znalostí? Podle mne lze. |
||
Gomes [3] Diskuze Paní Gomes píše, a já cituji doslova: „The students knew in advance that the final exam would have a group of questions that wouldn’t require them to create complete programs. In no way did we tell them that answering those types of questions correctly would be enough to pass (in fact we said the contrary). Just the same, they felt that they had better chances to pass.“ Volnĕ přeloženo: Paní Gomes je přesvĕdčená, že studenti musí umĕt nejen přečíst úseky kódu, ale i naprogramovat úseky kódu a celé programy, a že testy a zkoušky by na prvním místĕ mĕly ovĕřovat právĕ tuto schopnost. |
||
Diskuze [4] Význam Při stanovení výsledné známky mĕly výsledky za kategorie 3 až 6 vyšší (a to rozhodující!) váhu nežli výsledky za kategorie 1 a 2, jinými slovy otázky z kategorií 1 a 2 byly ve zkoušce pouze jako „snadný úspĕch“ pro povzbuzení slabších studentů. S posouzením schopnosti studentů programovat nemĕly nic společného a paní Gomes se místo nich klidnĕ mohla studentů ptát, kolik noh má židle. Pohádkou se jeví i tvrzení o předřazení schopnosti číst kód před schopnost programovat. |
||
Diskuze [5] Moje shrnutí Studenti programování samozřejmĕ musí vládnout schopnostmi na úrovni kategorií 1 a 2 Bloomovy taxonomie. Ale z hlediska jejich schopnosti programovat jsou tak samozřejmé, že je možná má smysl testovat v prvním týdnu po prázdninách, jako rozcvičku. Testovat schopnosti na úrovni kategorií 1 a 2 Bloomovy taxonomie v závĕrečné zkoušce (nebo v jakémkoli významném testu) by bylo ztrátou času. |
||
Gomes [6] Závĕry Ty hlavní závĕry jsou: – Výsledky dosažené studenty v přestavĕném kurzu Informační technologie (s novou metodikou) jsou podobné výsledkům z předchozích let, z nepřestavĕného kurzu (před novou metodikou). – Byla zaznamenána vyšší motivace a vyšší sebedůvĕra studentů, zejména u slabších studentů. – Slabší studenti by na úspĕšnĕjší zvládnutí kurzu potřebovali víc času. – Konečný cíl zůstává stále stejný – studenti by mĕli umĕt psát programy, které řeší konkrétní problémy. – Tým kolem paní Gomes použije tuto metodiku v semestrálním (tedy dvakrát delším) kurzu. |
||
Závĕry [7] Krotký protinázor Výsledky studentů s použitím nové metodiky jsou podobné výsledkům před použitím nové metodiky. Nicménĕ paní Gomes považuje novou metodiku (tu s použitím kategorií Bloomovy taxonomie) za správnou. Motivace slabších studentů (a obecnĕ vztah slabších studentů ke kurzu Informační technologie) se díky nové metodice zlepšila, a to je správné. Opravdu je to správné? |
||
Co dál? Článek Anabely Gomes přináší mnoho látky k zamyšlení. Mohu se více zamýšlet, do které kategorie Bloomovy taxonomie patří ta která látka, kterou mým studentům přednáším, a ten který problém, který mým studentům zadávám. Neočekávám, že bych posílil zastoupení problémů kategorie 1 a 2. Pokusím se zkonstruovat nĕjaký test, který potvrdí nebo vyvrátí existenci vazby mezi schopností studenta porozumĕt úsekům kódu a schopností studenta naprogramovat úseky kódu srovnatelné velikosti a složitosti. Paní Gomes to nikde výslovnĕ netvrdí, ale zdá se, že o existenci takové vazby pochybuje. Já očekávám potvrzení existence takové vazby. Tak uvidíme. |