DIDAKTICKÝ EXPERIMENT VE VÝUCE TEORETICKÉ INFORMATIKY HABIBALLA Hashim Abstrakt. Příspěvek popisuje pedagogický experiment výuky teorie formálních jazyků a automatů na základě aplikačního přístupu. Rozebírá praktickou realizaci experimentu a předkládá výsledky první fáze. Klíčová slova: Teoretická informatika, didaktika informatiky, formální jazyky a automaty, pedagogický experiment
DIDACTIC EXPERIMENT IN EDUCATION OF THEORETICAL COMPUTER SCIENCE Abstract. The article describes educational experiment in teaching of theory of formal languages and automata with application concept. It presents practical realization and initial results. Keywords: theoretical computer science, computer science education, formal languages and automata, pedagogical experiment
1 Úvod – východiska experimentu Informatika jako samostatný vědní obor má za sebou v porovnání s jinými exaktními vědami poměrně krátkou historii, i když se samozřejmě oblasti jejího zájmu prolínaly s jinými disciplínami, především matematikou a technickými vědami. Zatímco například matematika má solidně propracovaný systém didaktiky (teorie vyučování), v informatice se tento systém prozatím buduje a bohužel někdy mnohem pomaleji než by si metodikové, učitelé i samotní žáci a studenti přáli. Postupně jsem si tento problém, jako učitel budoucích profesionálních informatiků a učitelů informatiky, začal uvědomovat. Při mém studiu na vysoké škole jsem se setkal s mnoha odvětvími a souvisejícími oblastmi informatiky od technických záležitostí hardwaru počítačů přes algoritmizaci a programování až k abstraktní matematice a především teoretické informatice. Poslední zmiňované odvětví se vyznačovalo nejen obtížným učením a chápáním, ale také přitažlivostí pro toho, kdo ho pochopit chtěl a dokázal. V teoretické informatice se mi otevřela cesta k poznání, co stojí za aplikovanými oblastmi informatiky – tedy k matematické logice, teorii jazyků a automatů či vyčíslitelnosti a složitosti algoritmů. Tyto předměty měly poměrně blízko k matematice ve své formální stránce a také používaly její metody – důkazy, které pro mnoho studentů znamenaly demotivaci až odpor k těmto předmětům. Vyžadovaly značné úsilí studenta, ale toto úsilí se vyplatilo. Vedlo k pochopení struktury programovacích jazyků, návrhu efektivních algoritmů i deklarativních přístupů známých opět z praxe používání databází.
Jelikož z vlastní zkušenosti vím, jak akcent na tyto schopnosti může usnadnit proces učení, zahájil jsem práci v oblasti teorie vyučování informatiky, která by měla mít zpětnou vazbu. Ta spočívá v návrhu výuky s využitím „aplikačního pojetí“, které bylo formulováno jako učení s důrazem na vyšší učební cíle [3],[4]. Mělo by se pracovat s intuitivními znalostmi studentů a především využít jejich analytické a algoritmické schopnosti s použitím počítačových aplikací a jejich algoritmů – zdrojových kódů. Zpětnou vazbou pak bude pedagogický experiment realizovaný na Ostravské Univerzitě (OU) s didaktickými testy, který by měl potvrdit nebo vyvrátit hypotézu, že tento přístup umožňuje studentům dosahovat lepší výsledky při chápání a aplikovatelnosti znalostí a dovedností. 2 Aplikační pojetí výuky V této práci je snaha využít algoritmizačních a programátorských schopností a motivačního faktoru při výuce. Jak ve středním, tak vysokém školství je třeba akcentovat mezipředmětové vztahy. Konkrétně na úrovni VŠ jde pak o vztahy mezi jednotlivými teoretickými oblastmi informatiky a předměty spadajícími do programování a aplikací. Komplexní příprava praktických odborníků a učitelů v oblasti informatiky vyžaduje pevné základy teoretických disciplín. Je důležité vytvářet u studentů nejen statické znalosti (definice, věty, důkazy), ale také specifické dovednosti, návyky a postoje (analytické a algoritmické myšlení, strukturovaný přístup k jazykům a překladačům atd...) Z těchto důvodů je třeba zkoumat, zda dosud převážně používané metodiky (i když nejsou explicitně formalizovány) jsou efektivní v tomto směru. Z praxe učitelů (i studentů) těchto předmětů lze často slyšet, že klasická výuka založená na učení znalostí při použití organizační formy hromadného vyučování vede k memorování bez pochopení principů, demotivaci pro další studium a tím i formování nesprávných návyků a postojů v informatice u budoucích absolventů. U studentů nadaných a motivovaných pro teoretické obory má tento způsob výuky své opodstatnění a je pro ně zajímavý. Ti chtějí pochopit nejen podstatu, ale i dokazovat, že pojmy mají mezi sebou deklarované vazby. Mluvíme však pouze o úzké skupině, která by neměla být cílovou skupinou této základní výuky. Cílem by mělo být, aby každý student chápal význam teorie pro praxi a pro jeho obecný profesionální nadhled v informatice. Měl by umět vidět vlastnosti algoritmů v jejich obecnosti, nutnost zkoumat řešitelnost a efektivnost řešení problémů. Také by měl pochopit, že používané nástroje v informatice jsou založeny na pevných strukturách souvisejících s pojmy gramatiky, jazyka a analyzátoru. Taktéž logický úsudek a jeho formalizace v matematické logice by se měl stát součástí postojů informatika. Proto byl zahájen didaktický experiment, který má dát odpověď na základní otázku, zda aplikační pojetí při výuce teoretické informatiky, zlepší naplnění vyšších vzdělávacích cílů – tedy porozumění, aplikaci, analýzu a syntézu. Ve výuce teorie formálních jazyků a automatů na VŠ se většinou akcentuje matematické pojetí. Buduje se pojmový aparát na matematických strukturách a dokazují se vlastnosti zaváděných struktur. Mnohem méně se však ukazuje, jaké je využití těchto znalostí a zejména, jak se tyto struktury v praxi implementují. Nejblíže aplikačnímu pojetí je výuka na technických vysokých školách (v ČR například VŠB, VUT), kde se studenti učí nejen teorii, ale i používané softwarové nástroje k vytváření rozkladových tabulek gramatik apod. (yacc, LL-gen atd.) Používaní nástrojů však studentům nedává potřebný náhled principů samotných algoritmů pro tvorbu analyzátorů. Pochopení těchto algoritmů jim přibližuje nepřímo také samotné teoretické otázky tvorby syntaktických analyzátorů a překladačů. Například metoda rekurzivního sestupu [2] je velice účinnou metodou pro výuku tvorby analyzátorů a principů jejich práce. Podobné přístupy mohou napomoci studentům při
pochopení vztahů mezi jazyky, gramatikami a automaty a to tím, že podporují didaktické zásady názornosti a trvalosti. Podporuje se tím specifický i nespecifický transfer znalostí a dovedností. Práce prof. Lewise z University of Kentucky [11] ukazuje názorné využití této metody a neméně zajímavé jsou z hlediska didaktického např. práce [9]. Ve výzkumu půjde o důsledné didaktické využití a prověření účinnosti metod s podobnými atributy. 3 Programátorské didaktické pomůcky Aplikační pojetí výuky využívá ve větší míře programátorské didaktické pomůcky. Tyto pomůcky mají poskytnout nejen názorný, interaktivní nástroj pro teoretickou výuku, ale především naplňovat aplikační pojetí výuky – tedy poskytovat studentům náhled na teoretická témata s pomocí implementace algoritmů a tím jim usnadňovat dosažení vyšších učebních cílů. Tyto pomůcky vznikaly nejen jako bakalářské a diplomové práce pod vedením autora, ale také v rámci předchozí výuky jako produkty projektové metody vyučování. Popišme si alespoň zkráceně vlastnosti, které by měla programátorská pomůcka splňovat a příklady některých z nich, které byly a jsou používány ve výuce. Jak vyplynulo z předvýzkumu realizovaného na OU [6], studenti sice nepreferují disciplíny teoretické informatiky, ale poměrně vysoko si cení algoritmizace a programování. Proto je snaha využít aplikace a jejich algoritmický základ pro výuku jistě zajímavá, vzhledem k motivaci studentů. Nejde jen o jejich využití jako interaktivních pomůcek pro pochopení teoretických předmětů, ale i o využití algoritmických dovedností, které fungují obousměrně. Přinášejí s sebou obousměrný transfer – studenti se naučí řešit teoretické postupy algoritmicky pomocí počítače a zároveň tak lépe pochopí teoretickou stránku problematiky. Vždyť podle psychologických výzkumů význam právě takovýchto pomůcek je neoddiskutovatelný ([12] na základě psychologických studií Fredmanna): Průměrný člověk si zapamatuje přibližně: -
10% z toho, co přečte
-
20% z toho, co slyší
-
30% z toho, co vidí v podobě obrazu
-
50% z toho, co vidí a současně slyší
-
70% z toho, co vidí, slyší a aktivně vykonává
-
90% z toho, k čemu dospěl sám, na základě vlastních zkušeností vykonáváním činnosti
A právě hypotézou výzkumu je tvrzení, že pro informatiky je touto činností analýza problému a jeho algoritmizace a implementace. Pokud je student nejen nucen učit se obrovské množství definic, vět a důkazů, ale dokáže je aplikovat na konkrétní situace, budou jeho dovednosti hlubšího a trvalejšího charakteru. Programátorské didaktické pomůcky jsou prostředkem, který k vysoké efektivitě výuky směřuje. Nelze je však považovat za pouhý pedagogický software (teachware), u nějž nejde principiálně o pochopení realizace samotných algoritmů tohoto software. Za základní požadavky kladené na programátorskou didaktickou pomůcku lze považovat: 1. Jde o aplikaci realizovanou prostřednictvím (osobního) počítače (příp. i na jiném prostředku, který umožňuje jeho programování)
2. Aplikace řeší teoretický problém a umožňuje interaktivně řešit problémové úkoly – studenti mohou parametry programu i vstupu měnit dle vlastní vůle nebo pokynů učitele. 3. Aplikace má alespoň základní dokumentaci, která studentům umožní samostatnou práci a zároveň je vhodné, aby obsahovala ilustrativní příklady. 4. Procedury, které vybraný problém při zvolené konfiguraci řeší, je možné rozebrat na základě jejich algoritmické implementace. Zároveň lze do těchto procedur zasahovat a měnit chování programu, nebo použít úseky kódu pro řešení příbuzných problémů. Důsledné splnění všech těchto podmínek je obtížné. Splňují je beze zbytku pouze některé používané aplikace. Pokud jde o body 1. – 3. jsou podmínky jasné, ovšem naplnění bodu 4. naráží na mnoho komplikací: -
autorská práva k některým i akademickým aplikacím sice umožňují jejich použití, avšak omezují nebo zcela vylučují práci se zdrojovými kódy aplikace
-
implementace je realizována v málo přístupném prostředku pro studenty (například jazyk C++ je sice z profesionálního hlediska účinný, ale jeho didaktické použití není příliš vhodné)
-
aplikace používají velké množství již hotových knihoven nebo produktů, které zamezují vniknutí do jejich algoritmických řešení apod.
Vzhledem k tomu, že nelze tyto problémy pominout ani nelze zavrhnout aplikaci, která bod 4. nenaplňuje, je možné jeho splnění v přiměřených mezích. Například aplikace RABJ1 (viz další text) tento bod nebude splňovat, ale přesto má didaktický význam a řešení je tak zdařilé, že lze jeho použití ve výuce teorie formálních jazyků velmi doporučit a nahradit teoretickým výkladem algoritmů, který tento prostředek implementuje. Programátorské didaktické pomůcky pro výuku teorie formálních jazyků: PREGJAUT Tato aplikace umožňuje provádět a zobrazovat detaily převodu regulárních výrazů na automaty (nedeterministické, deterministické, podílové a normované). Tento program studenti využívají pro kontrolu samostatně počítaných příkladů a také pro sledování průběhu převodu jednotlivými mezikroky. K programu jsou rovněž přiloženy zdrojové kódy, které mohou studenti použít pro lepší pochopení probíraných algoritmů. Algoritmy, jakožto jádro programu, jsou vytvořeny v Turbo Pascalu 7.0 a jsou uloženy ve třech unitech - syntaktická analýza zadaného regulárního výrazu v infixu metodou rekurzivního sestupu s rozpoznáváním chyb a s paralelním zápisem do postfixu, převod regulárního výrazu zadaného v postfixu na ZNKA, všechny ostatní přechody (tzn. ZNKA -> NKA -> DKA -> Totální KA -> PA -> NA). Pro práci se studenty se osvědčilo zadávat výpočet jednoduchého regulárního výrazu manuálně (např. ((a + b)b*)). Studenti si tak postup vyzkoušejí samostatně a uvidí, že tento postup lze efektivně realizovat automatizovaně. Dále je velmi užitečné jim ukázat, že ekvivalentní výrazy (např. (ab* + bb*)) vedou ke stejným automatům. Studenti jsou podobným aplikovaným způsobem výuky osloveni a sami si pak dokáží vytvářet problémové příklady. Uživatelské rozhraní PREGJAUTu je vidět na obrázku.
Obrázek 1: Aplikace Pregjaut
GRAMAUT Asi nejrozsáhlejší a nejprecizněji zpracovanou je práce Mgr. Hřivňáka [7]. Tato práce přináší počítačovou aplikaci GramAut, která umožňuje návrh a převody regulárních a bezkontextových gramatik a příslušejících automatů. Implementuje stávající algoritmy a dává velmi účinný didaktický nástroj pro výuku. Umožňuje i provádět syntaktickou analýzu u těch gramatik, které vyhovují podmínkám pro LL(k) resp. LR(k) gramatiku. RABJ Další velmi zdařilou prací (dokonce seminární!), která vznikla během výuky teorie formálních jazyků a automatů je aplikace studenta Koběrského a kol. pro výpočet množin FIRST a FOLLOW u LL(1) gramatik a vytvoření rozkladové tabulky. Všechny tyto práce přispívají nejen k osobnímu rozvoji studentů v programování, ale i v teoretické informatice, neboť jim umožňují lepší pochopení problematiky. Příklad, který můžete vidět na obrázku, je gramatikou pro aritmetické výrazy s operátory +,* a závorkami. Gramatiku lze navrhnout přímo v tomto programu a poté si lze nechat vypsat následující položky – strom pravidel, množiny FIRST, FOLLOW, N-epsilon, množinu konfliktů a vytvořit rozkladovou tabulku, pokud nenastal žádný konflikt. Podobných programátorských pomůcek je již vytvořena celá řada a jejich použití je testováno v experimentální výuce.
Obrázek 2: Aplikace RABJ pro tvorbu rozkladové tabulky LL(1) gram.
4 Pedagogický experiment a analýza tématických celků Hlavní výzkumnou metodou je pedagogický experiment [12]. Tento experiment je realizován na Ostravské Univerzitě mezi studenty informatických oborů a to studia odborného magisterského oboru informační systémy a bakalářského oboru aplikovaná informatika; ve výběru jsou také spolu s bakaláři zahrnuti studenti učitelství, jelikož jejich odborný profil zhruba odpovídá spíše bakalářskému studiu. Je aplikován na studenty kurzu Regulární a bezkontextové jazyky I. a II. a to tak, že byla vybrána experimentální(E) a kontrolní skupina(K). Skupina E je vyučována v souladu s aplikačním pojetím a kontrolní skupina je vyučována klasickým přístupem definice-věta-důkaz bez důrazu na vyšší učební cíle. Hypotézy výzkumu byly přesně specifikovány podle dílčích cílů a problémů. Jeho výsledky vedly právě k formulaci aplikačního pojetí. Použité prostředky jsou popsány v článku [5]. Pro podporu samostatné práce je také studentům k dispozici literatura především kvalitní učebnice (např. [8],[1] a mnoho dalších). Pro ověření hypotéz jsou zpracovány didaktické testy, které zkoumají vědomosti, dovednosti a návyky studentů. Pro ověření postojů je zpracován dotazník, který zjistí subjektivní názory studentů po absolvování obou fází experimentu. Výsledky jsou zpracovávány pomocí statistických metod – testování hypotéz a analýzy rozptylu. Na základě této kvantitativní analýzy bude vytvořeno kvalitativní hodnocení cílů. Jistou slabinou výzkumu je omezený vzorek studentů, které lze zkoumat. Vždy půjde o řádově několik desítek studentů v každé skupině. Je to bohužel způsobeno tím, že se zkoumá výuka na terciární úrovni, kde je v daném oboru a typu studia (netechnicky zaměřeného) oproti sekundární úrovni mnohem méně potenciálních jedinců ke zkoumání. Nebylo by ani správné srovnávat například studenty oboru inženýrských nebo naopak matematicko-informatických, jejichž úroveň v různých prvcích učiva bude odlišná (inženýři jsou spíše znalí uživatelé nástrojů, kdežto matematičtí informatici budou spíše rozšiřovatelé poznání v teoretické informatice - výzkumníci v základním a aplikovaném výzkumu). Výuka
podle aplikačního pojetí by měla být zaměřena právě na prakticky zaměřené informatiky (ale nikoliv pouhé operátory!), tedy na tvůrce informačních systémů, vývojáře, programátory, kteří potřebují pro svou profesi porozumět teoretickým základům informatiky. Bylo by jistě mnohem zajímavější provést výzkum na vzorku o řád vyšším, na druhou stranu je nutné vycházet z reálných možností. Přesto by výsledky měly mít svou validitu ze dvou důvodů. Jednak v metodologické literatuře [12] se i takový vzorek považuje za malý nicméně dostačující, a za druhé je analýza variance kvalitním statistickým aparátem, který z těchto dat umožňuje činit závěry, za předpokladu splnění vstupních podmínek. Navíc exaktní testy, jejichž výsledky jsou sledovány, byly konzultovány jak s odbornými informatiky, tak odborníky na didaktiku a proto by jejich vypovídací hodnota měla být vysoká (a samozřejmě i se samotnými studenty – absolventy kurzu). Testy jsou vypracovány podle metodické literatury a podle patří mezi testy nestandardizované, kognitivní, ověřující a jde o testy výsledků výuky. Testy jsou zpracovány na každý tématický celek a jsou stejné pro obě skupiny (K,E). V testu jsou otázky rovnoměrně rozloženy podle taxonomie vzdělávacích cílů a obsahu učiva, tj. nejen na znalosti studenta, ale hlavně na jeho porozumění učivu. V první fázi experimentu byly obě skupiny podrobeny výuce prvního tématického celku – pro rozsáhlost je uvedena pouze část souhrnné didaktické analýzy učiva, aby si čtenář mohl udělat obrázek o obsahu a metodách výuky v kontrolní a experimentální skupině: Tématický celek 1: Konečný automat a jazyky rozpoznatelné konečnými automaty, regulární jazyky a výrazy (kontrolní skupina) Důležitost: seznámení studentů s pojmem automatu a jazyka; determinismus vs. nedeterminismus – základy pro pochopení lexikálních a syntaktických struktur. Cíle: student po absolvování má chápat vztahy mezi jazykem, gramatikou a automatem; má znát a umět definovat pojem KA; má umět definovat deterministický a nedeterministický automat; má umět provádět převody podle algoritmů mezi – ZNKA, NKA a DKA; má umět provádět základní množinové operace s automaty; má umět provádět převody DKA na redukovaný normovaný tvar; všechny tyto vlastnosti převodů musí umět matematicky dokázat alespoň v základních myšlenkových principech; má pochopit princip regulárních výrazů a jazyků; vztah regulárních jazyků a jazyků rozpoznatelných KA a tyto vztahy matematicky dokázat. Obsah: -
je rozdělen do 21 témat s ohledem vědecký systém teorie formálních jazyků pro obor jsou důležité tyto principy pro pochopení struktury jazyků (např. programovací, dotazovací apod.) a jejich rozpoznávaní příklady jsou spíše matematické (jazyky jsou v omezených abecedách např. {0,1})
Metody a formy výuky: - informačně-receptivní metoda – výklad definic, algoritmů, vět a důkazů - reproduktivní metoda – řešení příkladů převodů, množinových operací, aplikace vět - forma hromadného vyučování Motivace: -
ukázka vyhledávání v textu pomocí regulárních výrazů
(experimentální skupina) Důležitost: viz skupina K + zdůraznění intuitivních pojmů jazyka, gramatiky a analyzátoru.
Cíle: viz skupina K; menší důraz na matematické důkazy a více pozornosti věnovat tomu, aby student pochopil aplikace učiva celku v praxi. Metody a formy výuky: - informačně-receptivní metoda – výklad definic, algoritmů, vět a intuitivních pojmů - reproduktivní metoda – řešení příkladů převodů, množinových operací, aplikace vět; využití didaktických nástrojů (aplikací) popsaných v předchozím textu, především programu Pregjaut a programu GramAut - problémový výklad – důkazy vztahů regulárních jazyků a konečných automatů - heuristická metoda – studenti s použitím zmíněných aplikací budou vypracovávat příklady ekvivalentních regulárních výrazů, podmnožin jazyků a dokazovat pomocí převodů na redukované tvary jejich ekvivalenci; skupiny studentů dostanou za úkol naprogramovat vybrané převodní algoritmy - forma hromadného vyučování – užije se pro výklad pojmů, procvičování - forma skupinového vyučování – užije se pro zadávání samostatných prací – programování vybraných převodních algoritmů Motivace: Hlubší pochopení principů formalizovaných pojmů na základě intuitivních; ukázka praktických aplikací a nástrojů, se kterými mohou studenti interaktivně pracovat; programování algoritmů ve skupinách Didaktické testy, které ověřují naplnění učebních cílů jsou rovněž k dispozici. Pro jejich rozsáhlost jen uveďme, že každá jejich otázka byla důkladně promyšlena na základě analýzy, jaké výstupní znalosti a dovednosti by měl student zvládnout. Pro příklad se zamysleme nad touto otázkou: Uveďte alespoň 5 jazyků, které nelze rozpoznat konečným automatem. (3.3,3.4 – dle taxonomie učebních úloh) Prověřuje, zda student chápe, které jazyky (principiálně) nelze konečným automatem rozpoznat. V testech tedy nejde o to, aby student jen reprodukoval (bez pochopení) kritérium pro regularitu jazyka, ale aby skutečně chápal, co to znamená. Jen takto dosáhneme toho, aby student pouze nememoroval znalosti, ale chápal je. 5 Výsledky první fáze experimentu První fáze experimentu byla realizována na katedře informatiky a počítačů Přírodovědecké fakulty Ostravské Univerzity v zimním semestru akademického roku 2002/2003. Zúčastnilo se ho celkem 56 studentů – z toho bylo 28 bylo zařazeno do výuky v experimentální skupině a 28 do výuky v kontrolní skupině. V každé skupině byli zastoupeni rovnoměrně studenti oboru aplikovaná informatika (bakalářské studium) + učitelství a informační systémy (magisterské studium). Studenti kontrolní skupiny byly vyučováni klasickým přístupem založeném na matematickém přístupu podobným například výuce algebry apod. (definice-věta-důkaz) a na cvičeních jim byly dávány příklady na procvičení problematiky z přednášky. Naopak skupina experimentální byla vyučována s použitím výpočetní techniky podle již popsané analýzy učiva. Studenti měli možnost pracovat s aplikacemi, které interaktivně simulovaly konečné automaty, převodní algoritmy a byly jim podávány příklady, kde se prakticky využijí konečné automaty a regulární výrazy a jejich teoretické vysvětlení pomocí konečného automatu. Dále studenti dostali zadán samostatný projekt - tvorba samostatných příkladů s pomocí programátorských pomůcek.
Didaktický test, který studenti absolvovali, byl ohodnocen maximálně 25 body a bodové hodnocení bylo rozvrstveno podle témat a jejich obtížnosti. Otázka s nejmenším ziskem byla za 1 bod a s největším za 3 body, celkem bylo v testu 12 otázek. Test byl konstruován s maximální možností objektivního hodnocení – obsahuje sice otevřené otázky, nicméně jejich zhodnocení je vzhledem k snadnému ověření správnosti ve všech případech jednoznačné. I u otázek, kde student prováděl výpočty, byly stanoveny jasná pravidla – záchytné body – kterých musel student dosáhnout, aby mu byl v dané otázce přidělen jistý počet bodů. Takto silně otevřené otázky však byly však v testu pouze 3. Normalita dat a shodnost rozptylů Důležitým kritériem pro aplikaci analýzy rozptylu je normalita dat testu. Byly provedeny základní testy (v softwaru NCSS97) a jejich výsledky potvrzují hypotézu o normalitě výsledků testu (na 5% hladině). Na obrázku můžete vidět grafy četností pro skupinu K a E. Shodnost rozptylů byla testována modifikovaným Levenovým testem a jeho výsledek je hraniční, i když na 5% hladině nebyla hypotéza o shodnosti rozptylů zamítnuta. Histogram of C6 12,0
7,5
9,0
Count
Count
Histogram of C5 10,0
5,0
2,5
0,0 5,0
6,0
3,0
10,0
15,0
20,0
0,0 12,0
25,0
15,5
C5
19,0
22,5
26,0
C6
Obrázek 3: Histogram četností skóre testu u skupiny K a E
Výsledky testů na normalitu a shodnost rozptylů jsou následující: Assumption Skewness Normality of Residuals Kurtosis Normality of Residuals Omnibus Normality of Residuals Modified-Levene Equal-Variance Test
Test Value -1,7450 0,5256 3,3211 3,7240
Prob Level 0,080991 0,599197 0,190033 0,058896
Decision (0,05) Accept Accept Accept Accept
Výsledky statistické analýzy tohoto testu (analýza rozptylu) jsou následující. Hypotéza 1: Jsou celkové vědomosti studentů v kontrolní (K) a experimentální skupině (E) po první fázi stejné? Hypotéza 2: Jsou celkové vědomosti nezávislé na studovaném oboru (aplikovaná informatika - AI, informační systémy - IS)? Hypotéza 3: Jsou celkové vědomosti nezávislé na interakci mezi typem výuky a oborem?
Výsledky analýzy rozptylu můžeme rozebrat z následující tabulky (byl použit přehlednější výstup z MS-Excel):
Faktor
K
E
Celkem
AI
Počet Součet Průměr Rozptyl
14 14 28 230 270,5 500,5 16,42857 19,32143 17,875 22,99451 7,831044 17,01157 IS
Počet Součet Průměr Rozptyl
14 14 28 231,5 264 495,5 16,53571 18,85714 17,69643 8,825549 5,978022 8,524802
Celkem
Počet Součet Průměr Rozptyl ANOVA Zdroj variability Výběr Sloupce Interakce Dohromady Celkem
28 28 461,5 534,5 16,48214 19,08929 15,32374 6,704696
SS 0,446429 95,16071 1,142857 593,1786 689,9286
Stupně volnosti 1 1 1 52 55
MS
F
Hodnota P
F krit
0,446429 0,039135 0,843952 4,026631 95,16071 8,342104 0,005634 4,026631 1,142857 0,100187 0,752873 4,026631 11,40728
Vidíme, že celkový průměrný výsledek studenta je ve skupině K – 16,48 b. a ve skupině E – 19,09 b. Experimentální skupina tedy dosahuje lepších výsledků v průměru o 2,61 b. Otázkou alternativní hypotézy 1 však je, zda je takovýto rozdíl statisticky významný na „rozumné“ hladině významnosti. Na to nám dává odpověď řádek Sloupce, který určuje hodnotu Fisher-Snedecorova rozdělení. Hodnota P (pravděpodobnosti, že toto rozdělení nabývá hodnoty větší než vyčíslené) je zhruba P=0,006. To dává na hladině 5% významnosti (resp. 95% spolehlivosti) oprávnění zamítnout hypotézu o nevýznamnosti rozdílu – na standardní hladině používané ve společenských vědách můžeme tvrdit, že v experimentální skupině jsou výsledky lepší než v kontrolní. Dalším tvrzením, které můžeme formulovat je přijmutí hypotézy, že vědomosti nezávisí na studovaném oboru (P=0,84) a také že vědomosti nezávisí ani na interakci mezi typem výuky a studovaným oborem (P=0,75). Pro formulaci dalších hypotéz je test rozdělen na skupiny otázek podle jejich taxonomie učebních úloh a dále taxonomie učebních cílů. V testech se tyto otázky občas překrývají, přesto však vzhledem k jednoznačnosti a nezávislosti výsledku analýzy bylo provedeno jejich jednoznačné rozčlenění podle převažující vlastnosti. Posledním rozčleněním bylo zkoumáno, jak se liší výsledky skupiny K a E podle částech učiva. Hypotéza 4: Jsou výsledky studentů skupiny K a E v následujících typech úloh stejné? -
4.1: pamětní reprodukce
-
4.2: jednoduché a složité myšlenkové operace
-
4.3: tvořivé myšlení Hypotéza 5: Je naplnění následujících učebních cílů u studentů skupin K a E stejné?
-
5.1: porozumění
-
5.2: aplikace
-
5.3: analýza
-
5.4: syntéza Hypotéza 6: Jsou výsledky v jednotlivých částech učiva stejné u skupin K a E?
-
6.1: základní pojmy
-
6.2: konečné automaty a uzávěrové vlastnosti
-
6.3: regulární jazyky a výrazy
-
6.4: vztah regulárních jazyků a jazyků rozp. KA, Nerodova věta
Pro tyto hypotézy bylo opět použito analýzy rozptylu a jejich výsledky jsou shrnuty v tabulce. Prům. Hypotéza max. Sk. K úspěšnost Sk. E úspěšnost 1-celkové vědom. 25 16,48 65,92% 19,09 76,36% 4.1-pamětní repr. 5 3,05 61,00% 4,36 87,20% 4.2-myšlenkové op. 14 10,07 71,93% 10,41 74,36% 4.3-tvořivé operace 6 3,36 56,00% 4,32 72,00% 5.1-porozumění 5 3,71 74,20% 3,95 79,00% 5.2-aplikace 10 7,04 70,40% 8,68 86,80% 5.3-analýza 6 3,25 54,17% 4,5 75,00% 5.4-syntéza 4 2,48 62,00% 1,96 49,00% 6.1: základní pojmy 4 3,71 92,75% 4 100,00% 6.2-KA a UV 6 4 66,67% 5,17 86,17% 6.3:RJ a RV 7 3,29 47,00% 4,32 61,71% 6.4:vztah RJ a KA 8 5,48 68,50% 5,59 69,88%
Rozdíl P-testu prům.
2,61 1,31 0,34 0,96 0,24 1,64 1,25 -0,52 0,29 1,17 1,03 0,11
Statist. význ. rozdíl(5%)
0,005634 ANO 0,000412 ANO 0,563713 NE 0,00512 ANO 0,563966 NE 6,61E-05 ANO 0,004482 ANO 0,156537 NE (-) 0,014706 ANO 0,000184 ANO 0,031257 ANO 0,860358 NE
Jak již bylo řečeno, celkové vědomosti a dovednosti jsou u studentů experimentální skupiny lepší. Pokud jde o jednotlivé typy úloh, tak ve všech oblastech jsou u skupiny E lepší, avšak u myšlenkových operací to nelze statisticky dokázat (tedy převody, výpočty apod.). Studenti skupiny E však mají převahu v reprodukci poznatků a v tvořivých operacích (jsou tedy schopni lépe si zapamatovat definice, věty a dokáží řešit problémové úlohy). Z hlediska učebních cílů jsou studenti skupiny E lepší v oblasti porozumění (což ale nebylo prokázáno), aplikace a analýzy. V oblasti aplikace jsou dokonce velmi výrazně lepší, což je pro tento výzkum jedna z nejdůležitějších oblastí. Pokud jde o syntézu znalostí, pak skončili lépe studenti skupiny kontrolní. Z hlediska aplikačního pojetí však právě tuto oblast nepreferujeme. Jde o schopnost syntetizovat definice a věty do správných matematických formalizací a formálně používat tento aparát. Je vcelku logickým závěrem, že v této oblasti jsou studenti skupiny K mírně zvýhodněni (čas věnovaný aplikacím u skupiny E logicky chyběl na formalizaci). Přesto ani tento rozdíl není statisticky významný. Z hlediska podcelků (částí) učiva se podařilo prokázat statisticky lepší výsledky u celků – základní pojmy teorie jazyků a automatů, konečné automaty, regulární jazyky a výrazy. Všechny tyto celky jsou z hlediska aplikačního pojetí důležité. Poslední celek – vztahy a vlastnosti – byl také lépe nastudován skupinou E, ovšem rozdíl není statisticky významný. Tento celek je z hlediska aplikačního méně významný. Shrňme si nyní výsledky do grafické podoby – obsahují srovnání skupiny K a E v celkovém výsledku a podle jednotlivých zkoumaných vlastností.
25 20 15
Skupina E Skupina K
10 5 0 1-celkové vědomosti
4.1-pamětní repr.
4.2myšlenkové op.
4.3-tvořivé operace
Obrázek 4: Taxonomie učebních úloh ve skóre testu a celkový výsledek 25 20 Skupina E
15
Skupina K 10 5 0 -5
1-celkové vědomosti
5.15.2-aplikace 5.3-analýza 5.4-syntéza porozumění
Obrázek 5: Taxonomie učebních cílů ve skóre testu a celkový výsledek 25 20 15
Skupina E Skupina K
10 5 0 1-celkové vědomosti
6.1základní pojmy
6.2-KA a UV
6.3-RJ a RV
6.4-vztah RJ a KA
Obrázek 6: Části tématického celku ve skóre testu a celkový výsledek
6 Závěr Uváděné výsledky jsou pouze první fází experimentu a jsou pouze malou sondou do možností, jak vyučovat pro někoho nezáživnou teoretickou základnu oboru. Tento experiment
by měl být pouze prvním z řady z experimentů, výzkumů a návrhu forem, metod a přístupů při výuce teorii formálních jazyků a automatů. Předpokládám, že podobný přístup ocení nejen studenti disciplín z oblasti teoretické informatiky, ale ze všech oborů věd, které v sobě nosí silnou logickou strukturu, silnou formalizaci a zároveň „intuitivní“ interpretaci pojmů a vlastností. Právě automat, gramatika či jazyk je podle mne pro informatika nejlepším příkladem, že formální definice lze podat způsobem, který bych nazval výkladem „dle selského rozumu“. Proč by tyto disciplíny jako je logika či teorie algoritmů měli dobře pochopit a umět v praxi aplikovat pouze nadaní studenti? Snad tento omezený výzkum dává naději, že to lze alespoň částečně změnit. Jelikož tento výzkum prokázal, že aplikační přístup s využitím programovacích metod, praktických aplikací a implementace a používaní programátorských pomůcek přispívá k naplnění některých vyšších učebních cílů a celkové úrovni vědomostí, bude na něj navazovat další práce zejména v těchto bodech: -
průběžný výzkum dalších přístupů aplikačního pojetí (didaktický experiment, tvorba aplikačních programátorských úloh, didaktických testů, opomíjená interpretace chyb [10])
-
aplikace přístupů experimentem i do dalších oborů teoretické informatiky (jako nejvhodnější pro další výzkum se jeví výuka matematické logiky)
-
tvorba studijních opor podle metodiky (s důrazem na praktické aplikace, samostatnou tvořivou činnost studentů); využitelné jak v prezenční výuce, tak v distanční formě studia
-
možnosti integrace těchto přístupů „skutečné“ informatiky do sekundárního vzdělávání (studenti by minimálně v nepovinných seminářích informatiky na SŠ měli mít možnost setkat se s teoretickými základy informatiky, tak jako je to obvyklé v zavedených předmětech – fyzika, chemie, apod.); v této oblasti je v přípravě článek ve spolupráci s Petrem Vojkovským z gymnázia ve Frýdku-Místku, který nejen nastiňuje možnosti, ale ukazuje i zkušenosti z výuky konečných automatů a reg. jazyků na tomto gymnáziu.
7 Literatura [1] ČEŠKA, Milan, RÁBOVÁ, Zdena. Gramatiky a jazyky. Brno, VUT 1992. Dokument dostupný na URL: http://www.fit.vutbr.cz/study/courses/TI1/public/gj-1.3.pdf [2] DVOŘÁK, Stanislav. Dekompozice a rekurzivní algoritmy. Praha, Grada 1992. [3] HABIBALLA, Hashim. Application concept in education of theoretical computer science. In Acta didactica 5. Nitra, FPV UKF 2002, s. 95 - 99. [4] HABIBALLA, Hashim. Metodika aplikačního pojetí při výuce teoretické informatiky. In Information and Communication technology in education. Ostrava, OU 2002, s. 198 - 203. [5] HABIBALLA, Hashim. Teoretická informatika ve vztahu k programátorským technikám. In Tvorba softwaru 2002. Ostrava, Tanger 2002, s. 41 - 49 [6] HABIBALLA, Hashim. Vztah studentů informatiky k teoretickým disciplínám. In III. vedecký seminár doktorandov. Nitra, FPV UKF 2002. Nitra. s. 119 - 123. [7] HŘIVŇÁK, J. Formální jazyky a automaty [diplomová práce], Ostravská Univ., 2001. [8] CHYTIL, Milan. Automaty a gramatiky. Praha, SNTL 1984. [9] KASTENS, U. Demonstration of parsing methods. University of Paderborn, 2002. Dokument dostupný na URL: http://www.uni-paderborn.de\fachbereich\AG\agkastens\compiler\parsdemo\index.html [10] KULIČ, V. Chyba a učení. Praha, SPN 1971. [11] LEWIS, F.D. Recursive Descent Parsing. University of Kentucky, 2002. Dokument dostupný na URL: http://cs.engr.uky.edu\~lewis\essays\compilers\rec-des.html [12] TUREK, Ivan: Didaktika technických predmetov, Bratislava, SPN 1990.
Kontaktní adresa: Hashim Habiballa katedra informatiky a počítačů Přírodovědecká fakulta Ostravské Univerzity 30.dubna 22, 701 03 Ostrava 1, Česká Republika tel.: +420596160213, e-mail:
[email protected], www: http://www.volny.cz/habiballa/