Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství
Bakalářská práce
Výuková aplikace Dráček Vývoj vybraných modulů Michael Bláha
Vedoucí práce: Ing. Radek Richtr
17. května 2013
Poděkování Děkuji vedoucímu práce panu Ing. Radku Richtrovi za cenné rady a připomínky, dále vedoucímu projektu Dráček panu Ing.Jiřímu Chludilovi za podporu, pomoc a vedení během tvorby. Také bych rád poděkoval členům týmu za spolupráci bez větších komplikací.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů. Dále prohlašuji, že jsem s Českým vysokým učením technickým v Praze uzavřel licenční smlouvu o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona. Tato skutečnost nemá vliv na ust. § 47b zákona č. 111/1998 Sb., o vysokých školách, ve znění pozdějších předpisů.
V Praze dne 17. května 2013
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2013 Michael Bláha. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Bláha, Michael. Výuková aplikace Dráček Vývoj vybraných modulů. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2013.
Abstract The goal of this bachelor thesis is to create selected modules for application called Dragon. Dragon is an educational application for elementary school students, which is supposed to grab and hold their attention as well as improve the growth of their knowledge and skills. For this application there will be modules with text-oriented exercises, which are to serve for education, especially for students who suffer from learning disabilities. Keywords Dragon, exercise, learning disability, modularity
Abstrakt Cílem této práce je vytvořit vybrané moduly pro aplikaci Dráček. Dráček je výuková aplikace určená pro žáky základních škol, která má za úkol žáky zaujmout a zároveň usnadnit rozvoj jejich znalostí a schopností. Pro tuto aplikaci budou vytvořeny moduly, jež poskytují textově orientovaná cvičení, která mají sloužit k usnadění výuky, především pak pro žáky trpící poruchami učení. Klíčová slova Dráček, cvičení, poruchy učení, modularita ix
Obsah Úvod Obecný popis řešení projektu . Aplikace Dráček . . . . . . . . Rozbor zadání a specifikace cíle Percepce . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
1 1 2 3 4
1 Analýza 1.1 Rozbor požadavků . . . . . . . . . . . . 1.2 Cíloví uživatelé . . . . . . . . . . . . . . 1.3 Existující inspirace . . . . . . . . . . . . 1.4 Možnosti tvorby a ukládání zadání . . . 1.5 Řešené moduly a důvody jejich existence 1.6 Ukládání výsledků . . . . . . . . . . . . 1.7 Ukládání nastavení jednotlivých cvičení . 1.8 Architektura aplikace . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
5 5 7 10 12 14 15 16 17
2 Návrh 2.1 Obecná kostra pro moduly . . . . . . . . 2.2 Návrh grafického uživatelského rozhraní . 2.3 Jednotlivé moduly . . . . . . . . . . . . 2.4 Návrh implementačních modelů ukládání vení jednotlivých cvičení . . . . . . . . .
19 . . . . . . . . . . . 19 . . . . . . . . . . . 20 . . . . . . . . . . . 21 výsledků a nasta. . . . . . . . . . . 25
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
3 Realizace 27 3.1 Knihovna pro tvorbu modulů . . . . . . . . . . . . . . . . . 27 3.2 Jednotlivé moduly a popisy jejich funkcionalit . . . . . . . . 30 xi
4 Testování 4.1 Neformální revize kódu 4.2 Jednotkové testování . 4.3 Testování komponent a 4.4 Systémové testování . . 4.5 Kvalifikační testování . 4.6 Akceptační testování . 4.7 Shrnutí . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . integrační testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
33 33 33 34 34 34 35 35
Závěr 37 Splnění zadání a cílů . . . . . . . . . . . . . . . . . . . . . . . . . 37 Budoucnost projektu . . . . . . . . . . . . . . . . . . . . . . . . . 38 Shrnutí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Literatura
41
A Seznam použitých zkratek
43
B Obsah přiloženého CD
45
C Obrázky
47
xii
Seznam obrázků 1.1 1.2 1.3
ukázka z demoverze aplikace Žáček v2.1 . . . . . . . . . . . . . ukázka z demoverze aplikace EduBase 3 . . . . . . . . . . . . . ukázka z demoverze aplikace Vesmírná čeština . . . . . . . . . .
11 12 13
2.1 2.2 2.3 2.4 2.5 2.6
prototyp cvičení Výběr možností v textu . návrh GUI cvičení Výběr možností v textu výsledné GUI cvičení Přesouvání do textu prototyp GUI cvičení Přesmyčky . . . . . prototyp GUI cvičení Délky slabik . . . . prototyp GUI cvičení Přesouvání do textu
. . . . . .
20 21 22 23 23 24
C.1 Cvičení na délky samohlásek od ZŠ Smečno . . . . . . . . . . .
48
xiii
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Úvod Rozmach informačních technologií v poslední době zasahuje i základní školy, porkočilé ovládání počítače a jiných technických prostředků se v čím dál větší míře objevuje i u mladších žáků základních škol, někdy dokonce předškolních dětí. V oblasti výuky je proto velký potenciál pro vývoj softwaru na výuku zaměřeného. Několik aplikací na toto téma se dostalo i na základní školu ve Smečně a vedení školy se líbil nápad, nikoliv již provedení. Paní ředitelka tedy požádala FIT ČVUT o spolupráci na projektu, který by měl za úkol vytvoření aplikace šité na míru potřebám školy. Projektu byl přiřazen tým studentů, aby v rámci několika předmětů splnil požadavky pedagogů ze ZŠ Smečno. Tato úloha však měla potenciál na větší projekt a rozhodnutí padlo na vytvoření komplexního informačního systému, který by umožňoval nejen několik zábavných cvičení, ale i zpětnou vazbu, která by spočívala v ukládání výsledků a jejich přehledu, a určitou variabilitu, tedy například možnost přidávat nová cvičení či vytvářet různá zadání. Vznikl tedy projekt Dráček, který má za úkol vytvořit stejnojmennou aplikaci pro žáky základních škol. Aplikace by měla pomáhat převážně dětem s poruchami učení (dyslexie, dysortografie a další), ať už několika usnadněními v podobě prostředí pro vypracování různých cvičení, tak motivací k tomu, aby se žák snažil a neztrácel naději, přestože nedosahuje nejlepších výsledků.
Obecný popis řešení projektu Původní představa zadavatele byla taková, že cílem projektu bude jednoduchá aplikace s několika málo cvičeními, která bude sloužit spíše pro reklamu, 1
Úvod než pro výuku samotnou. Neuměla by žádné hodnocení ani prohlížení dat. Nešla by přidávat různá cvičení. Jednalo by se o neměnnou aplikaci bez širšího využití. Tým pracující na projektu se však vydal jinou cestou. Cílem se stalo vytvoření komplexního informačního systému pro základní školy, který by umožňoval jak variabilní cvičení, tak ukládání výsledků, sledování vývoje žáka či přístup pro rodiče. Aplikace by byla rozdělena na více částí – studentskou, učitelskou a editor. Studentská část má sloužit k vypracovávání jednotlivých zadání skrze moduly cvičení či k jednoduchému přehledu výsledků pro konkrétního žáka. Učitelská část je pak část řídící, kde by bylo možné sestavovat soubory cvičení pro dané hodiny, ty pak spouštět a řídit, dále prohlížet výsledky žáků, hodnotit a dělat různé výstupy. Editor by pak sloužil k tvorbě nových zadání pro jednotlivá cvičení. Z časových důvodů je první fáze projektu zaměřena na tvorbu zjednodušené studentské části. Tato část bude ochuzena o přehledy výsledků, poskytuje tedy jen základní rozhraní a možnost spouštět jednotlivá cvičení. Ke cvičením budou přidány i jednoduché editory, respektive aplikace pro tvorbu zadání, které však nepokrývají původní představu o celém větším celku – výše zmiňovaném editoru.
Aplikace Dráček Výsledkem celého projektu bude modulární aplikace s názvem Dráček. Ta se skládá z několika důležitých částí: jádro, správa modulů, správa spojení, moduly cvičení.
Jádro Hlavní částí je jádro, které řídí chod aplikace jako celku. Jádro funguje jako samostatná aplikace s vlastním uživatelským rozhraním. Součástí tohoto rozhraní je menu, skrze které lze spouštět jednotlivá zadání pomocí instalovaných modulů cvičení. Vytvořením jádra se ve své práci zabývá Jan Bradáč [1].
Správa modulů Správa modulů je řízena povinným modulem. Tento modul je tedy nutný pro běh celé aplikace, tedy aplikace využívající jiné moduly a ne jen jádro. Spravovanými moduly se rozumí především moduly poskytující nová 2
Rozbor zadání a specifikace cíle cvičení, popřípadě editory pro vytváření zadání do těchto cvičení. Správu modulů ve své práci zpracovává Petr Kubišta [5].
Server Další částí je modul pro správu připojení k severu s databází. Tento modul bude umožňovat komunikaci jádra a dalších modulů se vzdáleným serverem, kde je úložiště dat. Zprostředkovává také aktualizace jak jádra aplikace, tak jednotlivých modulů i zadání. Server bude v rámci bakalářské práce zpracován Ondřejem Kuželou [6].
Moduly cvičení Tyto moduly poskytují rozhraní pro vypracování různých zadání. Díky modulární architektuře lze aplikaci neustále rozšiřovat o nová cvičení a tím zvětšovat okruh její využitelnosti. Vytvářením modulů cvičení se zabývá tato práce a práce Radka Tomšů [9].
Rozbor zadání a specifikace cíle Cílem práce je návrh a implementace několika modulů do aplikace Dráček. Tyto moduly budou poskytovat rozhraní pro vypracovávání textových cvičení. Při tvorbě bude kladen důraz na uživatelskou přístupnost, a to především pro mladší žáky základních škol trpící poruchami učení. Analyzujte požadavky pedagogů ZŠ Smečno týkající se obsahu a forem percepčních cvičení. V práci budou rozepsány požadavky pedagogů ZŠ Smečno a budou rozebrány materiály, které byly poskytnuty za účelem začlenění do aplikace. Bude rozebrán jak výběr cvičení, která budou v rámci této práce zpracována, tak možnosti dalších cvičení v budoucnu. Analyzujte možnosti ukládání výsledků a nastavení jednotlivých cvičení. Účelem cvičení je i zpětná vazba, je tedy nutné se zamyslet nad možnostmi vyhodnocení daných úloh, tedy jaké výsledky mohou vůbec být, kde se budou všechny druhy takových výsledků shodovat a kde naopak bude muset být prostor pro variabilitu. Bude řešeno i ukládání nastavení modulů, kde nastavení ukládat, jak k nastavení přistupovat, co bude pro všechny moduly nastaveno společně a jak řešit odlišnosti v nastavení jednotlivých modulů. 3
Úvod Navrhněte architekturu aplikačních zásuvných modulů pro podporu percepčních textově orientovaných cvičení. Bude analyzována a navržena vhodná architektura pro dané moduly. Dle této vybrané architektury bude vypracován návrh. Navrhněte implementační model ukládání výsledků a nastavení jednotlivých cvičení. Podle výsledků analýzy ukládání výsledků a nastavení cvičení bude navržen universální implementační model pro zásuvné moduly cvičení. Implementujte aspoň 5 zásuvných modulů pro vybrané typy percepčních cvičení včetně k nim příslušejícím GUI. Bude navrhnuto a implementováno 5 zásuvných modulů včetně základního GUI dostačujícího pro ukázku funkcionality. Tyto zásuvné moduly budou umožňovat vypracování různých textových cvičení. Hotové řešení podrobte vhodným testům a vyhodnoťte výsledky testování. Zásuvné moduly z předchozího bodu budou otestovány vhodnými metodami. Výsledky testování budou vyhodnoceny, sepsány a rozebrány
Percepce Percepcí, nebo-li vnímáním, se obecně rozumí schopnost přijímat okolní vjemy [3]. V širším pojetí do této oblasti patří i samotné porozumění přijatému vjemu. Tato práce se však nezaměřuje na percepci jako takovou, ale jen na určité oblasti. Vzhledem k práci s textem je to percepce zraková a textová, částečně i sluchová, ta však nesouvisí s konkrétními případy v této práci řešenými. Zrakovou percepcí se rozumí schopnost vidět, rozeznávat tvary (tedy znaky, písmena). Zraková percepce silně souvisí se specifickou poruchou čtení, dyslexií (tato porucha bude podrobněji popsána v sekci Poruchy učení 1.2.1). Tato porucha způsobuje obtíže ve zrakovém vnímání tvarově podobných písmen. Okrajově se tento problém dotýká i percepce sluchové, kde se mohou vyskytovat potíže u zvukově podobných písmen. Textová percepce pak spočívá v samotném porozumění textu, což opět souvisí s dříve zmiňovanou dyslexií. Ta způsobuje pomalé a často chybné čtení, což může vést k nesprávnému výkladu textu.
4
Kapitola
Analýza V úvodu kapitoly budou rozebrány požadavky, do kterých patří hlavně požadavky od zadavatele, dále pak závislých částí aplikace – jádra a správy modulů. Následuje popis cílových uživatelů, kam patří stručný popis poruch učení a rozbor věkových kategorií. Poté jsou zmíněny některé výukové aplikace, které již na trhu existují. Dalším tématem jsou možnosti tvorby a ukládání zadání, výsledků a nastevní jednotlivých cvičení. Nejdůležitější součástí kapitoly jsou však řešené moduly a důvody, proč by měly být zpracovány. Kapitola je zakončena výběrem vhodné architektury.
1.1
Rozbor požadavků
1.1.1
Požadavky zadavatele
Vzhledem k váznutí komunikace ze strany zadavatele nejsou požadavky obsahově vyčerpávající, ovšem na druhou stranu by se dalo říci, že tím byla poskytnuta volnost při tvorbě. Konkrétní požadavky jsou uvedeny dále v textu. 1.1.1.1
Funkční požadavky
Zpětná vazba Jedná se o vyhodnocení výsledků a jejich vhodná interpretace žákovi. To by mělo spočívat v přívětivém prostředí a ve vhodných pochvalách. Za chybu žák nemá být výrazně kárán, pouze by měl být opraven. Je vhodné, aby zpětná vazba byla převážně motivační a až druhotně informativní. 5
1
1. Analýza Nápověda Jde o možnost zobrazení nápovědy u každého cvičení. Tato nápověda by měla být srozumitelná a jasná i pro menší děti. Do budoucna by měla být zpracována i pro nejmenší, kterí ještě neumí číst, a to například formou obrázků či insturktážních videí, popřípadě zvukových nahrávek. Interaktivní tabule Jedná se o možnost použití aplikace na interaktivních tabulích během výuky. Tyto tabule se rozšiřují po školách a je vhodné, aby výukové aplikace podporovaly jejich použití. Tomu by mělo být přizpůsobeno hlavně ovládání a grafická část aplikace. 1.1.1.2
Nefunkční požadavky
Uživatelská přívětivost Aplikace by měla být přizpůsobena především pro mladší žáky základních škol. Tomu má odpovídat jak grafická stránka aplikace, tak vhodné ovládání. 1.1.1.3
Další materiály
K těmto požadavkům byly navíc poskytnuty materiály jako podklady pro jednotlivá cvičení. Materiálů bylo velké množství, některé však byly vyřazeny kvůli obtížnosti implementace, popřípadě nemožnosti zpracování (nedostatek času, nedostupné technologie), další byly zjednodušeny a přizpůsobeny časovým a technologickým možnostem.
1.1.2
Požadavky jádra
Dle požadavků práce Jana Bradáče [1] musí každý modul využívat tříd jádra ke správnému napojení do aplikace. Jednou z takových tříd je třída AbstractApplicationElement, která je určena pro editory. Pro moduly cvičení je určen potomek této třídy, AbstractExerciseElement, který je používán na základě stejného principu. Třída AbstractExerciseElement musí být v modulech cvičení rozšiřována a její extenze by měla být hlavní řídící jednotkou modulu. Další důležitou částí je ApplicationHandler, který poskytuje řídící i pomocné funkce pro moduly, skrze které lze jádro informovat o různých událostech nebo získávat informace o konkrétním běhu aplikace. Mezi další požadavky patří jednotnost vzhledu aplikace, k čemuž jádro poskytuje horní lištu s nadpisem a několika ovládacími prvky. Použití této 6
1.2. Cíloví uživatelé lišty je však v tuto chvíli spíše doporučené než požadované. Do budoucna by ji měly využívat všechny moduly cvičení.
1.1.3
Požadavky na souborovou strukturu
Pro spávnou instalaci modulu do aplikace je potřeba dodržovat předepsanou souborovou a adresářovou strukturu, kterou ve své práci navrhuje Petr Kubišta [5]. To spočívá v používání identifikátorů jako názvů souborů a složek. Dále je u každého cvičení potřeba souboru se základními údaji. Mezi tyto údaje patří například umístění spouštěcího souboru nebo ikony cvičení. Ve složce modulu také musí být podsložka se zadáními. Pro zadání platí podobná pravidla jako pro moduly. Zadání je také uloženo ve formě složky, uvnitř které je soubor se základními údaji. Ten například udává relativní cestu k samotnému zadání, které bude načteno z modulu cvičení.
1.2 1.2.1
Cíloví uživatelé Poruchy učení
Aplikace a hlavně cvičení by měly být zaměřeny na pomoc žákům s poruchami učení. Tato kapitola by měla uvést stručný přehled o takových poruchách (dle [10]). Nejprve budou definovány poruchy učení jako takové, dále pak rozebrány nejčastější zástupci.
1.2.1.1
Definice poruch učení
„Poruchy učení jsou souhrnným označením různorodé skupiny poruch, které se projevují zřetelnými obtížemi při nabývání a užívání takových dovedností, jako je mluvení, porozumění mluvené řeči, čtení, psaní, matematické usuzování nebo počítání. Tyto poruchy jsou vlastní postiženému jedinci a předpokládají dysfunkci centrálního nervového systému. I když se porucha učení může vyskytnout souběžně s jinými formami postižení (jako např. smyslové vady, mentální retardace, sociální a emocionální poruchy) nebo souběžně s jinými vlivy prostředí (např. kulturní zvláštnosti, nedostatečná nebo nevhodná výuka, psychogenní činitele), není přímým následkem takových postižení nebo nepříznivých vlivů.“ [7, str.24] 7
1. Analýza 1.2.1.2
Dyslexie
Dyslexie je specifickou poruchou čtení, která se projevuje pomalým a často chybným čtením a špatným porozuměním textu. Při této poruše může být obtížné rozpoznávat a zapamatovávat si jednotlivá písmena, především tvarově a zvukově podobná. Dyslexie také souvisí s oslabenou spoluprací mozkových hemisfér s očními pohyby.
1.2.1.3
Dysgrafie
Dysgrafie je specifickou poruchou psaní, která se projevuje potížemi při napodobení tvaru a řazení písmen, při spojení hláska-písmeno. Také dochází k zaměňování podobných písmen, písmo je neuspořádané a křivé, výška písma se často mění. Výsledek bývá často nečitelný, rychlost psaní bývá nízká. Na psaní je třeba se velmi soustředit, je namáhavé, na úkor toho může trpět pravopisná stránka.
1.2.1.4
Dysortografie
Dysortografie je specifickou poruchou pravopisu, která však nepostihuje celou oblast gramatiky, týká se pouze tzv. specifických dysortografických jevů. Mezi tyto jevy patří například zaměněná či vynechaná písmena, zkomoleniny, nesprávné či vynechané délky samohlásek. Je vyžadováno více času pro správné napsání, časově limitované úkoly nemusí být vhodné.
1.2.1.5
Další související poruchy
Mazi další poruchy patří dyskalkulie (specifická porucha matematických schopností), dysmúzie (specifická porucha schopnosti vnímání a reprodukce hudby), dyspinxie (specifická poruchy kreslení) a dyspraxie (specifická porucha obratnosti).
1.2.2
Rozbor věkových kategorií a zpětná vazba
Ačkoli je aplikace určena pro použití dětí všech věkových kategorií (dále v textu se nachází rozdělení do těchto kategorií dle [4, str.19]), je nejvíce zaměřena na mladší žáky. Je tedy vhodné grafiku aplikace ladit do stylu vhodného pro tuto věkovou kategorii. Proto i hodnocení výsledků žáka by mělo být zobrazeno příjemnou, zábavnou formou. 8
1.2. Cíloví uživatelé 1.2.2.1
Mladší školní věk
Do této kategorie patří ti nejmladší žáci, tedy žáci ve věku 6 až 10 let. V tomto období u dětí probíhá osvojení intelektuálních, pracovních a sociálních činností nutných pro učení. Rozvíjí se smyslové vnímání, rozrůstá se slovní zásoba, probíhá osvojování gramatických pravidel. S ohledem na cvičení lze tuto kategorii rozdělit podle věku na dvě podkategorie. Věková kategorie 6 až 8 let V tomto věku probíhá převážně vývoj smyslů, tedy koordinace těla, koordinace mezi zrakem a jemnou motorikou, schnopnosti zraku rozeznávat jak barvy, tak tvary. Rozvíjí se krátkodová a dlouhodobá paměť. Žáci se v tomto věku učí hlavně číst, psát a počítat. Především pro ně jsou určena cvičení zaměřená na zrakovou či zvukovou percepci, do budoucna i cvičení na psaní a počítání. Věková kategorie 9 až 10 V této věkové kategorii si žáci osvojují gramatická pravidla, rozvíjí se u nich slovní zásoba. Poznávají nová slova, osvojují si nové významy a lépe chápou již známé. V tomto období je důležité, aby si dítě zapamatovalo správné tvary slov a tomu by cvičení měla být přizpůsobena. 1.2.2.2
Střední školní věk
Do této kategorie patří žáci ve věku 10 až 14 let. Z hlediska vývoje člověka je hlavním faktorem v tomto období příprava na pubertu a puberta samotná. S ohledem na výuku gramatiky je vhodnost zpětné vazby individuální, je tedy spíše na posouzení vyučujícího. 1.2.2.3
Starší školní věk
Poslední věková kategorie, která je v současné době brána v úvahu, jsou žáci ve věkovém rozmezí 14 až 16 let. V této době by již žáci měli mít vštípené základy gramatiky. Cvičení tomu budou přizpůsobena, a to například tím, že již nebudou nadále schovávat hrubky před očima žáků. 1.2.2.4
Adolescence a další věkové kategorie
S ohledem k určení aplikace nebudou tyto kategorie dále rozebírány1 . Do budoucna je možné aplikaci o tyto kategorie rozšířit. Studenti středních škol by opět měli mít svou vlastní kategorii, nepředpokládá se však velký počet změn v přístupu ke zpětné vazbě. 1
Bližší informace k této problematice jsou k nalezení například v [4, str.19]
9
1. Analýza
1.2.3
Další způsoby interakce do budoucna
Aplikace by zatím měla být zaměřena na ovládání myší. Vývoj technologií však poskytuje příležitost k využití i jiných způsobů interakce. V následujících odstavcích bude několik způsobů rozebráno. V obdržených materiálech se vyskytovaly například cvičení na práci se zvukem, ať už vstupním nebo výstupním. Původně bylo v plánu vytvořit pro několik cvičení zvukové nahrávky, avšak z časových důvodů nebyl tento plán uskutečněn. Se vstupním zvukem by situace byla horší, technologie pro porozumění mluvenému slovu, zvláště pak pro jazyk jakým je čeština, nejsou dokonalé ani snadno přístupné. V budoucnu by však mohl být tento problém vyřešen a pak by bylo možné vytvořit cvičení na principu zvukové interakce. Dále by mohla být vytvořena různá videa (například záznamy výkladů) a pro ty by existoval přehrávací modul. U některých cvičení by bylo vhodné využívat videotutoriály, které slouží k bližšímu seznámení s vypracováváním úloh. Toho lze využít hlavně pro žáky prvních tříd, kteří zatím neumí číst. Poměrně nové technologie také umožňují interakci pomocí pohybů. I takovému zařízení by mohla být aplikace přizpůsobena, avšak využití by bylo spíše pro zábavnou část výuky.
1.3
Existující inspirace
Aplikace Dráček určitě není jediná možnost elektronické výuky, bylo tedy vybráno několik takových aplikací na ukázku. Každá má své výhody a nevýhody, žádná z nich však přímo nesplňuje představy, které má splňovat Dráček.
1.3.1
Žáček v2.1
Tato aplikace je zaměřena na testování žáků a možnost procvičovat. Nabízí procvičování českého jazyka, matematiky, chemie a dalších2 . Má jednoduché uživatelské rozhraní, zpětná vazba je provedena formou povzbuzujících nápisů a zvuků. Aplikace má jednoduchou správu uživatelů a ukládání výsledků. Vzhledem není aplikace nijak lákavá (obr. 1.1). Povzbuzující zvuky se po nějaké době se stanou ohranými a otravnými, ale lze je změnit, popřípadě vypnout. Rozšiřitelnost o nová cvičení zřejmě vyžaduje novou verzi celé aplikace. Zadání jsou neměnná a po čase se mohou opakovat. 2
10
kompletní výpis na adrese http://www.ezacek.cz/
1.3. Existující inspirace
Obrázek 1.1: ukázka z demoverze aplikace Žáček v2.1
1.3.2
EduBase 3
EduBase je e-learningový systém určený ke komplexnímu pojetí výuky elektronickou formou. Poskytuje autorské nástroje pro přípravu výukových materiálů, knihovnu se zadáními s možností zkoušet a testovat, knihovnu s digitálními učebními materiály a další nástroje a možnosti3 . Také spolupracuje se serverem, kde mohou být data sdílena a posléze synchronizována na několika vzdálených klientech. GUI je laděno do vzhledu MS Office 20104 (obr. 1.2), zřejmě z důvodu přístupnosti pro širší veřejnost. Takový vzhled však nemusí být lákavý pro žáky základních škol, zvláště pak pro ty mladší. Během testování se aplikace bohužel několikrát sama ukončila, i když to nemusí být čistě její vinou. Navzdory grafickému ladění se tato aplikace z testovaných nejvíce blíží aplikaci Dráček.
1.3.3
Vesmírná čeština
Tato aplikace se od ostatních velmi liší, je totiž spíše hrou, než obyčejným výukovým softwarem. Princip zezačátku nemusí být úplně jasný. Úkolem 3 4
více na adrese http://www.edubase.cz http://office.microsoft.com/cs-cz/
11
1. Analýza
Obrázek 1.2: ukázka z demoverze aplikace EduBase 3
je létat vesmírnou lodí a sestřelovat vhodná písmena, která doplní slovo ve zobrazené větě. Ačkoliv hra jako taková může být zábavná, zpracování mohlo být lepší. Hru doprovázejí různé zvuky a některé jsou velmi rušivé a nepříjemné. Podobnost této aplikace s Dráčkem může tedy být nanejvýš ve vyhledávání vhodných písmen do slov, způsob doplnění je však velmi odlišný (obr. 1.3).
1.4
Možnosti tvorby a ukládání zadání
Pro každé cvičení musí existovat skupina zadání, na kterých se skrze aplikaci dá pracovat. Je tedy třeba vyřešit, jak se taková zadání dostanou do aplikace. Možnosti mohou být následující tři. Pevná množina zadání v aplikaci Tato možnost je rozhodně nejjednodušší na implementaci. Jednalo by se o několik zadání, která by byla jednorázově vložena do aplikace při jejím vývoji. Tato množina by byla neměnná. Jediný způsob, jak zadání rozšířit, by byla nová verze aplikace. Pro uživatele je však takové řešení značně nepohodlné, a ani 12
1.4. Možnosti tvorby a ukládání zadání
Obrázek 1.3: ukázka z demoverze aplikace Vesmírná čeština
pro vývojáře to nemusí být takové odlehčení, protože musí všechna tato zadání vytvořit ještě před vydáním aplikace.
Upravitelná množina zadání v aplikaci Tato možnost je založena na předchozí, avšak zadání mají vlastní úložiště a nejsou přímo zapsaná v kódu aplikace. Do tohoto úložiště lze nahrávat další zadání, popřípadě mazat již přítomná. Toto řešení poskytuje možnost obměňovat zadání a díky tomu mohou být další zadání dodána po vydání aplikace.
Upravitelná množina zadání a editor v aplikaci Tato možnost, založená na té předchozí, přidává navíc editor. Díky tomu si uživatel může sám tvořit nová zadání a vkládat je do aplikace. To umožňuje, aby se tvorbě zadání věnoval expert na danou problematiku. Pro projekt byl vybrán tento způsob. 13
1. Analýza
1.5
Řešené moduly a důvody jejich existence
Cílem této bakalářské práce je implementovat několik modulů, které budou zaměřeny na textová cvičení. Každý modul bude mít vlastní editor pro tvorbu zadání. Tyto moduly budou zpracovávat následující cvičení. U každého cvičení je uveden stručný popis a důvod, proč bude toto cvičení zpracováno.
1.5.1
Přesmyčky
Přesmyčka neboli anagram je slovo, které vznikne přeskupením písmen slova původního. Často se přitom nedbá na diakritiku [2]. Tento modul bude umožňovat jejich řešení. Na obrazovce bude vždy jedna přesmyčka k vyřešení a žák má za úkol pomocí přesouvání písmen sestavit původní slovo. Toto cvičení pomáhá převážně při reedukaci dysortografie (viz 1.2.1.4), která se projevuje například přesmykováním písmen ve slově. Slouží tedy především k procvičování. Může také pomáhat při dyslexii, a to tím, že žák je nucen vytvořit dané slovo z dané množiny písmen. Tím je vynucováno soustředění a slovo jako celek, který sám vytvořil, si tak lépe zapamatuje.
1.5.2
Délky slabik
Toto cvičení spočívá v rozpoznávání délky slabik a přiřazování ke vhodnému grafickému znázornění. Slabika obsahující dlouhou samohlásku se označuje svislou čarou, slabika s krátkou samohláskou se ozančuje tečkou. Modul pro toto cvičení bude vytvořen na základě materiálů od ZŠ Smečno (konkrétní cvičení v přílohách C.1). Grafické znázornění délky samohlásek se využívá v reedukaci dysortografie (viz 1.2.1.4), která způsobuje potíže při určování délek samohlásek. Znázornění na čárkách a tečkách tak pomáhá pro podnícení spojení tečka – krátká a čárka – dlouhá.
1.5.3
Přesouvání do textu
Text v tomto cvičení má několik mezer. Ze seznamu bude možné do těchto mezer přetahovat různé možnosti doplnění. To mohou být jak písmena, tak slabiky, části slov či celá slova. Toto cvičení má širokou škálu využití. Je vhodné vždy, když je dána množina možností. To je například u doplňování i-y, což může být problé14
1.6. Ukládání výsledků mem obecně, převážně však u poruchy dysortografie (viz 1.2.1.4). Umožňuje žákovi soustředit se na konkrétní oblast, tedy v tomto případě i-y, a lépe si ji tak procvičit.
1.5.4
Výběr možností v textu
V tomto cvičení bude několik prázdných míst, kde lze vybírat z několika možností. Tyto možnosti mohou být v každé části textu jiné. Mohou to být jak písmena, tak celé slabiky, popřípadě větší části slov. Jedná se o cvičení s nejširším spektrem využití z uvedených cvičení. Při dysortografii (viz 1.2.1.4) umožňuje procvičování v určování dlouhých a krátkých samohlásek, v rozlišování slabik dy-di, ty-ti, ny-ni, rožlišování sykavek (s, c, z, š, č, ž). Využití má však i v běžné výuce při procvičování většiny gramatických pravidel.
1.5.5
Větné členy
Toto cvičení bude umožňovat určování větných členů. S ohledem na různé rozdělení větných členů v různých fázích výuky bude i toto cvičení mít různé obtížnosti. V první řadě se vyučuje základní rozdělení větných členů, dále se pak tyto větné členy konkretizují (tedy například příslovečné určení a příslovečné určení času). Význam tohoto cvičení je spíše obecného rázu, než aby spočíval v pomoci s poruchami učení. Shoda podmětu s přísudkem může často dělat žákům potíže při určování správné koncovky. Také naučit se rozpoznávat větné členy napomáhá při rozpoznávání vedlejších vět, jakožto náhrad za tyto členy. Tím lze pomoci při určování čárek v souvětích.
1.6
Ukládání výsledků
Pro dostatečnou zpětnou vazbu je třeba ukládat výsledky jednotlivých cvičení, tedy toho, jak který žák vyplnil které zadání. Každé cvičení však může mít na formu výsledků jiné požadavky. Určitě se ale najdou informace, které musí být ve výsledku každého cvičení. Tyto informace budou tedy součástí pevné části výsledku, pro zbytek pak musí existovat část proměnná, neurčitá. Součástí každého výsledku musí nepochybně být identifikátor zadání, které bylo zpracováno, a identifikátor žáka, který cvičení zpracoval. Dále by převážná většina cvičení měla mít nějaký ukazatel úspěšnosti. Pro tento 15
1. Analýza ukazatel může být vhodný procentuální údaj vyjadřující podíl správných odpovědí a všech odpovědí. Proměnná část musí poskytovat dostatečný prostor pro možné údaje, které si chce cvičení uložit. Může to být například vypracované zadání tak, jak ho žák vyplnil. Mohou v něm být uloženy časy, jak rychle žák reagoval, jak rychle zadání zpracoval, popřípadě záznam toho, jak žák postupoval. Z různých údajů mohou být vypozorovány různé skutečnosti. Některé údaje mohou dokonce varovat o potenciálních poruchách učení.
1.7 1.7.1
Ukládání nastavení jednotlivých cvičení Množina nastavení
Cvičení mohou vyžadovat, popřípadě umožňovat určitá nastavení. Mohou například umožňovat nastavení velikosti písma, různých barev nebo nastavení obtížnosti. Tyto údaje je třeba někde ukládat. Žádný ze zpracovávaných modulů cvičení nebude obsahovat nastavení, ale do budoucna je vhodné k tomu aplikaci přizpůsobit. To ovšem znamená, že údaje o nastavení nejsou pro jednotlivé moduly povinné, musí být proto umožněna dostatečná volnost při určování těchto údajů.
1.7.2
Platnost nastavení
Dalším aspektem je obecnost nastavení, tedy pro koho budou která nastavení platit. Následující text platí pro moduly, které si nastavení ukládají. Určitě musí existovat nějaké globální nastavení, které bude použito implicitně. Otázkou je, zda umožňovat individuální nastavení pro jednotlivé uživatele. Z hlediska uživatelské přívětivosti by taková možnost nepochybně byla krokem správným směrem. Ne každému například vyhovuje předdefinovaná velikost písma a potřeboval by písmo zvětšit. Bude proto navržen způsob ukládání jak globálních, tak individuálních nastavení pro jednotlivá cvičení.
1.7.3
Způsoby ukládání
Pro nastavení je třeba vybrat vhodný způsob ukládání. Kvůli potřebné variabilitě je nereálné vytvořit pro všechna možná nastavení sloupce v databázi. Je proto třeba vybrat vhodný formát, který by onu univerzalitu umožňoval. 16
1.8. Architektura aplikace 1.7.3.1
Obyčejný text
Obyčejný text obsahuje několik údajů, které jsou po jednom rozdělené na řádky. Každý řádek obsahuje skutečnost, kterou nastavuje, a její hodnotu. Výhodou takového formátu je úspora místa. Ta by se mohla projevit především v případě ukládání nastavení v databázi pro každého uživatele zvlášť. Nevýhodou však je nepřehlednost a nutnost dodržovat číslování řádků, popřípadě číslování ignorovat na úkor efektivity. 1.7.3.2
XML
Formát XML je často užíváný formát pro ukládání nastavení v mnoha existujících aplikacích. Jeví se tedy jako vhodný kandidát pro ukládání nastavení i pro moduly cvičení. Jako nevýhoda se mohou jevit značky jazyka XML, které zabírají prostor navíc, je to však oběť pro přehlednost a univerzálnost. Výhodou je pak široká podpora napříč technologiemi.
1.8
Architektura aplikace
Před vytvořením samotného návrhu modulů je potřeba vybrat vhodnou architekturu. Při výběru je třeba brát v potaz to, že každý modul má vlastní GUI a zároveň vlastní datový zdroj (zadání). Tyto skutečnosti vybízí k použití třívrstvé architektury. Rozhodnutí tedy padlo na architekturu složenou ze tří vrstev – datové, řídící a prezentační.
1.8.1
Datová vrstva
V této vrstvě bude řízen přímý přístup k datům, ať už v databázi či v souborech. Také zde budou datové objekty, kterými lze data přenášet ve vhodné podobě.
1.8.2
Řídící vrstva
V této vrstvě se budou nacházet hlavní řídící třídy. Tyto třídy, respektive instance těchto tříd, budou mít za úkol kontrolu nad celým modulem. Dále zde budou pomocné třídy provádějící různé výpočetní operace. Zaměření modulů je převážně v komunikaci s uživatelem, výpočetních operací (jsou-li pominuty grafické operace) bude tedy minimum. Nejvíce se tato vrstva využije v hlavní knihovně (viz následující kapitola 2.1), v samotných modulech pak bude z vrstev obsahově nejmenší. 17
1. Analýza
1.8.3
Prezentační vrstva
Poslední vrstva má za úkol starat se o interakci s uživatelem. Zde tedy budou třídy s prezentačními prvky, s grafickým uživatelským rozhraním. Vzhledem k zaměření modulů bude tato vrstva pravděpodobně nejobsáhlejší.
18
Kapitola
Návrh Kapitola začíná popisem obecné kostry pro tvorbu modulů, jejím původem a uplatněním. Dále je rozebrán návrh grafického uživatelského rozhraní. Následuje návrh jednotlivých modulů, kde lze nalézt informace o tvorbě příslušného GUI. Kapitola je zakončena implementačními modely ukládání výsledků a nastavení jednotlivých cvičení.
2.1
Obecná kostra pro moduly
Původní návrh spočíval v navržení jednotlivých modulů samostatně, tedy nezávisle na ostatních. Každý takový modul je řízen třídou, která rozšiřuje abstraktní třídu jádra AbstractExerciseElement 1.1.2. Extenze této třídy má za úkol otevírat dané zadání, vytvořit panel cvičení a umožnit jak příkaz k započetí cvičení, tak k jeho ukončení. Důležitou součástí každého modulu je tedy i panel, který je skrze instanci extenze AbstractExerciseElementu vracen. Tento panel obsahuje celé cvičení včetně základních údajů o zadání (titul, podtitul a nápovědu k zadání). Dalším atributem každého modulu je možnost načíst dané zadání, jelikož modul cvičení dostane informaci pouze o názvu souboru se zadáním.
2.1.1
Knihovna pro moduly
Při navrhování jednotlivých modulů se vyskytlo několik dalších společných vlastností. Po nějaké době se ukázalo, že kód by byl v mnoha ohledech duplicitní. To vedlo k vytvoření společné knihovny, kam byly tyto společné aspekty umísťovány. Tato knihovna postupně nabývala na velikosti, byly do ní přesunuty hlavní stavební prvky, které jsou v modulech podobné. Ve výsledku tak vznikla obecná kostra pro tvorbu modulů. 19
2
2. Návrh
2.1.2
Knihovna pro editory
Stejným způsobem, jako knihovna pro moduly v předchozí kapitole (viz 2.1.1), byla navržena knihovna pro editory. Tato knihovna má za úkol usnadnit další tvorbu editorů sjednocením společných prvků. Jak bylo zmíněno v požadavcích (konkrétně 1.1.3), budou mít cvičení předepsanou strukturu a bylo by zbytečné stejnou strukturu řešit v každém editoru zvlášť.
2.2
Návrh grafického uživatelského rozhraní
Obrázek 2.1: prototyp cvičení Výběr možností v textu
Vzhledem k cílovým uživatelům aplikace je grafické uživatelské rozhraní velmi důležité, bylo proto vytvářeno ve spolupráci s grafiky Janem Husákem, který vytvářel model dráčka, a Matoušem Jandou, který navrhoval ucelený vzhled GUI pro jednotlivé moduly. Tato spolupráce probíhala tak, že byl vytvořen prototyp cvičení, které mělo hotovu pouze funkcionalitu se základním uživatelským rozhraním (příklad na obrázku 2.1). Grafik poté vytvořil návrh hotového cvičení (příklad obrázku navazující na předchozí 2.2). Po další domluvě dodal návrh rozdělený na jednotlivé části pro snažší implementaci. Poté, co byl vytvořen zevrubný návrh GUI, je třeba ho přizpůsobit požadavkům. Vzhledem k nejistému, programem vynucenému rozlišení, ve kterém má být aplikace zobrazována, je nutné grafiku upravit a generovat GUI dynamicky. Toho je docíleno rozřezáním na prvky, které se podle potřeby vykreslují opakovaně. Tím je ve výsledné podobě například tvořen list 20
2.3. Jednotlivé moduly
Obrázek 2.2: návrh GUI cvičení Výběr možností v textu
papíru z obrázku odkazovaného v předchozím odstavci (ukázka výsledku na obrázku 2.3). Tento model GUI je také poskytován sdílenou knihovnou AbstractDracekModule 3.1.1 jako hlavní stavební kámen pro textová cvičení. Navíc poskytuje možnost přidání panelu vlevo, který má podklad dalšího listu papíru. Příklad bude uveden u návrhu cvičení Přesouvání do textu 2.6.
2.3
Jednotlivé moduly
Všechny moduly budou využívat knihoven zmíněných v kapitole Obecná kostra pro moduly 2.1. V této kapitole následuje seznam zpracovávaných cvičení, u každého pak bude stručný popis a hlavně návrh grafického uživatelského rozhraní.
2.3.1
Přesmyčky
Modul na téma přesmyček bude umožňovat zpracování jednoho slova na obrazovce. Objeví se tedy rozházené slovo, kde lze přetahováním myší měnit pozice písmen. Také bude umožňovat vybraná písmena ukotvit (již v rámci tvorby zadání), čímž lze například eliminovat případné nejasnosti výsledku. Grafické uživatelské rozhraní bude laděno do tematiky cihel. Na těchto cihlách jsou písmena a je možné je přesouváním vyměňovat. Dalším nezbytným prvkem je tlačítko, kterým lze potvrdit výsledné slovo, opravit ho, 21
2. Návrh
Obrázek 2.3: výsledné GUI cvičení Přesouvání do textu
pokud je špatně, a posléze přejít na další přesmyčku (obr. 2.4). Popisek tohoto tlačítka se mění pro každou činnost.
2.3.2
Délky slabik
Pro délky slabik bude vytvořen modul umožňující přetahování slov ze seznamu do správných kolonek. Tyto kolonky jsou označeny kódem, který je složen ze znaků „.“ pro krátké slabiky a „/“ pro dlouhé. Grafické uživatelské rozhraní je rozděleno na dvě hlavní části. První částí jsou řádky pro přesouvání slov. Na začátku každého takového řádku je kód popisující slovo podle délek jeho slabik. Vpravo od tohoto kódu se řadí vložená slova. Druhou částí je tabulka se slovy (obr. 2.5).
2.3.3
Přesouvání do textu
Cvičení na přesouvání do textu bude zpracováno modulem, který bude umožňovat zobrazení dané množiny možností a textu s mezerami. Do těchto mezer pak lze přesouvat myší vybrané možnosti, čímž se text vyplní. 22
2.3. Jednotlivé moduly
Obrázek 2.4: prototyp GUI cvičení Přesmyčky
Obrázek 2.5: prototyp GUI cvičení Délky slabik
23
2. Návrh Hlavním prvkem GUI je list papíru, na kterém je napsán text s několika mezerami. V levé části je část papíru, na které jsou předdefinované možnosti. V pravé dolní části sešitu je tlačítko s nápisem „Hotovo“ (obr. 2.6).
Obrázek 2.6: prototyp GUI cvičení Přesouvání do textu
2.3.4
Výběr možností v textu
Na toto téma bude vytvořen modul umožňující zobrazení několika možností na daných místech a výběr jedné z nich. V závislosti na nastavení pak bude dosazena buď vždy správná, nebo vždy vybraná. Množina možností může být na každém místě v textu jiná. Hlavním prvkem GUI je list papíru, na kterém je napsaný text. V textu jsou místa s možnostmi implicitně označena pomlčkami. V pravé dolní části obrazovky je lístek s nápisem „Hotovo“. Rozhraní bylo zobrazeno jako ukázka v kapitole o návrhu GUI 2.3.
2.3.5
Větné členy
Na toto téma bude vypracován modul umožňující označení jednotlivých slov ve větách předem vybraným způsobem podtržení. Tyto možnosti podtržení budou i s popisky zobrazeny a lze je vybrat kliknutím. Bude také 24
2.4. Návrh implementačních modelů ukládání výsledků a nastavení jednotlivých cvičení umožňovat různé nastavení obtížnosti. Čím vyšší obtížnost, tím je označování podrobnější. To se například projeví u příslovečného určení, které je v nejnižší obtížnosti označeno obecně jako příslovečné určení, v nejvyšší obtížnosti je však třeba vybrat konkrétní druh. Hlavním prvkem GUI je opět velký list papíru, na kterém jsou věty. Na menším listu vlevo je pak seznam větných členů i s příslušnými podtrženími. V pravé dolní části je lístek s nápisem "Hotovo".
2.4
2.4.1
Návrh implementačních modelů ukládání výsledků a nastavení jednotlivých cvičení Ukládání výsledků
Jak vyplývá z analýzy, je třeba ukládat výsledky ve vhodném formátu, který lze použít pro všechna cvičení. Tím odpadá nutnost přizpůsobení databáze novým modulům. Je tedy třeba vhodně navrhnout správný způsob. Výsledek bude rozdělen na dvě části. Údaje, které musí poskytovat každé cvičení, jsou uloženy jednotlivě jako různé sloupce tabulky. Mezi tyto údaje patří identifikátor zadání, identifikátor žáka a ukazatel úspěšnosti ve formě čísla s plovoucí desetinnou čárkou. Další sloupec bude obsahovat binární obsah variabilní části výsledku. Tím je zajištěna univerzalita ukládání pro různé moduly cvičení.
2.4.2
Ukládání nastavení jednotlivých cvičení
2.4.2.1
Způsob ukládání
Nejdříve je třeba určit, jakým způsobem se nastavení bude ukládat. Vzhledem k předpokládanému počtu uživatelů, který je maximálně v řádu stovek, se jako nejvhodnější jeví formát XML, a to i v případě, že bude nastavení ukládáno pro každého uživatele zvlášť. 2.4.2.2
Rozsah platnosti nastavení
V dohledné době bude nastavení řešeno lokálně. U každého modulu, který nastavení umožňuje, bude uložen soubor s nastavením. Tento soubor musí mít při vytvoření implicitní hodnoty. 25
2. Návrh Do budoucna by však mohlo být vhodné nastavení přesunout do databáze tak, aby si uživatel svá nastavení přenášel. To zabrání nutnosti při každé změně prostředí modul opět nastavovat.
26
Kapitola
Realizace V počátku kapitoly bude popsána implementace obecné knihovny pro tvorbu modulů, následována jednotlivými moduly včetně popisů jejich výsledných funkcionalit.
3.1
Knihovna pro tvorbu modulů
Nejprve bylo třeba implementovat dřívě zmíněné knihovny pro tvorbu jednotlivých modulů, tedy modulů cvičení (viz 2.1.1) a modulů s editory (viz 2.1.2). V této kapitole budou tyto knihovny stručně popsány.
3.1.1
AbstractDracekModule
Tato knihovna je implementována dle vybrané architektury a poskytuje funkcionalitu obecně využívanou v mnoha modulech, převážně pak v modulech cvičení. Má několik základních tříd, které je třeba rozšířit pro správné využití knihovny. Další třídy jsou pomocné a mají často používané metody. Níže v textu jsou důležité třídy popsány.
3.1.1.1
AbstractExercise
Tato třída slouží k přenosu dat zadání napříč modulem. Obaluje základní údaje, jako je titul, podtitul, popis, nápověda a identifikátor zadání. Tuto třídu je třeba rozšířit a implementovat v každém modulu, který používá hlavní prvky knihovny. 27
3
3. Realizace 3.1.1.2
AbstractExerciseDAO
Tato třída je rozšiřována v modulech pro přístup k zadáním. Poskytuje metody pro načítání z dokumentů se zadáním. Vytváří a vrací extenzi třídy AbstractExercise 3.1.1.1. Rozšíření třídy AbstractExerciseDAO je nutné pro použití ovládacího prvku modulu, který knihovna poskytuje, a tím je AbstractController 3.1.1.4. 3.1.1.3
AbstractMainPanel
Tato třída je v modulech rozšiřována pro vytvoření hlavního panelu cvičení. Implementuje potřebné metody pro otevření i ukončení cvičení. Umožňuje přidání panelu se základními údaji, které má každé zadání. Pro textová cvičení lze vytvořit prostor pro vkládání textu včetně potřebného GUI. Při ukončování cvičení automaticky zobrazuje výsledek. 3.1.1.4
AbstractController
Tato třída rozšiřuje AbstractExerciseElement 1.1.2 a implementuje většinu potřebných metod. Extenze této třídy by v modulu měla být hlavním prostředkem k jeho řízení. Využívá extenzí tříd AbstractExerciseDAO 3.1.1.2 a AbstractMainPanel 3.1.1.3. 3.1.1.5
ErrorHandler
Tato třída slouží k zacházení s chybami, které nejsou kritické pro běh modulu. Takovou chybou může být například chybějící obrázek nebo font. O těchto chybách bude upozorňovat jádro 1.1.2, které takové chyby zaznamenává do logu. 3.1.1.6
ImageHandler
Tato třída poskytuje metody pro úpravu obrázků. Umožňuje rotaci a překlápění obrázků či změnu jejich velikosti. Má dále metody pro převod textu do obrázku a pro vytvoření obrázku, který označuje chybějící zdroj. 3.1.1.7
ResourceDAO
Tato třída umožňuje přístup k obrázkům a fontům, pokud je v modulech splněna potřebná struktura balíčků. Samotná knihovna poskytuje několik základních obrázků a fontů skrze tuto třídu. Pro každou načítací metodu existují dvě verze – základní a verze, která automaticky ošetřuje neexistující zdroj. Tato metoda využívá třídy ErrorHandler 3.1.1.5 k upozornění 28
3.1. Knihovna pro tvorbu modulů o chybě a vrací defaultní hodnoty. Pro obrázek je takovou hodnotou výsledek metody getImageNotFound poskytované třídou ImageHandler 3.1.1.6.
3.1.1.8
DnDPanel
Tento panel umožňuje přesouvání vnitřních komponent, a tím měnit jejich pozice. Lze také nastavit statické komponenty, kterými nejde pohnout. Dále je možné nastavit, po jaké ose se komponenty budou pohybovat.
3.1.1.9
Třídy pro vstup a výstup
Tyto třídy, do kterých patří třída FileIO, DocumentIO a StreamIO, se starají o přístup k souborům, popř. dokumentům ve formátu XML. Slouží k jejich otevírání a ukládání s různými volitelnými možnostmi (např. předdefinovaná cesta).
3.1.2
AbstractDracekEditor
Tato knihovna využívá jako základ knihovny AbstractDracekModule (viz 3.1.1) a rozšiřuje ji o funkcionalitu důležitou pro editory zadání. Tato funkcionalita spočívá především ve sjednocení přístupu k datům, která jsou u všech zadání vytvářena na stejném principu (mezi tato data patří například název zadání, popis, nápověda, atd.). Dále v kapitole jsou zmíněny a stručně popsány důležité třídy této knihovny.
3.1.2.1
AbstractController
Podobně jako třída AbstractController 3.1.1.4 v knihovně pro tvorbu modulů cvičení, i tato rozšiřuje třídu jádra, tentokrát však její rodičovskou třídu AbstractApplicationElement (1.1.2). Měla by být hlavní řídící jednotkou modulu.
3.1.2.2
AbstractMainPanel
Tato třída je v modulech rozšiřována pro vytvoření hlavního panelu editoru. V horní části panelu je vždy formulář s daty, která musí mít každé zadání. Dále panel obsahuje menu pro otevírání a ukládání zadání. Zbytek panelu je pak volný pro samotný editor. 29
3. Realizace
3.2
Jednotlivé moduly a popisy jejich funkcionalit
Všechny moduly cvičení využívají knihovny AbstractDracekModule (viz 3.1.1). Z této knihovny implementují potřebné třídy a přidávají vlastní funkcionalitu. Každé cvičení má také vlastní editor zadání. Tyto editory byly vytvářeny v časovém presu a mají jen základní funkcionalitu. Všechny využívají knihoven AbstractDracekModule i AbstractDracekEditor, mají proto velmi podobnou strukturu a liší se jen ve specifikách daného cvičení, budou proto jednotlivě popsány jen v případě potřeby. Následuje rozpis jednotlivých modulů včetně stručného popisu realizace a funkcionality.
3.2.1
Přesmyčky
Na téma přesmyček je vytvořen modul TextAnagram. Tento modul využívá funkcionality třídy DnDPanel (viz 3.1.1.8), která umožňuje přesouvání písmen ve slově. Navíc je možné určit statická písmena, kterými hýbat nelze. Toho lze využít například u přesmyček, kdy je první a poslední písmeno na svém místě. Zpracování zadání spočívá nejprve v jeho otevření v modulu cvičení. Na obrazovce se zobrazí řada cihel, z nichž každá má na povrchu jedno písmeno. Tyto cihly lze pomocí myši přesouvat a měnit tak jejich pořadí. Tímto způsobem je z písmen složeno smysluplné slovo. Poté je třeba myší kliknout na tlačítko „Potvrdit“. V případě, že ve slově jsou nějaké chyby, jsou chybná písmena vybarvena červenou barvou a nápis na tlačítku se změní na „opravit“. Po kliknutí na toto tlačítko se písmena dosadí do správných pozic, zůstanou však červená. Jakmile je slovo správně, na tlačítku se objeví nápis „Další“. Tímto tlačítkem se nastaví nová přesmyčka a celý proces se opakuje. Pokud již nejsou žádná slova v zadání k dispozici, na obrazovku je vypsán výsledek a cvičení je ukončeno.
3.2.2
Délky slabik
Pro délky slabik bude vytvořen modul MorseExercise. Modul umožňuje přetahování slov ze seznamu do správných kolonek. Tyto kolonky jsou označeny kódem, který je složen ze znaků „.“ pro krátké slabiky a „/“ pro dlouhé. Po otevření zadání se vytvoří řádky s kódy a tabulka je naplněna slovy. Úkolem je přetahovat slova myší z tabulky do správného řádku. V případě, že slovo do tohoto řádku patří, je vloženo na řádek vpravo od posledního 30
3.2. Jednotlivé moduly a popisy jejich funkcionalit přidaného prvku. V opačném případě je slovo vráceno do tabulky. Tento postup je opakován do doby, kdy v tabulce již nezbývají žádná slova. V tom okamžiku se na obrazovce objeví výsledek a cvičení je ukončeno.
3.2.3
Přesouvání do textu
Cvičení na přesouvání do textu bude implementováno jako modul TextFlip. Původně byl vytviořen i modul TextDrop, který umožňoval pouze funkcionalitu přesouvání. Modul TextFlip je variací tohoto modulu. Textové možnosti jsou překreslovány do obrázků a ty pak lze překlápět a rotovat. Vzhledem k podobnosti obou implementací je do práce zahrnut jen jeden modul, jelikož umožňuje ke shodné funkcionalitě navíc úpravy obrázkových možností. Tento modul navíc využívá možnosti základního GUI poskytované třídou AbstractMainPanel (viz 3.1.1.3). Úkolem tohoto cvičení je vyplnit text možnostmi z levého sloupce. Toho je docíleno přetahováním slov či písmen z levého sloupce do mezer v textu. Po přetažení se toto slovo či písmeno vloží do textu a mezera zmizí. Text není třeba zpracovat celý, aby se cvičení ukončilo. Toho se docílí kliknutím na lístek v pravém dolním rohu s nápisem „Hotovo“. Následně se objeví deska s výsledkem a cvičení se ukončí.
3.2.4
Výběr možností v textu
Toto cvičení bude implementováno modulem TextExerciseViewer. Tento modul vznikl z ukázkového prototypu pro doplňování čárek do textu. Na určených místech byla možnost přepínat předdefinované znaky a tím měnit čárku na prázdný znak a zpět. Pro vytvoření modulu TextExerciseViewer stačilo pouze rozšířit univerzalitu jednotlivých míst s možnostmi. Výsledkem je tedy cvičení, ve kterém lze na určených místech vybírat z předdefinované množiny možností. Stejně jako předchozí modul, i tento využívá možnosti GUI poskytované třídou AbstractMainPanel (viz 3.1.1.3). Zadání se vypracovává výběrem možností na místech, která jsou k tomu určena. To spočívá v kliknutí myší na dané místo, díky čemuž se zobrazí seznam možností, ze kterých lze vybrat. V případě kliknutí mimo seznam nebo na implicitní možnost, tedy na pomlčku či pomlčky, se nic nestane, pouze seznam zmizí. V případě výběru nějaké možnosti je následné chování závislé na nastavení u zadání. U výukového typu určeného pro mladší žáky se automaticky dosadí správná možnost. V případě chybné možnosti je tato správná možnost obarvena červenou barvou. U běžného typu je pak dosazena možnost tak, jak ji uživatel vybral. Cvičení se ukončuje kliknutím 31
3. Realizace na lístek v pravém dolním rohu s nápisem „Hotovo“. To způsobí zobrazení výsledků a posléze ukončení cvičení.
3.2.5
Větné členy
Cvičení na větné členy bude realizováno modulem TextSentenceElements. Tento modul umožňuje označování slov podtrháváním podle daného seznamu druhů větných členů. Umožňuje navíc vybrat obtížnost ze tří možností. Čím vyšší obtížnost, tím je označování podrobnější. I tento modul využívá GUI poskytovaného třídou AbtsractMainPanel (viz 3.1.1.3). Princip zpracovávání cvičení spočívá ve výběru správných větných členů v levém sloupci a přiřazováním ke slovům v textu. Toho je docíleno tak, že uživatel klikne na požadovaný větný člen, který se tak označí červenou barvou jako vybraný. Posléze klikne na slova v textu, která považuje za větné členy vybraného druhu. Cvičení se ukončuje kliknutím na lístek s nápisem „Hotovo“. To způsobí zobrazení výsledků a následné ukončení.
32
Kapitola
Testování Důležitou součástí vývoje je testování [8]. Není to však jednorázová záležitost, testovat by se mělo napříč celým vývojem. Pro testování během implementace byly nejvíce používány metody neformální revize kódu a jednotkového testování. První zmiňovaná metoda pomáhá k odstranění jasně viditelných chyb, k úpravě a větší přehlednosti kódu. Později zmiňovaná metoda pak slouží k otestování jednotlivých implementovaných úseků. Po dokončení větších částí je pak vhodné testování integrační, čímž lze ucelit vývoj jednotlivých částí. Dále následuje systémové testování pro ozkoušení komunikace celé aplikace. Před odevzdáním softwaru je pak třeba provést komplexní kvalifikační testování a následně je vhodné provést podobné testování u zadavatele.
4.1
Neformální revize kódu
Během vývoje byl kód několikrát čten, kontrolován a posuzován. Toto testování bylo bohužel prováděno pouze jedním člověkem, což znemožňuje užití formálních metod revize kódu. Navzdory tomu však tato kontrola přinesla výsledky, kód byl upravován a refaktorizován. Výsledkem tedy bylo především zvýšení čitelnosti kódu a srozumitelnosti struktury součástí programu, spíše než odstranění chyb.
4.2
Jednotkové testování
Pro minimalizaci přepisování velkého množství kódu je třeba kód testovat po menších částech, aby další implementace nestavěla na té chybné. Tomu může pomocti jednotkové testování. Takto byla například testována funkci33
4
4. Testování onalita cvičení jako takového, s jednoduše vloženým zadáním a základním GUI. Po otestování této části bylo implementováno načítání zadání a otestována jeho správnost. Nakonec byly implementovány a následně otestovány grafické prvky cvičení. Tento postup je použit u všech modulů cvičení a bylo během něj zachyceno největší množství chyb.
4.3
Testování komponent a integrační testování
Vzhledem k tomu, že ke spuštění modulu bylo třeba použít minimalistické součásti jádra, bylo testování komponent a integrační testování prováděno zároveň. Konečně byl otestován modul jako celek, včetně základní komunikace s jádrem aplikace. Tato součást jádra přímo spouští modul cvičení, což značně urychluje spouštění programu. Tento způsob testování pomáhá připravit modul pro bezproblémovou instalaci do výsledné aplikace. Také byly během této fáze nejvíce ujasňovány vzájemné požadavky jádra a modulů cvičení.
4.4
Systémové testování
Ačkoliv je modul testován se součástí jádra již během testování komponent, je třeba vyzkoušet, jak funguje v celé aplikaci. V této fázi bylo například zjištěno nedostatečné ujasnění požadavků na moduly. Díky tomu byly tyto požadavky vyladěny pro snažší instalaci modulů v budoucnu.
4.5
Kvalifikační testování
Dle plánu mělo proběhnout finální testování celé aplikace včetně integrovaných modulů. Toto testování však z důvodů chybného rozpoložení času a nemožnosti synchronizace všech členů týmu nebylo možné provést před odevzdáním práce. Je tedy otestována jen funkčnost samostatných modulů. Ty jsou otestovány podobným scénářem, a to vložením připraveného zadání a jeho vyplněním. Tento proces byl proveden vícekrát. Zadání bylo pokaždé zpracováno jinak, aby se pokryla co největší množina možností. Ve výsledku bylo objeveno a opraveno několik chyb, převážně pak v prezentační části aplikace. 34
4.6. Akceptační testování
4.6
Akceptační testování
Vzhledem k nedostatku času se nepodařilo dohodnout se ZŠ Smečno na akceptačním testování. Testování proto proběhne dodatečně co nejdříve po odevzdání bakalářské práce, a to přímo cílovými uživateli. Testována bude jak funkčnost aplikace, tak splnění požadavků co se týče srozumitelnosti a přehlednosti.
4.7
Shrnutí
Testování probíhalo napříč celou prací, většinou však jednoduchým způsobem, kdy byla ozkoušena funkcionalita spuštěním aplikace a provedením několika náhodných akcí. Pro takový projekt by rozhodně bylo vhodnější testování více promyslet již na začátku a připravit tomu vhodné podmínky. Nejúčinnější v zachycení chyb byla metoda jednotkového testování. K refaktorizaci a ke zlepšení kódu nejvíce vedla neformální revize kódu. Integrační testování pak významně pomohlo ujasnit si komunikaci mezi jádrem a moduly. Z časových a komunikačních důvodů nebylo využito dalších vhodných metod testování, jako je například formální revize kódu, která by mohla mít za následek jak odstranění chyb, tak zpřehlednění kódu. Naproti tomu automatické testy se stále nejeví jako vhodná varianta testování. Moduly v sobě neskrývají žádné složité algoritmy, které by bylo třeba testovat, hlavním testovaným aspektem je tedy to, co se děje na obrazovce. Psát na takový problém automatické testy by mohlo zabrat mnohem více času, než samotné manuální testování.
35
Závěr Splnění zadání a cílů Všechny body zadání byly splněny. Následuje seznam bodů, u každého bodu je pak uvedeno, kde se nachází popis řešení. Analyzujte požadavky pedagogů ZŠ Smečno týkající se obsahu a forem percepčních cvičení. Obecné požadavky byly analyzovány v sekci Rozbor požadavků (viz 1.1.1). Konkrétní požadavky ke cvičením pak byly rozebrány v sekci Řešené moduly a případy užití (viz 1.5). Analyzujte možnosti ukládání výsledků a nastavení jednotlivých cvičení. Možnosti ukládání výsledků byly analyzovány v sekci Ukládání výsledků (viz 1.6), možnosti ukládání nastavení pak v sekci Ukládání nastavení jednotlivých cvičení (viz 1.7). Navrhněte architekturu aplikačních zásuvných modulů pro podporu percepčních textově orientovaných cvičení. Návrh architektury zásuvných modulů byl rozebrán v sekci Architektura aplikace (viz 1.8). Navrhněte implementační model ukládání výsledků a nastavení jednotlivých cvičení. Implementační model ukládání výsledků byl navržen v sekci Implementační model ukládání výsledků (viz 2.4.1). Nastavení jednotlivých cvičení pak byly rozebrány v sekci Implementační model ukládání nastavení jednotlivých cvičení (viz 2.4.2). 37
Závěr Implementujte aspoň 5 zásuvných modulů pro vybrané typy percepčních cvičení včetně k nim příslušejícím GUI. Bylo implementováno 5 zásuvných modulů pro vybrané typy percepčních cvičení. Tyto vybrané typy jsou popsány v sekci Řešené moduly a důvody jejich existence (viz 1.5). Návrh modulů je rozebrán v sekci Jednotlivé moduly (viz 2.3), a to včetně grafického uživatelské rozhraní, které je navíc obecně řešeno v sekci Návrh grafického uživatelského rozhraní (viz 2.2). Implementace modulů se pak nachází v sekci Jednotlivé moduly a popisy jejich funkcionalit (viz 3.2). Hotové řešení podrobte vhodným testům a vyhodnoťte výsledky testování. Testování se věnuje celá kapitola Testování (viz 4). Rozboru vhodných testů se věnuje úvodní text této kapitoly. V jednotlivých sekcích jsou pak popsány vybrané testovací metody. Výsledky testování jsou shrnuty a vyhodnoceny v sekci Shrnutí (viz 4.7).
Budoucnost projektu V projektu Dráček bude pokračováno i do budoucna. Z původně plánované aplikace je zatím zpracována pouze část žákovská, cílem projektu však je komplexní informační systém pro školy s kvalitní podporou výuky a hodnocení. V následujících letech by tak měla být vytvořena část učitelská, která bude poskytovat rozhraní pro ovládání systému, pro plánování celých hodin skrze skladbu několika cvičení, popřípadě možnost přidávat do plánu další části, jako jsou například prezentace, obrázky či články. Díky tomu bude možné aplikaci využít napříč celou výukou. Navíc by měla poskytovat správu žáků, což by využití rozšířilo i mimo přímou výuku. Co se týče vlastní účasti této práce na budoucnosti projektu, například knihovna AbstractDracekModule (viz 3.1.1) by mohla v budoucím rozšiřování aplikace pomoci. Jak bylo zmíněno v kapitole Realizace (viz 3), v případě dodržováním pravidel může velmi urychlit vývoj. Tím by mělo být snažší v budoucnu aplikaci obohacovat o nová cvičení a tím rozšiřovat pole její působnosti.
Shrnutí V rámci této bakalářské práce jsem vytvořil několik modulů cvičení. Každý z těcho modulů k sobě navíc má jednoduchý editor zadání, která lze tedy vytvářet a obměňovat. Navíc jsem vytvořil knihovnu pro usnadnění práce při 38
Shrnutí vytváření nových modulů. Doufám, že tato knihovna se využije i v budoucnu a nezemře s touto prací. Během práce jsem se mnohem lépe naučil pracovat s programovacím jazykem Java, objasnil si problematiku architektury, která byla během implementace několikrát upravena či úplně překopána. Vyzkoušel jsem si reálnou komunikaci se zákazníkem, ačkoliv opravdu užitečná jednání, která se mě týkala, proběhla jen dvakrát. Na druhou stranu teď tuším, kde všude se může projevit nedostatek komunikace a snad mi taková zkušenost v budoucnu pomůže se s takovými situacemi vyvarovat. Práce pro mne byla cenným přínosem, a to nejen v rámci tvorby reálné aplikace, ale i v komunikaci se zadavatelem, jakkoliv byla minimální. Teprve během realizace jsem začal chápat důlěžité aspekty, jako je řádná analýza, návrh, komunikace, testování či verzování a podobné. Doufám, že z chyb jsem se poučil nejen já, ale i celý tým, ve kterém byl projekt zpracováván.
39
Literatura [1] Bradáč, J.: Výuková aplikace Dráček - Jádro klienta. Bakalářská práce, Fakulta informačních technologií ČVUT v Praze, 2013. [2] Čížek, M.: O přesmyčkách. Nomen Omen. [online], [cit. 2013-05-14]. Dostupné z: http://anagrammer.org/about/ [3] Filozofická fakulta Univerzity Karlovy v Praze – Katedra psychologie: Vnímání. [cit. 2013-05-15]. Dostupné z: http: //psychologie.ff.cuni.cz/studium/prf/vnimani.pdf [4] Jobánková, M.: Kapitoly z psychologie pro zdravotnické pracovníky. Národní centrum ošetřovatelství a nelékařských zdravotnických oborů v Brně, třetí vydání, 2003, ISBN 80-7013-390-2. [5] Kubišta, P.: Výuková aplikace Dráček - Správa zásuvných modulů klienta. Bakalářská práce, Fakulta informačních technologií ČVUT v Praze, 2013. [6] Kužela, O.: Výuková aplikace Dráček - Serverová část. Bakalářská práce, Fakulta informačních technologií ČVUT v Praze, 2013. [7] Matějček, Z.: Dyslexie: specifické poruchy čtení. Jinočany: H & H, druhé vydání, 1993, ISBN 80-85467-56-9. [8] McConnel, S.: Dokonalý kód. Brno: Computer Press, a.s., první vydání, 2005, ISBN 80-251-0849-X. [9] Tomšů, R.: Výuková aplikace Dráček - Vývoj vybraných modulů. Bakalářská práce, Fakulta informačních technologií ČVUT v Praze, 2013. 41
Literatura [10] Zelinková, O.: Poruchy učení. Praha: Portál, první vydání, 1994, ISBN 80-7178-038-3.
42
Příloha
Seznam použitých zkratek GUI Graphical user interface XML Extensible markup language HTML HyperText Markup Language PDF Portable Document Format MS Microsoft ZŠ Základní škola obr. obrázek
43
A
Příloha
Obsah přiloženého CD
readme.txt ................................ stručný popis obsahu CD jar.....................adresář se spustitelnou formou implementace zip ........... adresář se zabalenými moduly připravenými k instalaci doc .......................................... adresář s dokumentací src impl.................................zdrojové kódy implementace BP_Blaha_Michael_2013...zdrojová forma práce ve formátu LATEX text.....................................................text práce BP_Blaha_Michael_2013.pdf..........text práce ve formátu PDF prirucka.pdf....instalační a uživatelská příručka ve formátu PDF 45
B
Příloha
Obrázky
47
C
C. Obrázky
Obrázek C.1: Cvičení na délky samohlásek od ZŠ Smečno
48