VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE
APLIKACE TESTOVACÍHO MODULU E-LEARNINGOVÉHO SYSTÉMU VYTVOŘENÉ POMOCÍ TECHNOLOGIE JAVA - TEORIE INFORMACE A KÓDOVÁNÍ SOFTWARE APPLICATIONS OF TEST SUITE MODULE OF E-LEARNING SYSTEM DESIGNED BY MEANS OF JAVA TECHNOLOGY - INFORMATION AND ENCODING THEORY
BAKALÁŘSKÁ PRÁCE BACHELOR THESIS
AUTOR PRÁCE
PETRONELA KANIČKOVÁ
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
ING. RADOMIL MATOUŠEK, PH.D.
Strana 2
Strana 3
ZADÁNÍ ZÁVEREČNÉ PRÁCE
Strana 4
Strana 5
LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŽÍT ŠKOLNÍ DÍLO uzavřená mezi smluvními stranami: 1. Pan/paní Jméno a příjmení: Petronela Kaničková Bytem: Salka 430, 943 61 Salka, SR Narozen/a (datum a místo): 19.11.1981 Nové Zámky, SR (dále jen „autor“) a 2. Vysoké učení technické v Brně Fakulta strojního inženýrství se sídlem Technická 2896/2, 616 69 Brno jejímž jménem jedná na základě písemného pověření děkanem fakulty: Doc. RNDr. Ing. Miloš Šeda, Ph.D., ředitel ÚAI
(dále jen „nabyvatel“) Čl. 1 Specifikace školního díla 1. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): □ disertační práce □ diplomová práce □ bakalářská práce □ jiná práce, jejíž druh je specifikován jako ....................................................... (dále jen VŠKP nebo dílo) Název VŠKP:
Aplikace testovacího modulu e-learningového systému vytvořené pomocí technologie Java – teorie informace a kódování
Vedoucí/ školitel VŠKP:
Ing. Radomil Matoušek, Ph.D.
Ústav:
Ústav automatizace a informatiky
Datum obhajoby VŠKP: VŠKP odevzdal autor nabyvateli v*: □ tištěné formě
*
–
počet exemplářů … 2
□ elektronické formě –
počet exemplářů … 3
hodící se zaškrtněte
Strana 6
2. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním. 3. Dílo je chráněno jako dílo dle autorského zákona v platném znění. 4. Autor potvrzuje, že listinná a elektronická verze díla je identická. Článek 2 Udělení licenčního oprávnění 1. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin. 2. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu. 3. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti □ ihned po uzavření této smlouvy □ 1 rok po uzavření této smlouvy □ 3 roky po uzavření této smlouvy □ 5 let po uzavření této smlouvy □ 10 let po uzavření této smlouvy (z důvodu utajení v něm obsažených informací) 4. Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením § 47b zákona č. 111/ 1998 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek 3 Závěrečná ustanovení 1. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP. 2. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy. 3. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek. 4. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami.
V Brně dne: …………………………………….
……………………………………… Nabyvatel
………………………………………. Autor
Strana 7
ABSTRAKT Náplní této bakalářské práce je pomocí technologie Java realizovat klient aplikace, které jsou schopny pracovat jak samostatně, tak ve spolupráci s e-learningovým systémem a pokusit se realizovat testovací modul s lexikograficky heterogenním systémem odpovědí.
ABSTRACT The content of this bachelor work is to realize client applications, which are able to work like separately, also in cooperation with e-learning system by means of Java technology and try to realize test suite module for a system of lexicographical heterogeneous answers.
KLÍČOVÁ SLOVA e-learning, Java, informace, kódování, aplet
KEYWORDS e-learning, Java, information, encryption, applet
Strana 8
Strana 9
Obsah ZADÁNÍ ZÁVEREČNÉ PRÁCE ............................................................................................ 3 ABSTRAKT ............................................................................................................................ 7 ABSTRACT............................................................................................................................. 7 KLÍČOVÁ SLOVA .................................................................................................................. 7 KEYWORDS........................................................................................................................... 7 1
ÚVOD ............................................................................................................................ 11
2
E-LEARNING – TESTOVÁNÍ ZNALOSTÍ................................................................. 13
3
2.1
Význam e-learningu ............................................................................................. 13
2.2
Typy a cíle e-learningu ......................................................................................... 14
2.3
Účinný studium pomocí e-learningu .................................................................. 14
2.4
Výhody a nevýhody e-learningu ...........................................................................15
2.4.1
Přednosti, které lze docílit pomocí e-learningu...........................................15
2.4.2
Nevýhody e-learningu .................................................................................. 16
TECHNOLOGIE JAVA .................................................................................................17 3.1
Javová platforma .................................................................................................. 18
3.2
Aplety .................................................................................................................... 18
3.2.1 3.3
Komunikace .......................................................................................................... 19
3.3.1
XML ............................................................................................................... 19
3.3.2
Databáze ........................................................................................................ 20
3.4 4
Vývojové prostředí NetBeans .............................................................................. 20
NÁVRH A REALIZACE APLIKACÍ ............................................................................ 23 4.1
Výpočet entropie a redundance ........................................................................... 23
4.1.1
Aplikace pracující samostatně ......................................................................... 24
4.1.2
Aplikace pracující v součinnosti s testovacím e-learningovým modulem 25
4.2
Kontrolní a generující matice .............................................................................. 26
4.2.1
Aplikace pracující samostatně ..................................................................... 27
4.1.2
Aplikace pracující v součinnosti s testovacím e-learningovým modulem 29
4.3
Výpočet Hammingovy vzdálenosti...................................................................... 29
4.3.1
Aplikace pracující samostatně ..................................................................... 29
4.3.2
Aplikace pracující v součinnosti s testovacím e-learningovým modulem 30
4.4
Návrh korekčních kódů........................................................................................ 30
4.4.1 4.5
5
Bezpečnost .................................................................................................... 18
Aplikace pracující samostatně ..................................................................... 30
Lexikografický analyzátor.................................................................................... 31
4.5.1
Aplikace pracující samostatně ..................................................................... 31
4.5.2
Aplikace pracující v součinnosti s testovacím e-learningovým modulem 32
ZÁVĚR .......................................................................................................................... 33
SEZNAM POUŽITÉ LITERATURY.................................................................................... 35
Strana 10 PŘÍLOHA ............................................................................................................................. 37
Strana 11
1
ÚVOD
Tato bakalářská práce se zabývá realizací aplikací pro e-learningový systém. Navržené aplikace se zabývají problematikou teorie informace a kódování. Cílem této bakalářské práce bylo pomocí technologie Java realizovat klient aplikace, které jsou schopny pracovat jak samostatně, tak ve spolupráci s e-learningovým systémem a pokusit se realizovat testovací modul s lexikograficky heterogenním systémem odpovědí. Druhá kapitola se zabývá e-learningem, jeho významem, cílem, výhodami a nevýhodami. Třetí kapitola poskytuje lehký úvod do technologie Java, jsou v ní popsány části, které jsem použila při vlastní realizaci. Čtvrtá kapitola popisuje samotné applety, jejich návrh a teorii k dané problematice. Revoluční zvrat v potřebě zkoumat vědecky informaci a její přenos způsobilo využití elektřiny. Bylo třeba vyřešit hodně teoretických a praktických otázek, které se z počátku týkali více problému přenosu informace, než problému, co to vlastně informace je. Už S. Morse přišel k závěru, že rychlost přenosu je možné zvýšit využíváním vhodné soustavy kódování. Řešení problému kódování se již dnes neobejde bez využití matematiky. Podstatný zvrat v chápání informace znamenala publikace R. V. L. Hartleyho „Přenos informací“ v roce 1928. V Hartleyho chápání odesílatel zprávy disponuje soustavou symbolů, z kterých vytváří posloupnosti. Myšlenku vztahu pravděpodobnosti a informace vyslovil jako první R. Fisher, který pracoval v oblasti matematické statistiky. Zakladatelé kvantitativní teorie informace se zabývali problémem množství informace, ale ne co je vlastně informace. [6] Za několik málo let své existence se programovací jazyk Java dokázal rozšířit na celou řadu elektronických zařízení: počínaje mobilními telefony, stolními počítači, ale nevyhnul se ani serverům s rozsáhlými firemními aplikacemi. Dnes je druhým nejpoužívanějším hned po jazyce C. Java představovala první možnost, jak oživit do té doby statické webové stránky. Malý kód, který se interpretoval prostřednictvím webového prohlížeče na straně klienta, byl nazván aplet. První komerční prohlížeč, který podporoval aplety, byl Netscape Navigator. Podpora spouštění apletů byla postupně dodána do většiny webových prohlížečů buď přímo, nebo prostřednictvím zásuvných modulů. Java byla poprvé představena na konferenci SunWorld 1995. Roku 1996 byl vydán první Java Developement Kit (JDK 1.0), který obsahovalo vše potřebné pro tvorbu apletů. Dnes je součástí SDK rovněž kompletní zdrojový kód platformy Java. Společnost Sun definuje programovací jazyk Java jako jednoduchý, objektově orientovaný, distribuovaný, robustní, bezpečný, nezávislý na architektuře, portabilní, interpretovaný, vysoce výkonný a vícevláknový. [8]
Strana 12
Strana 13
2
E-LEARNING – TESTOVÁNÍ ZNALOSTÍ
E-learning v poslední době prožívá svůj „boom“. Důvodem je doba a rychlost změn v každodenním životě nás všech. V hektickém světě, kde množství volného času ubývá, ubývá i čas na naše vzdělávání. E-learning, ale není nic převratně nového, pouze máme v současné době k dispozici daleko použitelnější technologie. E-learning v širším slova smyslu znamená proces, který popisuje a řeší tvorbu, distribuci, řízení výuky a zpětnou vazbu na základě počítačových kurzů, kterým stále častěji říkáme e-learningové kurzy. Tyto aplikace většinou obsahují simulace, multimediální lekce, tj. kombinace textového výkladu s animacemi, grafikou, schématy, auditem, videem a elektronickými testy. Říká se, že každý student si může zvolit formu vzdělávání, která mu nejvíce vyhovuje. Pokud se tedy na pojem e-learning podíváme zblízka, můžeme zcela jistě říci, že jde o velmi kvalitní doplněk stávajících možností vzdělávání. [1]
2.1
Význam e-learningu
V době informační společnosti den co den vznikají nové slova s předponou "e" (elektronický). Jeden z nich je e-learning, ve stručnosti znamená učení se, učení a získání nových poznatků. Význam elektronický písmena „e“ je jenom jedna z možností, které se mohou skrývat za písmenem. Různorodé významové možnosti výstižně zobrazují kreativitu, která se skrývá v e-learningu: ü Exploration – objevení: pomocí e-learningu můžeme objevovat svět informační společnosti. ü Experience – zkušenost: e-learning otevírá nové možnosti při získávání zkušeností. ü Engagement – oddanost: kreativní prvky e-learningu upoutá pozornost studentů i učitelů. ü Easy of use – lehké použití: pomocí e-learningu je i učení lehčí. ü Enpowerment – zplnomocnění: poskytuje možnost na samostudium. V literatuře není známá všeobecná definice e-learningu. Podle jednoho chápání e-learning se shoduje s počítačovou podporou výuky použitím internetu. Ve světle jiného chápání se do popředí dostává distanční forma výuky, jako nová, účinnější možnost dodání studijních materiálů. Ke skutečnosti se asi nejvíc blíží třetí pojetí pojmu, podle kterého lze uskutečnit studium ve virtuálním prostředí pomocí informačních a komunikačních technologií. Zprostředkování obsahu se může dít přes internet, intranet, extranet, satelitním vysíláním, na kazetách audio/video, na Cd-ROM-ech a pomocí jiných interaktivních medií. Obr. 1 názorně ukazuje vztah mezi distanční formou studia, studia pomocí internetu a počítačovým studiem.
Strana 14
Obr. 1 Vztah mezi formami studia Je vidět, že e-learning vzniká průnikem třech množin, jednotlivé stavebné prvky se integrují do nového pojmu pomocí možností, které nabízí technologie. Je důležité že e-learning nelze ztotožnit přesně s distančním studiem, je jenom její podmnožinou. [1]
2.2
Typy a cíle e-learningu
Dva typy e-learningu: ü Asynchronní studium (asynchronous learning) je forma studia, při kterém student může zpracovat studijní materiál dle svého tempa, respektive interakce mezi učiteli a studenty se děje střídavě a časovým zpožděním. Většina e-learningové výuky se zakládá na asynchronním studiu. ü Synchronní studium (synchronous learning) je taková forma studia, při kterém se výuka uskutečňuje v předem domluveném termínu pod vedením vyučujícího. Oproti standardní výuky studenti nemusí být v té jisté místnosti, můžou se zúčastnit výuky sedící u svých počítačů přes internet. ü ü ü ü ü
2.3
Cíle e-learningu: Každý student a učitel by měl mít přístup k informačním technologiím v učebnách, ve školách, v různých společnostech a doma. Každý učitel by měl být schopní efektivně použít informační a komunikační technologie aby jejich studenti mohli předložit co nejlepší výsledky. Každý student by měl disponovat co nejširšími informačními a technologickými vědomostmi. Výzkumy a zkušenosti by měli účinně přispět ve výuce k vývoji příští generace technologických způsobů a aplikací. Digitální obsah a rozšíření sítě by měl co nejdřív přetvořit výuku. [1]
Účinný studium pomocí e-learningu
Účinnost e-learningu je dáno především následujícími činiteli: ü Multimedia - obrázky, filmy, zvuky a texty, pomocí kterých jde memorizace snadněji, v e-learningu nám společně pomáhají osvojit si látku.
Strana 15 ü Interaktivita - při interaktivitě mezi studijní látkou a studentem (otázky, testy, animace a simulace) studenti mohou komunikovat i mezi sebou i s vyučujícím. Ve srovnání se standardními metodami poskytuje větší efektivitu, protože student může kdykoli mluvit do průběhů výuky. ü Okamžitá zpětná vazba - v obousměrné komunikaci můžeme počítat okamžitou reakcí, tím pádem špatně pochopená látka se nememorizuje zbytečně. ü Svoboda času a prostoru - studium lze začít kdykoli, kdekoli a ve vlastním tempu. Větší pružnost nám poskytuje účinnější studium. [1]
2.4
Výhody a nevýhody e-learningu
2.4.1 Přednosti, které lze docílit pomocí e-learningu Nejdůležitější předností e-learningu proti standardní výuce je, že je schopna produkovat vědomost, kterou informační společnost vyžaduje. Druhou předností je její pružnost, za kterou vděčíme časově a prostorově bezbariérovému virtuálnímu prostoru. Další výhody e-learningu: ü Vlastní rytmus: většinu e-learningových programů lze začít kdykoli, ve vhodném rytmu dle dovednosti studenta. Studijní materiál přichází ve vhodných dávkách. Lze docílit účinnější studium. ü Rychlost: e-learningové kurzy jsou dle dosavadních zkušeností o 50 procent rychlejší než standardní vyučující hodiny. Studenti mohou vynechat, přeskočit studijní látku, kterou již znají, a mohou se věnovat částem, ve kterých se ještě potřebují zdokonalit. ü Důsledný obsah: e-learning odstraní problém, který vznikne z odlišných způsobů vykládání látky různými vyučujícími. ü Dostupnost: na hodiny se lze připojit odkudkoli a kdykoli. ü Rychlá aktualizace: studijní látku stačí nahrát na server. ü Snadná ovládatelnost větších studijních skupin: program registruje jednotlivá data a průběh vývoje. Měří výkon a taky vyhodnocuje, vyučující se může dozvědět o studentovi cokoli kdykoli a lehce zjistí oblasti, ve kterých se student potřebuje zdokonalit. ü Intenzivnější spolupráce a interaktivita mezi studenty: interaktivní prostředí podnítí komunikaci mezi studenty a je větší šance vzniku týmové práce. ü ü ü ü ü ü
Výhody pro studenty: vyhovující programy, kurzy pro různé studijní typy hlubší interaktivita, účinnější memorizace studium ve vlastním rytmu student se může učit kdekoli a kdykoli úspora času a cestovních výdajů vyvíjí dovednosti týkající se internetu a informatiky
ü ü ü ü ü
Výhody pro vyučující: pro sestavení studijního materiálu je k dispozici celý internet informace lze poskytnout studentům kdykoli všechny data jsou uložení, kterým lze kdykoli přistoupit vyučující může počítat s větší aktivitou studentů úspora výdajů a času [1]
Strana 16
2.4.2 Nevýhody e-learningu ü ü ü ü ü ü ü ü
Z e-learningu mohou být vytlačeni studenti, kteří nemají přístup k internetu. Můžou se vyskytnout technické problémy při výuce. K účasti na e-learningových kurzech je potřeba základní informatické znalosti. Ve více státech je ještě přístup k internetu dražší a omezený. Počáteční náklady na sestavení kurzů a studijních materiálů mohou být větší. Vyučující musí znát svět internetu a autorské práva. Nedostatek osobního kontaktu a menší motivace na samostudium. Při testech je jistá možnost podvodu, vývoj této oblasti ještě vyžaduje mnoho energii. [1]
Strana 17
3
TECHNOLOGIE JAVA
Java je univerzálním programovacím jazykem, lze ji stejně jako další známé jazyky Basic, Pascal, C/C++ zařadit mezi tzv. třetí generaci programovacích jazyků (3GL). Patří mezi jazyky objektové či objektově orientované (Object-Oriented). Ideovým předchůdcem Javy je jazyk C, resp. jeho objektová podoba C++, která Javě vtiskla její základní podobu. Nicméně z konceptuálního hlediska je patrné, že při vývoji Javy dokázali návrháři eliminovat z původního C++ řadu chyb a vznikl tak jazyk čistší, bez většiny zákeřností typických pro C++. Je celkově snadněji zvládnutelný, ať už jde o základní porozumění jazyku, o používání programů napsaných někým jiným, nebo o integraci komponent. Brzy se ukázalo, že nevídané možnosti poskytuje právě vznikajícímu jazyku internetový boom poloviny devadesátých let. Zejména rozmach služby www (zhruba od roku 1995) dal jazyku příležitost uplatnit se při tvorbě tzv. apletů, tj. malých aplikací, jež jsou obvykle přímo součástí dynamických webových stránek. Java se hodila hlavně proto, že jednou přeložený kód mohl po stažení běžet v libovolném prohlížeči, tj. nezávisle na platformě. Tak bylo možné psát dynamické webové stránky nezávislé na typu prohlížeče, operačního systému či hardwaru. Přenositelnost hotových programů mezi všemi živými počítačovými platformami – MS Windows, Linux, MAC OS, Solaris a dalšími, je dodnes pravděpodobně nejvýznamnější předností Javy. Jednou program napíšeme, přeložíme, odladíme – a na kterékoli z těchto platforem spustíme. Nerozhoduje ani typ hardware, na němž program poběží. V době hackerů, teroristických útoků a počítačových virů je neméně podstatná i možnost zabezpečit provoz javových aplikací. Je možné prověřit původ javového kódu, zabránit kódu provádět se systémem určité rizikové operace atd. Díky šanci zabezpečit provoz běžných javových aplikací i apletů pracujících v prostředí webového prohlížeče z nich nemusíme mít strach. Pro nás – programátory a uživatele cizích programů také není nepodstatné, že program psaný v Javě je přehlednější a čitelnější než např. v čistém C. To vede i k nižší frekvenci chyb a tudíž vetší produktivitě. Projekty řešené v Javě mívají přesněji odhadnutelnou obtížnost. Obecně Java v současnosti platí za jeden z jazyků s nejvyšší produktivitou programátorské práce. O rostoucí oblibě Javy svědčí i to, že podle průzkumů již celosvětově překročil počet javových programátorů počet jejich kolegů dosud věrných C/C++. I proto se v poslední době na scéně objevil nový jazyk z dílny Microsoftu, C#, který se pokusí Javu v jejím tažení zastavit. Jak to skutečně dopadne, uvidíme. Programování v Javě je široká a rychle se vyvíjející oblast. Od vzniku Javy jeho oblíbenost jako objektově orientovaného jazyka pro internetové programování a výuku fenomenálně narostla. Platforma Java 2 představuje významné dozrání úrovně podpory, obzvláště pro vývoj aplikací. Tento jazyk si volí mnoho programátorů pro vývoj zásadních aplikací z důvodu jednoduchosti vývoje i údržby ve srovnání s jinými jazyky a také díky vrozené schopnosti fungovat na různých typech počítačů a operačních systémů bez nutnosti změn v programu. Java v posledních letech neobyčejně dospívá, zvláště s příchodem Javy 2. Záběr funkcí poskytovaných standardním jádrem Javy se neuvěřitelně zvětšil. Java nabízí obšírné možnosti pro budování aplikací s interaktivním grafickým uživatelským rozhraním (GUI – Graphics User Interface), široké možnosti pro zpracování a vytváření obrázků a grafiky, stejně jako podporu pro přístup k relačním databázím a ke komunikaci se vzdálenými počítači přes síť. Verze 1.4 přidala velmi důležité možnosti – číst a psát XML. Snad jakýkoli druh aplikace nyní může být efektivně programován v Javě s nepřekonatelnou výhodou přenositelnosti. Existují dva druhy programů, které lze psát v Javě. Programy, které mají být začleněny do webové stránky, nazývané aplety, a normální samostatné programy zvané Java aplikace. Tyto aplikace lze dále dělit na konzolové aplikace, které podporují jen
Strana 18 znakový výstup na obrazovku, okenní aplikace, které mohou vytvářet a spravovat množství oken. [3] [5]
3.1
Javová platforma
Java na rozdíl od řady programovacích jazyků nebyla ani dílem akademického výzkumu a vývoje, ani živelného nabalování se standardizací ex-post. Vznikla jako profesionální dílo poměrně přísně řízeného komerčního vývoje. Pokud jde o standardizaci, je třeba rozlišovat standard definující danou javovou platformu od konkrétní implementace dané platformy. Standard sám je dílem vývoje řízeného společností Sun. Předepisuje závazně syntaxi a sémantiku jazyka, chování běhového prostředí a strukturu Java Core API. Ke standardu bývá společností Sun a dalšími výrobci poskytována implementace dané platformy. ü Ústředním prvkem implementace platformy je javový virtuální počítač – Java Virtual Machine (JVM), který zajišťuje běh přeložených javových aplikací. Aplikace tedy neběží přímo ve strojovém kódu počítače, na němž jsou spouštěny, ale jen díky JVM. ü Stejně důležitou součástí platformy jsou vývojové nástroje (zejména překladač, debugger a nástroj na generování dokumentace). ü Do třetice platformu doplňuje implementace tříd tzv. Java Core API, čili základní knihovna tříd Javy. [5]
3.2
Aplety
Java je moderní programovací jazyk, který je používán pro programy, které mají pracovat na různých počítačových systémech. Java umožňuje psát malé programy zvané aplety. Toto jsou programy, které lze začlenit do internetových webových stránek a dodat jim tak jistou inteligenci. Schopnost začlenit spustitelný kód do webové stránky přináší širokou řadu vzrušujících možností. Místo toho, aby stránky byly pasivní prezentací textu a grafiky, mohou se stát interaktivní jakýmkoli způsobem. Technicky jsou aplety něco jako miniaturní aplikace stahované z internetu do prostředí webového prohlížeče a spouštěné v něm. [3] [5]
3.2.1 Bezpečnost Samozřejmě začlenění programového kódu do webové stránky vytváří zvláštní požadavky na bezpečnost. Uživatel internetu vstupující na stránku obsahující kód v Javě musí mít důvěru, že kód neudělá nic, co by mohlo narušovat chod jeho počítače nebo poškodit data v jeho systému. To znamená, že provádění začleněného kódu musí být řízeno takovým způsobem, aby se zabránilo náhodným škodám na počítačovém prostředí a také aby se zajistilo, že kód v Javě, který byl vytvořen se zlým úmyslem, bude zakázán. Java implicitně zavádí opatření k minimalizaci takových možností apletů. Bez těchto omezení by byly zkrátka přenašeče virů. Aplety nás od většiny hrozeb oprošťují – a to hned z několika důvodů. Tím prvním je, že jsou spouštěny v javovém běhovém prostředí, které dokáže konkrétní chování kódu do značné míry uhlídat. Prostředí apletu se tak v podstatě omezuje jen na prohlížeč, v němž aplet běží. Bezpečnost systému je v Javě vedena správcem zařízení. Tím je objekt, který poskytuje metody pro nastavení a kontrolu bezpečnosti, které určují, co je a co není pro program v Javě dovoleno. Co může a co nemůže aplet dělat, je dáno jak správcem zabezpečení, který má instalován prohlížeč, tak zabezpečením, které platí v systému.
Strana 19 ü Aplet zejména nemůže přistupovat k lokálnímu disku – a to ani pro čtení, natož pro zápis. ü Aplet může být elektronicky podepsán (opatřen digitálním podpisem). Volbami prohlížeče pak můžeme omezit spouštění nepodepsaných resp. nedůvěryhodně podepsaných apletů. ü Aplety nevyžadují instalaci. S natažením příslušné webové stránky se samy automaticky zavedou a spustí. Stejně jako jiné dobře napsané javové aplikace, i aplety jsou platformou nezávislé. Tentýž aplet bude spokojeně žít v prohlížeči majitele počítače PC s Windows i zarytého příznivce Linuxu. ü Aplety nemohou ani skrytě přistupovat k jiným síťovým zdrojům než těm, co se nacházejí na tomtéž počítači (adrese), odkud byl aplet stažen. Nemohou tedy např. nepozorovaně předávat informace z našeho počítače na nějaký „špionážní server“. ü Není třeba mít obavy ze zavirování či jiného poškození systému. ü Aplet má omezený přístup i k systémovým vlastnostem. Důvod je tentýž jako u čtení lokálního disku – možná kompromitace informací o uživatele. V systémových vlastnostech se například lze dočíst, jaké je uživatelské jméno, domovský adresář atd. To vše by se mohlo (kdyby to bylo povoleno) dostat na server, odkud aplet pochází. Z tohoto pohledu by se mohlo zdát, jakoby aplety snad ani nemohly fungovat – při tolika omezeních. Skutečnost ale potvrzuje opak: aplety se stále používají a žádné aféry ohledně jejich (ne)bezpečnosti se neřeší. Zvolený bezpečnostní model se osvědčil. Srovnáme-li to s problémy okolo bezpečnosti JavaScriptu, aplety jsou z bezpečnostního hlediska podstatně robustnějším řešením. Je zřejmé, že budou okolnosti, kdy jsou tato omezení příliš přísná. V tomto případě lze nastavit zabezpečení, které umožňuje jisté operace pro specifické důvěryhodné programy, aplety nebo místa na síti tím, že je explicitně vyjmenujeme v souboru zabezpečení. To je textový soubor v ASCII, který definuje, co je dovoleno pro konkrétní zdroj kódu. [3] [5]
3.3
Komunikace
3.3.1 XML XML, celým názvem eXtensible Markup Language (rozšiřitelný značkovací jazyk) je na systému nezávislí jazyk, pro vyjadřování dat a jejich struktury v dokumentu XML. Dokument XML je textový soubor znaků Unicode, který obsahuje data spolu se značkami, které definují strukturu dat. Protože je dokument XML textovým souborem, můžeme jej vytvořit pomocí jakékoli jednoduchého textového editoru, i když editor navržený přímo pro účel vytváření a editace XML může tuto práci samozřejmě usnadnit. Přesná definice XML je v rukou konsorcia World Web Consortium (W3C). I když dokument typu XML může být vytvořen a čten lidmi, je především určen pro přenos dat z jednoho počítače do druhého. Dokumenty XML jsou tedy zpravidla tvořeny a zpracovávány počítačovými programy. Dokument typu XML určuje strukturu dat, které obsahuje, takže program, který jej přijme, jej může řádně interpretovat. XML je tedy nástrojem pro přenos informací a jejich organizování mezi počítačovými programy. XML je jazyk, ve kterém lze definovat nové sady tagů a atributů tak, aby vyhovovaly různým druhům dat. Protože jazyk XML je rozšiřitelný, je často popisován jako metajazyk, jinými slovy jako jazyk k definování nových jazyků. [3]
Strana 20
3.3.2 Databáze Pomocí Javy lze přistupovat k celé řadě databází. Databáze mohou mít různé formy: od nejjednodušších, které představuje prostý textový soubor nebo dvojice klíčhodnota (formát DBM), až po propracované relační databázové řídicí systémy (DBMS) či exotické databáze. JDBC (Java DataBase Connectivity) tvoří třídy v balíčku java.sql a od verze JDBC Level 2 v balíčku javax.sql. SQL (Structured Query Language) značí strukturovaný dotazovací jazyk, jehož prostřednictvím relační databázový software poskytuje standardní příkazový jazyk pro vytváření, úpravu, aktualizaci a provádění dotazů na relační databáze. Java je velmi dobře přenositelná, ale dříve celá řada databází postrádala přenositelné rozhraní a byla svázána s jedním konkrétním jazykem nebo platformou. Právě tento problém mělo JDBC vyřešit. Velmi volným vzorem JDBC bylo ODBC (Open DataBase Connectivity) od Microsoftu. Vývojová skupina Javy ve společnosti Sun si vypůjčila několik obecných nápadů od Microsoftu, který si zase na oplátku vypůjčil nějaké nápady Sunu v relačních databázích. Zatímco ODBC je založeno na jazyce C a ukazatelích, JDBC je postaveno na Javě, a tudíž je přenositelné i síťově orientované a má lepší typovou kontrolu. JDBC přichází ve dvou částech: přenositelné aplikační rozhraní JDBC, které poskytuje Java, a databázový ovladač, který obvykle poskytují dodavatelé DBMS nebo třetí strany. Tyto ovladače se musí přizpůsobit konkrétnímu rozhraní (s logickým názvem Driver) a mapují generické volání na něco, čemu je schopen stávající databázový kód porozumět. JDBC pracuje pouze s relačními databázemi: nepodporuje žádné textové soubory ani soubory DBM. [4]
3.4
Vývojové prostředí NetBeans
Práce s několika samostatnými nástroji – textovým editorem, překladačem, programem na spouštění a nástrojem na ladění – není příliš pohodlná. Všechny tyto programy spojuje do jedné sady nástrojů s grafickým uživatelským rozhraním integrované vývojové prostředí (IDE). K dispozici je řada IDE sahající až po úplně integrované nástroje s vlastními překladači a virtuálními stroji. Domnělou snadnost použití množiny funkcí těchto nástrojů završují prohlížeče tříd a další funkce IDE. Mnohokrát se polemizovalo, zda IDE skutečně zvyšují produktivitu vývojářů nebo je práce s nimi pouze zábavnější. Jedním IDE, které běží jak na platformě Windows, tak na Unixu, je NetBeans. Toto IDE původně vytvořila společnost NetBeans.com, avšak bylo tak výborné, že Sun koupil společnost a nyní distribuuje IDE ve dvou verzích, které sdílí převážnou část kódu: NetBeans(dříve označované Forte a distribuované jako open-source) a Sun One Studio (komerční verze). [4]
Strana 21
Obr.2 NetBeans IDE 5.5
Strana 22
Strana 23
4
NÁVRH A REALIZACE APLIKACÍ
4.1
Výpočet entropie a redundance
Teorie informace tvoří část obecné kybernetiky. Pojem informace je velmi široký a těžko se definuje. Přesná definice pojmu informace neexistuje, pouze lze určit, je-li informace větší nebo menší, tj. míru informace. Zpráva je způsob vyjádření informace posloupností symbolů (znaků). Zpráva může být tedy např. číslo, text, ale i řídící signál. Každá zpráva má syntaktický, sémantický a pragmatický obsah. Množství informace obsažené ve zprávě X souvisí s pravděpodobností jejího výskytu tak, že množství informace I(X) je přímo úměrné pravděpodobnosti P(X) s jakou může příjemce uhodnout obsah zprávy X neboli jaká je pravděpodobnost výskytu dané zprávy u příjemce před jejím přijetím. Platí
1 I(X ) = f P( X )
(1) Příjemce zprávy musí předem znát, jaké zprávy mohou být produkovány (musí znát množinu všech možných zpráv) a zdroji zpráv je ponechána volnost výběru z této množiny možných zpráv. U příjemce existuje tedy neurčitost o tom, kterou zprávu obdrží. Přijetím zprávy je pak tato neurčitost odstraněna. Je tedy množství informace zprávy I(X) rovno entropii tj. míře neurčitosti zprávy H(X), kterou tato zpráva odstraní:
I (X ) = H (X )
(2) Množství informace je rovno entropii daného jevu za předpokladu, že neurčitost je po
1 , tj. záporně vzatým P( X )
přijetí plně odstraněna. Je dáno logaritmem míry neurčitosti logaritmem pravděpodobnosti výskytu této zprávy.
I ( X ) = H ( X ) = log 2
1 = − log 2 P ( X ) P( X )
(3) Determinované systémy mají nulovou entropii (neurčitost) a zprávy o jejich stavech nesou nulovou informaci. Naopak největší neurčitost má systém, jehož stavy jsou stejně pravděpodobné, tj. při rovnoměrném rozdělení pravděpodobností. Neurčitost systému závisí tedy na počtu stavů systému i na jejich pravděpodobnosti. Často se vyjadřuje průměrná entropie systému jako míra průměrné neurčitosti jednoho stavu systému. Může-li systém nabývat s možných stavů s pravděpodobnostmi p1, p2, …, ps pak průměrná entropie H (X ) je rovna: s
p H + p 2 H 2 + ... + p s H s H(X ) = 1 1 = p1 + p 2 + ... + p s
∑pH i
i
i =1
s
∑p i =1
i
(4)
Z počtu pravděpodobnosti je známo, že s
∑p i =1
i
=1
(5)
neboť se jedná o stavy, které jsou nesoučasné (disjunktní): s
s
H ( X ) = ∑ p i H i = − ∑ p i log p i
(6) Máme-li zprávu o n znacích se stejným množstvím průměrné informace na znak (se stejnou pravděpodobností výskytu jednotlivých znaků s), je průměrná informace zprávy o n znacích: i =1
i −1
Strana 24
′ ′ H max = I ( X ) = n.H ( X ) = n. log 2 s
(7) Jsou-li pravděpodobnosti výskytu jednotlivých stavů stejné, má zpráva maximální entropii. Naopak zpráva o n znacích, z nichž každý může nabývat s stavů a různou pravděpodobností: s ′ H = I ( X ) = − n.∑ p i . log 2 p i ≤ n. log 2 s
i =1 (8) Je-li skutečná entropie H menší než maximální entropie Hmax, znamená to, že zdroj nevyužívá plně své abecedy. Nevyužití abecedy se kvantitativně hodnotí redundancí neboli nadbytečností zdroje:
R =1−
H H max
(9) Redundance je z hlediska přenosu zpráv kanálem s rušením v podstatě žádoucí vlastností zdroje. Dává určitou možnost příjemci zpráv přijaté zprávy opravit. Na druhé straně je většinou původní nadbytečnost nevýhodná, neboť oprava chyb by vyžadovala složité zpracování. Je proto výhodnější původní nadbytečnost odstranit a místo ní zavést nadbytečnost novou, která efektivně zabezpečuje zprávy při přenosu hlukovým kanálem (využití bezpečnostních kanálů). [6]
4.1.1 Aplikace pracující samostatně Tento typ aplikace nekomunikuje s testovacím modulem e-learningového systému, vstupní parametry zadává uživatel/student pomocí úvodního apletu (Obr. 3): ü typ entropie ü použití kalkulačky ü typ výpisu
Obr. 3 Úvodní aplet k výpočtu entropie Typ výpočtu může být dle: ü p1=p2=…, tj. pravděpodobnosti výskytu jednotlivých stavů jsou stejné. Jedná se o maximální entropii. Počet znaků se generuje od dvou do sta
Obr. 4 Výpočet maximální entropie bez kalkulačky
Strana 25 ü p1≠p2≠…, pravděpodobnosti výskytu jednotlivých stavů, znaků generovaných zdrojem, jsou různé. K výpočtu je využito tzv. průměrné entropie. Počet stavů se generuje od dvou do pěti. Pravděpodobnosti se generují zřetelem na to, že součet jednotlivých pravděpodobností musí být jedna. V tomto případě hovoříme o nadbytečnost zdroje a je počítána i redundance. Průměrná entropie musí být menší nebo rovna entropii maximální.
Obr. 5 Výpočet průměrné entropie a redundance kalkulačkou Typy výpisů jsou: ü Správně/špatně, vypisuje, zda výsledek byl zadán správně nebo špatně, jak ukazuje Obr. 5. Nevypisuje se výsledek číselně. ü Číselně, pro výpis numerického výsledku (Obr. 4). Kalkulačka: ü Kalkulačkou, při výpočtu maximální entropie se počet prvků abecedy generuje od dvou do pěti. ü Bez kalkulačky, aplet generuje příklady, které je možné počítat bez použití kalkulačky. Počet pravděpodobností se generuje od dvou do n, kde n = 2, …, 5. Při výpočtu maximální entropie se pro počet prvků abecedy generují mocniny dvojky tj. 2, 4, 8, 16, 32 (Obr. 4). Když se počítá průměrná entropie, prvních n-1 pravděpodobností se generuje podle vztahu
1 , kde m = 1, …, 5. Poslední 2m
pravděpodobnost musí vypočítat student (Obr. 6).
Obr. 6 Výpočet průměrné entropie a redundance bez kalkulačky
4.1.2 Aplikace pracující v součinnosti s testovacím e-learningovým modulem Aplet entropie je začleněn i do testovacího modulu e-learningového systému. Na rozdíl od samostatně spustitelného apletu, činnost apletu nekončí s vypsáním výsledku na obrazovku, ale výsledek je uložen i do databáze. Vstupní parametry apletu – typ entropie, použití kalkulačky a typ výpisu – jsou uložené v XML souboru, který po spuštění aplet načte. Po vyplnění vstupních polí a stisknutí tlačítka OK je výsledek odeslán do databáze, spolu s ID studenta, který je taky uložen v XML souboru.
Strana 26
Obr. 7 Aplet v testovacím modulu
4.2
Kontrolní a generující matice
Lineární (n, k)-kód má celkem qk kódových slov, protože kódová slova můžeme vyjádřit jejich k souřadnicemi ve zvolené bázi a každá souřadnice má q možných hodnot. Lineární (n, k)-kód s k≠0 je určen svojí (libovolnou) bází b1, b2, …, bk . Pokud napíšeme těchto k slov (bází) pod sebe, vznikne tzv. generující matice daného kódu G. G = [b1b2 … bk]T
(10)
Matice G typu (n, k) je generující maticí lineárního kódu, jestliže ü každý její řádek je kódovým slovem ü každé kódové slovo je lineární kombinací řádků ü řádky jsou lineární nezávislé, takže hodnost matice G je rovna k Systematické kódy jsou ty lineární kódy, které mají generující matici tvaru G = [E | B]
(11)
kde E je jednotková matice řádu k a platí
1 0 0 0 b1l b1,n−k 0 1 0 0 b2l b2,n−k [u1u2 ...uk ] = [u1u2 ...uk vk +1...vn ] 1 bkl bk ,n−k 0 0 0
(12)
kde v=vk+1 … vn je vektor v=uB. Každý lineární kód je ekvivalentní se systematickým lineárním kódem. Kontrolní matice lineárního kódu K je taková matice H z prvků abecedy T, pro kterou platí: slovo v = v1v2 … vn (v Tn ) je kódové, práv když splňuje následující podmínku HvT = 0T, v ∈ K, v = v1v2 … vn (13) Lineární kód s generující maticí má kontrolní matici
G = [Ek | B]
(14)
H = [-BT | E'n-k]
(15)
kde BT je transponovaná matice B a E'n-k je jednotková matice. [7]
Strana 27
4.2.1 Aplikace pracující samostatně Úvodní obrazovka poskytuje možnost výběru ze čtyř typů úloh, které jsou rozděleny do dvou skupin, podle toho zda jsou systematické nebo nesystematické (Obr. 8). ü systematický kód • kontrolní matice • kontrolní a generující matice ü nesystematický kód • kontrolní matice • kontrolní a generující matice
Obr. 8 Úvodní aplet pro kontrolní a generující matice Pro rychlejší a snadnější práci s maticí je zadávání jedniček a nul řešeno pomocí checkboxů. Zaškrtnutí checkboxu znamená jedničku.
Obr. 9 Systematická kontrolní matice zadaná správně Příklad pro vyhodnocování systematické kontrolní matice (Obr. 9) - po stisknutí tlačítka OK je matice vyhodnocena následujícím postupem: 1) Testuje se, zda matice neobsahuje nulové sloupce.
Strana 28 2) Zjišťuje se, zda v matici nejsou dva stejné sloupce. 3) Zjistí se, zda jednotková matice je na správném místě (u nesystematické kontrolní matice se netestuje).
Obr. 10 Systematická kontrolní (správně) a generující (špatně) matice Příklad pro vyhodnocování systematické kontrolní a generující matice (Obr. 10) – kontrolní matice se vyhodnocuje stejně, jak u předchozího případu. Vyhodnocování generující matice se provádí následujícím způsobem: 1) Testuje se správné umístění jednotkové matice. 2) Zjišťuje se, zda platí vztahy (14) a (15) pro matici B.
Obr. 11 Nesystematická kontrolní (správně) a generující (správně) matice Vyhodnocování nesystematické kontrolní a generující matice má taky dvě části. V prvním se testuje kontrolní matice, v druhém generující, co je složitější úloha. Na rozdíl od systematické kontrolní matice se u nesystematické se neprovádí testování umístění jednotkové matice. Generující matice se vyhodnocuje následovně: 1) Zadaná nesystematická kontrolní matice se převede na systematickou. 2) Ze systematické kontrolní matice se vygeneruje systematická generující matice. 3) Systematická generující matice je převedena na nesystematickou pomocí nesystematické kontrolní matice. 4) Výsledná matice se testuje s odpovídající nesystematickou generující maticí.
Strana 29
4.1.2 Aplikace pracující v součinnosti s testovacím e-learningovým modulem Při spolupráci s testovacím modulem chování apletu je určen konfiguračním XML souborem, který obsahuje typ příkladu a ID studenta. Úvodní obrazovka (Obr. 8) není zobrazovaná, hned se zobrazí vybraný typ příkladu. Do databáze se zapisuje, zda matice byly zadané správně nebo špatně.
Obr. 12 Aplet v testovacím modulu
4.3
Výpočet Hammingovy vzdálenosti
Hammingova vzdálenost δH dvou slov v1v2…vn a w1w2…wn je definována jako počet odlišných znak těchto slov, tj. velikost množiny {i|i=1, 2, …, n, vi≠wi}. Váha w kódové složky je dána počtem jedniček v kódové složce. Nejvyšší vahou je pak myšlen jedničkový bit umístěný nejvíce vlevo. Minimální (kódová) vzdálenost D, blokového kódu K, je spočtena jako minimální Hammingova vzdálenost mezi dvěma různými kódovými složkami. Kódová vzdálenost je důležitou charakteristikou kódu z hlediska jeho zabezpečující schopnosti proti chybám. S rostoucím D se zvyšuje zabezpečovací schopnost kódu, bohužel roste též jeho redundance. K výpočtu Hammingovy vzdálenosti je užita operace sčítání modulo 2. Tato operace je ekvivalentní odčítání modulo 2. Pro praktickou realizaci je použita logická operace XOR. [7]
4.3.1 Aplikace pracující samostatně Vstupní parametr pro tento druh aplikace je jenom jedna, a to je typ výpisu – správně/špatně nebo číselně. Samotný aplet pro výpis příkladu je na Obr. 12. Délky dvou kódových složek jsou stejné a generují se od čtyř do dvanácti.
Obr. 13 Výpočet Hammingovy vzdálenosti
Strana 30
4.3.2 Aplikace pracující v součinnosti s testovacím e-learningovým modulem Po načtení vstupních parametrů z XML souboru je aplet zobrazen, jak je to na Obr. 14. Když stiskneme tlačítko OK, výsledek se pošle na server.
Obr. 14 Aplet v testovacím modulu
4.4
Návrh korekčních kódů
Bezpečnostní kódy uměle zvyšují redundanci, za účelem zabezpečení informace před možnými chybami. Bezpečnostní kódy jsou v zásadě dvojího typu: ü Detekční kódy (error-detection codes), které umožňují pouze rozpoznat (detekovat), že přijatý znak je chybný. ü Korekční kódy, resp. samoopravné kódy (self-correcting codes), které kromě detekce chyby umožňují i opravu chybně přeneseného znaku, takže jej není nutné přenášet znovu (což u detekčního kódu obecně nutné je). [7]
4.4.1 Aplikace pracující samostatně V úvodním appletu lze vybrat, kolik kódových slov chceme užít k tvorbě kódu s korekční schopností opravy jedné chyby.
Obr. 15 Úvodní obrazovka pro návrh korekčních kódů Program testuje, zda délky kódových složek jsou stejné a zda jejich minimální vzdálenost není menší než tři.
Strana 31
Obr. 16 Návrh třech kódových slov
4.5
Lexikografický analyzátor
4.5.1 Aplikace pracující samostatně Na úvodní obrazovce jsou vypsány příklady, z kterých lze vybrat právě jeden k testování (Obr. 17). V této fázi vývoje jsou k dispozici jenom dva otázky.
Obr. 17 Úvodní obrazovka k lexikografickému analyzátoru Po výběru otázky se objeví otázka s polem pro zadání odpovědi. Odpověď se musí zadávat s diakritikou. Po vyhodnocení aplet vrátí, zda je odpověď správně (Obr. 18) nebo špatně (Obr. 19). Čtyři správné klíčové slova jsou uloženy v XML souboru a zadaná odpověď je porovnána s těmito slovy. V XML souboru jsou ke klíčovým slovům přiřazeny hodnoty, které určují jejich váhu. Slovo s největší hodnotou má nejvyšší váhu při vyhodnocování. Na konci analýzy jsou jednotlivé váhy nalezených slov sečteny a z výsledku je určena správnost odpovědi. V příloze jsou uvedeny odpovědi studentů z písemních testů.
Obr. 18 Otázka na Kraftovu nerovnost se špatnou odpovědí
Strana 32
Obr. 19 Otázka na RSA se správnou odpovědí
4.5.2 Aplikace pracující v součinnosti s testovacím e-learningovým modulem Aplet spolupracující s testovacím modulem e-learningového systému načte ze souboru XML číslo otázky a zobrazí ji. Na Obr. 20 je uváděn příklad se správnou odpovědí.
Obr. 20 Lexikografický analyzátor v testovacím modulu (správná odpověď)
Strana 33
5
ZÁVĚR
Cílem této bakalářské práce bylo vytvořit několik java aplikaci pro testování znalostí studentů, tyto aplikace jsou primárně určeny k doplnění již existujícího jednoduchého e-learningového systému předmětu teorie informace a kódování. Pro tento účel jsem vytvořila pět aplikací v objektově orientovaném programovacím jazyka Java v progresivním vývojovým prostředím NetBeans. První aplikace testuje znalosti studenta v úloze o výpočtu počítá maximální entropie, průměrné entropie a redundance zdroje. Druhá aplikace testuje znalosti studenta z oblasti kontrolních a generujících matic Hammingova (7,4)-kódu. Pro efektivitu práce při zadávání matic bylo využito tzv. checkboxů. Třetí aplikace testuje Hammingovou vzdálenost dvou kódových složek stejných délek. Čtvrtá aplikace testuje znalosti návrhu kódu, dle požadované korekční schopnosti kódu. Poslední aplet realizuje základní lexikografický analyzátor, který dle navrženého algoritmu vyhodnocuje studentem zadané odpovědi. Přínosem bakalářské práce pro mě bylo, že jsem se naučila programovat v Javě. Vytvořené aplikace mohou být využívány pro testování znalostí studentů z prezentovaných oblastí teorie informace a kódování jak samostatně, tak v součinnosti s e-learningovým systémem. Navržené aplikace jsou již částečně zahrnuty a k dispozici na adrese: http://www.uai.fme.vutbr.cz/~matousek/TIK/index_tik.html, a tedy využívány studenty, což byl jeden z cílů této práce.
Strana 34
Strana 35
SEZNAM POUŽITÉ LITERATURY [1] [2] [3] [4] [5] [6] [7] [8]
Trask Solutions s.r.o. LMS eDoceo [online]. [cit. 7. 5. 2007]. Dostupné z:
Tóth-Daru Zita. E-Learning az oktatás tradicionális és modern felfogásának tükrében [online]. [cit. 7. 5. 2007]. Dostupné z: < http://www.doksi.hu/get.php?lid=2909> HORTON, Ivor. Java 5. Praha : Neocortex, spol. s r.o., 2005. 1443 s. ISBN 80-86330-12-5. DARWIN, Ian F. Java kuchařka programátora : Vzory a řešení pro vaše aplikace. 1. vyd. Brno : Computer Press, a.s., 2006. 798 s. ISBN 80-251-0944-5 PITNER, Tomáš. Java - začínáme programovat : podrobný průvodce začínajícího uživatele. 1. vyd. Praha : Grada Publishing, spol. s r.o., 2002. 224 s. ISBN 80-247-0295-9 OŠMERA, Pavel. Informační systémy : Teorie informace. Brno. 2005 MATOUŠEK, Radomil. Metody kódování. [online]. ver. 1. 9. Brno. 2006. [cit. 12. 5. 2007]. Dostupné z:
NOVOTNÝ, Luďek. Historie jazyka Java [online]. 2003. [cit. 17.5.2007].
Strana 36
Strana 37
PŘÍLOHA Otázky a odpovědi z písemních testů studentů: 1) Co nezaručuje Kraftova nerovnost? ü ü ü ü ü ü ü ü ü ü ü ü ü
nezaručuje jednoznačnou dekódovatelnost slova nezaručuje, že kód je prefixový nezaručuje prefixovost nezaručuje, že daný kód je prefixový nezaručuje prefixovost kódu prefixovost kódu Krafftova nerovnost nezaručuje prefixovost kódu KN nezaručuje prefixovost kódu Krafftova nerovnost nezaručuje, že je daný kód prefixový KN nezaručuje, že kód je prefixový existenci prefixového kódu nezaručuje prefixovost daného kódu KN nezaručuje, že je kód prefixový
2) Na jakém matematickém problému je založeno RSA? ü na problému faktorizace ü dělení polynomu polynomem, pokaždé musí vyjít stejný polynom pro stejnou zprávu ü je založen na problému řešitelnosti a neřešitelnosti faktroizace ü RSA je založena na neřešitelnosti faktorizace ü faktorizace prvočísel