MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨  AKULTA INFORMATIKY !"#$%&'()+,-./012345

Uˇc´ıc´ısyst´empro Android

BAKALA´ RSKˇ APR´ ACE´

Luk´aˇsPetr´ak

Brno, 2010 Prohl´aˇsen´ı

Prohlasuji,ˇ zeˇ tato bakala´rskˇ a´ prace´ je mym´ puvodn˚ ´ım autorskym´ d´ılem, ktere´ jsem vypracoval samostatne.ˇ Vsechnyˇ zdroje, prameny a literaturu, ktere´ jsem priˇ vypracovan´ ´ı pouzˇ´ıval nebo z nich cerpal,ˇ v praci´ rˇadn´ eˇ cituji s uveden´ım upln´ eho´ odkazu na prˇ´ıslusnˇ y´ zdroj.

Luka´sˇ Petrak´

Vedouc´ıpr´ace: Mgr. Simonˇ Suchomel

ii Podˇekov´an´ı

Rad´ bych podekovalˇ memu´ vedouc´ımu bakala´rskˇ e´ prace´ za odbornou po- moc a mnoho podnetnˇ ych´ rad. Dale´ dekujiˇ Nikole a sve´ rodineˇ za podporu a trpelivost,ˇ kterou se mnou meliˇ behemˇ tvorby teto´ prace´ a celeho´ studia.

iii Shrnut´ı

Tato bakala´rskˇ a´ prace´ se zabyv´ a´ implementac´ı programu pro ucenˇ ´ı v sys- temu´ Android. V ramci´ prace´ dosloˇ take´ k funkcnˇ ´ımu srovnan´ ´ı vybranych´ soucasnˇ ych´ ucˇ´ıc´ıch system´ u.˚ Hlavn´ım c´ılem prace´ byla implementace programu pro ucenˇ ´ı metodou na principu opakovan´ı s prodlevami se zakladn´ ´ı funkcionalitou (vytva´renˇ ´ı a rusenˇ ´ı karticek,ˇ import karticekˇ z ruzn˚ ych´ zdroju,˚ prioritizace odpoveze-ˇ nych´ otazek´ dle statistiky chybovosti uzivatele).ˇ

iv Kl´ıˇcov´aslova

Android, SuperMemo, efektivn´ı ucenˇ ´ı, ucenˇ ´ı s prodlevami, ucenˇ ´ı s kartickami,ˇ zapom´ınan´ ´ı

v Obsah

1 Uvod´ ...... 1 2 Uˇcen´ı ...... 2 2.1 Pametˇ ’ ...... 2 2.2 Zapom´ınan´ ´ı ...... 2 2.3 Ucenˇ ´ı s kartickamiˇ ...... 3 2.4 Ucenˇ ´ı s prodlevami ...... 3 3 Uˇc´ıc´ıprogramy ...... 5 3.1 SuperMemo ...... 5 3.2 ...... 6 3.3 ...... 7 3.4 Smart.fm ...... 8 3.5 Dril ...... 8 3.6 Porovnan´ ´ı ucˇ´ıc´ıch programu˚ ...... 10 4 OS Android ...... 12 4.1 Historie ...... 12 4.2 Architektura ...... 14 4.2.1 Jadro...... ´ 14 4.2.2 Nativn´ı knihovny ...... 15 4.2.3 Aplikacnˇ ´ı ramec´ ...... 15 4.2.4 Aplikace ...... 16 4.2.5 Dalsˇ´ı specifika ...... 16 5 Implementace ...... 18 5.1 Vyvojov´ e´ prostredˇ ´ı ...... 18 5.2 Struktura aplikace ...... 18 5.2.1 Bal´ık cz.muni.fi.xpetrak.bc ...... 18 5.2.2 Pomocny´ bal´ık cz.muni.fi.xpetrak.bc.utils 21 5.2.3 Pouzitˇ e´ opravn´ enˇ ´ı ...... 22 5.2.4 Pouzitˇ y´ postup ucenˇ ´ı...... 23 5.2.5 Pouzitˇ y´ algoritmus ...... 23 5.2.6 Schema´ databaze´ ...... 24 6 Z´avˇer ...... 25 A Uzivatelsk´apˇr´ıruˇckaˇ ...... 30 B Form´atysoubor ˚u ...... 34 C Obsah CD a n´avodna spuˇstˇen´ı ...... 37

vi 1 Uvod´

Lidstvo se svym´ konan´ ´ım snazˇ´ı dobrat efektivity ve vsechˇ oblastech. Tam, kde je to moznˇ e´ nahrazujeme lidsky´ faktor vykonn´ ejˇ sˇ´ımi stroji. Tam, kde to prozat´ım moznˇ e´ nen´ı, vyuzˇ´ıvame´ stroje a prˇ´ıstroje ke zvy´senˇ ´ı nasehoˇ vykonu.´ V oblasti vyzkumu´ metod efektivn´ıho ucenˇ ´ı byly v posledn´ıch le- tech ucinˇ enyˇ velke´ pokroky. Vseˇ vlastneˇ zacaloˇ vyzkumem´ opacnˇ eho´ pro- cesu. Jizˇ v roce 1885 publikoval vysledky´ sveho´ vy-´ zkumu procesu zapom´ınan´ ´ı. Pro svuj˚ experiment sestavil velke´ mnozstvˇ ´ı bezmyslnych´ slabik (napr.ˇ MIB, DAX). Naucilˇ se tem´ eˇrˇ 170 souboru˚ po tri-ˇ ” nacti´ slabikach´ a kazdˇ y´ z nich se pak ucilˇ znovu po uplynut´ı casovˇ eho´ in- tervalu, jehozˇ delka´ se pohybovala od jednadvaceti minut do jednatricetiˇ dn´ı. Jako meˇrˇ´ıtko rozsahu zapom´ınan´ ´ı mu slouzilaˇ doba potrebnˇ a´ k opetov-ˇ nemu´ naucenˇ ´ı souboru neboli casovˇ a´ uspora´ priˇ novem´ ucenˇ ´ı. Ebbinghaus zjistil, zeˇ zapom´ınan´ ´ı je zpocˇatku´ velmi rychle,´ ale postupneˇ se zpoma- luje“[27, p.94]. Techtoˇ poznatku˚ bylo vyuzitoˇ priˇ dalsˇ´ıch vyzkumech.´ Ve 30. letech bylo poprve´ navrzenoˇ vyuzitˇ ´ı metody opakovan´ ´ı s prodlevami v ucˇ´ıc´ım pro- cesu. V roce 1973 prichˇ az´ ´ı Sebastian Leitner s praktickym´ vyuzitˇ ´ım v po- dobeˇ Leitner systemu“´ – ucenˇ ´ı jazyka zalozenˇ em´ na metodeˇ ucenˇ ´ı s kartic-ˇ ” kami, jej´ızˇ princip je popsan´ v dalsˇ´ıch cˇastech´ prace.´ Metoda velmi efek- tivn´ıho zpusobu˚ ucenˇ ´ı byla na svetˇ e.ˇ Rychly´ rozvoj v oblasti vypo´ cetnˇ ´ıch technologi´ı a dostupnosti osobn´ıch pocˇ´ıtacˇu˚ umoznilˇ od 80. let prenˇ est´ vy-´ pocetˇ algoritmu˚ z pap´ıru˚ na pocˇ´ıtace.ˇ [38, 10, 33] Dnes ma´ uzivatelˇ se zajmem´ o efektivn´ı ucenˇ ´ı, moznostˇ vyuzˇ´ıt nab´ıdky velkeho´ mnozstvˇ ´ı softwaru˚ zalozenˇ ych´ na metodeˇ ucenˇ ´ı s prodlevami. Ucitˇ se mu˚ zeˇ pohodlneˇ a tem´ eˇrˇ kdekoli prostrednictvˇ ´ım sveho´ PC nebo mo- biln´ıho telefonu. Hlavn´ım c´ılem teto´ prace´ je navrzenˇ ´ı a implementace ucˇ´ı- c´ıho softwaru tohoto druhu pro pomernˇ eˇ novy´ mobiln´ı operacnˇ ´ı system´ Android. Android je otevrenˇ y´ system´ s velmi rychle rostouc´ım trznˇ ´ım po- d´ılem (co do poctuˇ telefonu˚ vyuzˇ´ıvaj´ıc´ıch Android).[16] Veˇrˇ´ım, zeˇ se jedna´ o operacnˇ ´ı system´ s budoucnost´ı a velkym´ potencialem.´

1 2 Uˇcen´ı

Pro efektivn´ı ucenˇ ´ı je dule˚ zitˇ e´ vedˇ et,ˇ jak tento proces prob´ıha.´ Jake´ existuj´ı druhy pametˇ ´ı a jak k temtoˇ pametemˇ pristupovat.ˇ Pochopen´ım principu zapom´ınan´ ´ı lze optimalizovat proces ucenˇ ´ı a t´ım jednoduseˇ co nejv´ıce pro- dlouzitˇ casˇ pamatovan´ ´ı s co nejmensˇ´ı namahou.´

2.1 Pamˇet’

Pametˇ ’ lze chapat´ jako ulo´ ziˇ stˇ eˇ informac´ı ciˇ jako schopnost informace ukla-´ dat, uchovavat´ a opetˇ z´ıskavat.´ Pametˇ ’ je moznˇ e´ delitˇ dle doby uchovan´ ´ı informac´ı na okamzitou,ˇ kratkodobou´ a dlouhodobou. Z pohledu pametiˇ jako uloziˇ stˇ eˇ slouzˇ´ı okamzitˇ a´ pametˇ ’ pro uchovan´ ´ı informac´ı z´ıskanymi´ nasimiˇ smysly po dobu zlomku˚ vterinˇ a nen´ı nijak zpracovav´ ana.´ K jej´ımu zpracovan´ ´ı dochaz´ ´ı azˇ v kratkodob´ e´ pameti,ˇ kde setrva´ nekolikˇ vterin.ˇ Tuto dobu lze prodlouzitˇ azˇ na nekolikˇ minut opa- kovan´ ´ım v duchu. Kratkodob´ a´ pametˇ ’ ma´ omezenou velikost (naprˇ´ıklad par´ slov, veta,ˇ telefonn´ı cˇ´ıslo...). Z kratkodob´ e´ pametiˇ se informace bud’ vytrac´ ´ı a nebo se priˇ dostatecnˇ em´ opakovan´ ´ı vstˇ epujeˇ do pametiˇ dlouho- dobe.´ Vstˇ epovˇ an´ ´ı trva´ u vetˇ sinyˇ informac´ı pribliˇ znˇ eˇ tricetˇ minut, nekterˇ ym´ vsakˇ stacˇ´ı pouze minuty, jine´ vyzadujˇ ´ı hodiny. V dlouhodobe´ pametiˇ jsou ulozenˇ e´ informace uchovav´ any´ dlouhodobeˇ (tydny,´ mesˇ ´ıce, roky azˇ trvale), avsakˇ to neznamena,´ zeˇ co je jizˇ ulozenoˇ v dlouhodobe´ pametiˇ nelze zapo- menout.[24, 25, 34, 35]

2.2 Zapom´ın´an´ı

Zapom´ınan´ ´ı je ztrata´ obsahu pametiˇ casem.ˇ Mu˚ zeˇ k n´ı doj´ıt u jizˇ naucenˇ e´ nebo prav´ eˇ ucenˇ e´ informace. K jej´ı ztrat´ eˇ dochaz´ ´ı priˇ narusenˇ ´ı procesu pre-ˇ nosu do dlouhodobe´ pameti.ˇ Zapomenut´ı jizˇ naucenˇ e´ informace mu˚ zeˇ byt´ zpusobeno˚ jej´ı ztratou´ (kompletn´ımu vymizen´ı nervovych´ spojen´ı) nebo selhan´ ´ım vybaven´ı z dlouhodobe´ pameti,ˇ kdy je pametˇ ’ova´ stopa prˇ´ılisˇ slaba.´ [34, 36, 42] Prub˚ ehemˇ zapom´ınan´ ´ım v caseˇ se zabyval´ nemeckˇ y´ psycholog Her- mann Ebbinghaus, ktery´ v roce 1885 zformuloval vzorec

− t R = e s kde R je pravdepodobnostˇ znovu vybaven´ı informace, e je Eulerovo cˇ´ıslo, t je casˇ a s je relativn´ı s´ıla pameti.[12]ˇ

2 2. UCENˇ ´I

Obrazek´ 2.1: Krivkaˇ zapom´ınan´ ´ı podle Ebbinghause.

Na uveden´ı krivceˇ (obrazek´ 2.1) je videt,ˇ zeˇ zapom´ınan´ ´ı ma´ exponecialn´ ´ı prub˚ eh.ˇ Nejrychlejsˇ´ı prub˚ ehˇ je behemˇ prvn´ıch hodin od prvn´ıho zjistˇ enˇ ´ı informace, dale´ jizˇ zapom´ınan´ ´ı nen´ı tak strme.´ Po 3 azˇ 6 dnech je pouze 10 % pravdepodobnostˇ na vzpomenut´ı si dane´ informace.

2.3 Uˇcen´ıs kartiˇckami

Jedn´ım ze zpusob˚ u˚ ucenˇ ´ı je ucenˇ ´ı s kartickamiˇ (learning with flashcards). Je vyuzitoˇ podm´ınky rozkladu latky´ na co nejmensˇ´ı polozky,ˇ presnˇ ejiˇ otazku´ a odpovedˇ ’. Tyto pary´ mohou byt´ napr.ˇ vytistˇ enyˇ na pap´ır, predevˇ sˇ´ım jsou vsakˇ vyuzˇ´ıvany´ u pocˇ´ıtacovˇ ych´ programu˚ pracuj´ıc´ıch se . Proces ucenˇ ´ı prob´ıha´ tak, zeˇ je studentovi predloˇ zenaˇ otazka,´ na kterou odpov´ı a nasledn´ eˇ je zobrazena spravn´ a´ odpovedˇ ’. Na zav´ erˇ student po- skytne zpetnouˇ vazbu o tom, jak teˇzkˇ e´ bylo otazku´ zodpovedˇ et.ˇ Na zaklad´ eˇ obt´ıznostiˇ ucenˇ e´ informace a predchozˇ ´ıho intervalu se vyhodnot´ı, kdy bude kartickaˇ znovu zobrazena. [33]

2.4 Uˇcen´ıs prodlevami

Ucenˇ ´ı s prodlevami neboli Spaced repetition je ucebnˇ ´ı metoda zalozenˇ a´ na tzv. . Spacing effect je poznatek z psychologie, ktery´ do- kazuje, zeˇ lide´ si jsou schopni lepe´ zapamatovat veci,ˇ ktere´ se uciliˇ opako- vaneˇ behemˇ delsˇ´ıho casovˇ eho´ useku´ (s prodlevami), nezˇ najednou, maso-

3 2. UCENˇ ´I vou formou v kratsˇ´ım case.ˇ Jedinec zarove´ nˇ potrebujeˇ priˇ setkan´ ´ı s novou informac´ı dostatek casu,ˇ aby byl schopen prenˇ est´ poznatek do dlouhodobe´ pameti.ˇ Metoda ucenˇ ´ı s prodlevami proto pracuje nejen s opakovanym´ po- skytnut´ım informace, ale take´ upravuje velikost intervalu˚ mezi jednotlivym´ opakovan´ ´ım. [10, 33, 38]

Obrazek´ 2.2: Krivkaˇ zapom´ınan´ ´ı priˇ ucenˇ ´ı s prodlevami.

Delka´ intervalu mezi jednotlivymi´ opakovan´ ´ımi je zcela zasadn´ ´ı. Prˇ´ılisˇ dlouhy´ interval mu˚ zeˇ zpusobit˚ zapomenut´ı informace, prˇ´ılisˇ kratk´ y´ nemus´ı poskytovat dostatek prostoru pro ucenˇ ´ı obt´ıznˇ ych´ informac´ı a nevyuzˇ´ıva´ spacing effect. Pro tyto u´ celyˇ byly vytvorenyˇ efektivn´ı algoritmy, ktere´ se snazˇ´ı o urcenˇ ´ı nejlepsˇ´ıho moznˇ eho´ intervalu opakovan´ ´ı. Algoritmus pra- cuje se zpetnouˇ vazbou od studenta (vybaven´ı/nevybaven´ı si odpovedi).ˇ Priˇ kladne´ odpovediˇ se delka´ intervalu prodluzuje,ˇ priˇ zaporn´ e´ zkracuje. V idealn´ ´ım prˇ´ıpadeˇ jsou intervaly presnˇ eˇ tak dlouhe,´ aby ucenˇ a´ informace nebyla zapomenuta a zarov´ eˇn,ˇ aby nebyla prˇ´ılisˇ castoˇ predklˇ ad´ ana.´ Pod´ıl zapomenutych´ informac´ı se oznacujeˇ jako index zapom´ınan´ ´ı a vyjadrujeˇ kolik informac´ı jsme ochotni zapomenout. Index by nemelˇ byt´ mensˇ´ı nezˇ 3 % (to znamena,´ zeˇ je pozadovˇ ana´ 97% uspeˇsnostˇ zapamatovan´ ´ı, priˇ vysˇsˇ´ı hodnoteˇ uspeˇsnosti/niˇ zˇsˇ´ı hodnoteˇ indexu bude dochazet´ k velmi n´ızkym´ intervalum˚ opakovan´ ´ı a t´ım by se vytratil princip opakovan´ ´ı s prodlevami). Naopak je-li index zapom´ınan´ ´ı vysˇsˇ´ı nezˇ 20 % dochaz´ ´ı k prˇ´ılisˇ n´ızke´ m´ıreˇ zapamatovan´ ´ı informac´ı. Idealn´ ´ı velikost indexu je mezi 6 % azˇ 14 %. Proto- zeˇ se jednotlive´ informace ucˇ´ıme ruzn˚ eˇ rychle, je nutne´ rozdelitˇ studovanou laku´ na co nejmensˇ´ı polozky,ˇ kazdˇ a´ s vlastn´ım optimaln´ ´ı intervalem opa- kovan´ ´ı.[23, 33, 41]

4 3 Uˇc´ıc´ıprogramy

V soucasnˇ e´ dobeˇ existuje mnoho programu,˚ ktere´ umozˇnujˇ ´ı ucenˇ ´ı na bazi´ opakovan´ ´ı s prodlevou. Vetˇ sinaˇ z nich vyuzˇ´ıva´ metodu ucenˇ ´ı pomoc´ı karti- cekˇ (learning with flashcards). Nasleduj´ ´ıc´ı prehledˇ je pouze pru˚ rezem,ˇ ktery´ ma´ strucnˇ eˇ predstavitˇ nekterˇ e´ z beˇznˇ eˇ vyuzˇ´ıvanych´ programu˚ a jejich hlav- n´ıch rozd´ılu.[40]˚

3.1 SuperMemo

Je jedn´ım z nejstarsˇ´ıch a nejznam´ ejˇ sˇ´ıch ucˇ´ıc´ıch softwaru,˚ ktery´ se stal za-´ kladem a inspirac´ı pro mnoho dalsˇ´ıch obdobnych´ aplikac´ı, autorem je Piotr Wozniak. Vyvoj´ zapocalˇ jizˇ v roce 1985, kdy byl popsan´ prvn´ı SuperMemo algoritmus. Prvn´ı pocˇ´ıtacovˇ a´ implementace probehlaˇ v roce 1987 a vznikl tak SuperMemo 1.0., pro operacnˇ ´ı system´ DOS. V kvetnuˇ 1991 preˇ sloˇ Su- perMemo na komercnˇ ´ı bazi´ a o dva roky pozdejiˇ bylo predstavenoˇ Super- Memo 7.0. Tato verze umoznilaˇ vyuzitˇ ´ı zvuku˚ a obrazk´ u,˚ zarove´ nˇ se stala prvn´ı verz´ı pro operacnˇ ´ı system´ Windows. Nejaktualn´ ejˇ sˇ´ı verz´ı je Super- Memo z roku 2008, jedna´ se jizˇ o 14. verzi tohoto programu, ale je pouze pro Windows. Existuje i starsˇ´ı (2006) verze pro Palm OS a PocketPC (Win- dows Mobile) a take´ on-line verze.[14]

Obrazek´ 3.1: Ucenˇ ´ı v SuperMemu 2008 (prevzatoˇ z [28]).

5 3. UCˇ ´IC´IPROGRAMY

3.2 Anki

Dalsˇ´ı z programu˚ vyuzˇ´ıvaj´ıc´ıch opakovan´ ´ı s prodlevou vyvinuty´ Damie- nem Elmesem. Jedna´ se o open source program, ktery´ je zalozenˇ na algo- ritmu SuperMemo 2.0 s nekolikaˇ obmenami.ˇ Dosloˇ naprˇ´ıklad ke sn´ızenˇ ´ı moznˇ eho´ poctuˇ odpovedˇ ´ı na 4, dale´ byly definovany´ priority, v jakem´ po- radˇ ´ı se maj´ı kartickyˇ zobrazovat apod. Anki je dostupny´ pro Max OSX, Linux (Debian/Ubuntu/Fedora), Windows, iPod/iPhone, na Nokii (N770, N800, N810). Take´ Anki je v soucasnˇ e´ dobeˇ dostupna´ pomoc´ı weboveho´ rozhran´ı se kterym´ lze jeho lokaln´ ´ı verze synchronizovat. [3]

Obrazek´ 3.2: Ucenˇ ´ı v Anki.

AnkiDroid je open source alfa verze Anki pro OS Android, na ktere´ se usilovneˇ pracuje. Soucasnˇ a´ verze (0.5 alpha1) jizˇ experimentaln´ eˇ podporuje synchronizaci skrze Anki servery s desktopovym´ programem.[4]

6 3. UCˇ ´IC´IPROGRAMY

3.3 MnemoSyne

I v prˇ´ıpadeˇ MnemoSyne se tvurci˚ nechali inspirovat projektem SuperMemo. Puvodn˚ ´ı myslenkou,ˇ ktera´ vznikla v roce 2003, bylo poskytnut´ı alterna- tivy ke komercnˇ ´ımu projektu SuperMemo, ktery´ bylo moznˇ e´ vyuzˇ´ıt pouze na OS Windows. MnemoSyne je open source program naprogramovany´ v jazyku Python, d´ıky cemuˇ zˇ je dostupny´ jak pro Windows tak i Mac OSX a Linux. Aplikace je stejneˇ jako Anki zalozenˇ na algoritmu SuperMemo 2.0, s nekolikaˇ modifikacemi (delka´ intervalu, po kterem´ se maj´ı kartickyˇ znovu objevit, do jiste´ m´ıry nahodnost´ intervalu˚ apod.)[21]

Obrazek´ 3.3: Ucenˇ ´ı v MnemoSyne.

Do Mnemosyne existuje rozsˇ´ırenˇ ´ı Mnemogogo, ktere´ umozˇnujeˇ syn- chronizaci s aplikac´ı v mobilu. Nyn´ı vznika´ Mnemododo prˇ´ımo urcenˇ y´ pro Android umozˇnujˇ ´ıc´ı opakovan´ ´ı karticekˇ exportovanych´ pomoc´ı Mne- mododo. Ucenˇ e´ kartickyˇ jsou kop´ırovany´ z materskˇ e´ aplikace Mnemosyne na predemˇ zvoleny´ pocetˇ dn´ı dopredu.ˇ Naucenˇ e´ kartickyˇ v Androidu lze pote´ presunoutˇ zpetˇ pomoc´ı tohoto rozsˇ´ırenˇ ´ı, jako by se uciliˇ v hlavn´ı apli- kaci na pocˇ´ıtaci.ˇ [7]

7 3. UCˇ ´IC´IPROGRAMY

3.4 Smart.fm

Japonska´ spolecnostˇ Japan, Inc vytvorilaˇ komunitn´ı web iKnow! zameˇrenˇ y´ na ucenˇ ´ı anglictinyˇ pomoc´ı weboveho´ rozhran´ı. V roce 2008 se preloˇ zenˇ ´ım z japonstinyˇ stal dostupny´ pro cely´ svet.ˇ Na webu si lze vytva´retˇ vlastn´ı karticky,ˇ testy a ty pote´ sd´ılet s moznostˇ ´ı o nich diskutovat a hodno- tit. Dale´ je d´ıky propojen´ı s vetˇ sinouˇ v soucasnostiˇ nejobl´ıbenejˇ sˇ´ıch social-´ n´ıch s´ıt´ı moznˇ e´ zverejˇ novatˇ na nich svuj˚ pokrok v ucenˇ ´ı. K jestˇ eˇ vetˇ sˇ´ı m´ıreˇ interaktivity prispˇ ´ıva´ hra BrainSpeed postavena´ na principu odpov´ıdan´ ´ı ciˇ vyb´ eruˇ spravn´ e´ odpovediˇ v omezenem´ casovˇ em´ intervalu, ktera´ nab´ız´ı i moznostˇ vyzvat jineho´ uzivateleˇ na souboj. BrainSpeed je dostupny´ i skrze s´ıt’ Facebook. V kvetnuˇ 2009 byl web prejmenovˇ an´ na Smart.fm a je do- stupny´ i pro iPhone/iPod. [9, 32]

Obrazek´ 3.4: Ucenˇ ´ı v Smart.fm. Obrazek´ 3.5: BrainSpeed.

3.5 Dril

Svuj˚ vlastn´ı ucˇ´ıc´ı software s nazvem´ Dril vyvinula take´ Masarykova univer- zita. Dril vyuzˇ´ıva´ kartickovouˇ metodu, kdy uzivatelˇ dav´ a´ systemu´ zpetnouˇ vazbu, do jake´ m´ıry kartickuˇ ovlad´ a´ a ten pak pocˇ´ıta,´ kdy ma´ byt´ kartickaˇ opetˇ zobrazena. Software je prˇ´ıstupny´ vsemˇ uzivatelˇ um,˚ kterˇ´ı maj´ı prˇ´ıstup- ova´ prava´ do Informacnˇ ´ıho systemu´ Masarykovy univerzity. [8] Od roku 2004 maj´ı vyucujˇ ´ıc´ı MU v Informacnˇ ´ım systemu´ k dispozici tzv. Odpovednˇ ´ıky, interaktivn´ı testy, ktere´ je moznˇ e´ zprˇ´ıstupnit studentum˚ v nejruzn˚ ejˇ sˇ´ıch rezimechˇ (od procvicovacˇ ´ıch po zkouskovˇ e).´ Samotny´ Dril byl spustˇ enˇ v listopadu 2008 se zam´ eremˇ umoznitˇ kazdˇ emu´ studentu vy- tvorenˇ ´ı vlastn´ı optimaln´ ´ı ucebnˇ ´ı strategie. Pokud ucitelˇ vyuzˇ´ıva´ interak- tivn´ı testy, mu˚ zeˇ jejich obsah pomoc´ı jednoduche´ aplikace prevˇ est´ do dril- ove´ ucebnice.ˇ Dle udaj´ u˚ z roku 2009 bylo uzivateliˇ vytvorenoˇ jizˇ v´ıce nezˇ 72 ucebnicˇ a presˇ 1500 uzivatelˇ u˚ se v Drilu uciloˇ alesponˇ jednu karticku.ˇ

8 3. UCˇ ´IC´IPROGRAMY

Tvurc˚ um˚ Drilu se podariloˇ dosahnout´ vytvorenˇ ´ı komunity, ve ktere´ stu- denti ucebniceˇ v Drilu nejen vyuzˇ´ıvaj´ı, ale take´ je sami tvorˇ´ı. [8] Dril je zalozenˇ y´ na algoritmu SuperMemo 2.0. Priˇ vypo´ ctuˇ intervalu opetovnˇ eho´ zobrazen´ı kartickyˇ jsou zohlednenyˇ tyto parametry:

• zpetnˇ a´ vazba uzivateleˇ

• pocetˇ spatnˇ ych´ odpovedˇ ´ı predtˇ ´ım, nezˇ uzivatelˇ odpovedˇ elˇ spravn´ eˇ

• obt´ıznostˇ kartickyˇ

•p redchozˇ ´ı interval dane´ kartickyˇ

• skutecnˇ y´ interval zobrazen´ı [17]

Obrazek´ 3.6: Ucenˇ ´ı v Drilu

9 3. UCˇ ´IC´IPROGRAMY

3.6 Porovn´an´ıuˇc´ıc´ıchprogram ˚u

Nasleduj´ ´ıc´ı cˇast´ prace´ hodnot´ı vy´seˇ uvedene´ ucˇ´ıc´ı systemy.´

• SuperMemo

+ Program disponuje nejefektivnejˇ sˇ´ım ucˇ´ıc´ım algoritmem vyv´ıjenym´ jizˇ tem´ eˇrˇ 25 let, ze ktereho´ vychaz´ ´ı vetˇ sinaˇ dalsˇ´ıch existuj´ıc´ıch softwaru.˚ + SuperMemo disponuje nejobsahlej´ sˇ´ı databaz´ ´ı. + Je dostupny´ take´ v on-line verzi. − Nevyhodou´ je neprehlednostˇ celeho´ softwaru. − Program je moznˇ e´ spustit pouze pod OS Windows.

• Anki

+ Vyhodou´ je prehlednostˇ a uzivatelskˇ a´ prˇ´ıvetivost“ˇ programu. ” + Anki je moznˇ e´ spustit na OS Windows, MaxOS a Linux. + Nab´ız´ı take´ verze pro mobiln´ı telefony. V soucasnˇ e´ dobeˇ pouze pro iPhone, do budoucna vsakˇ take´ pro Android. + Je dostupny´ take´ v on-line verzi s moznostˇ ´ı synchronizace s desk- topovou verz´ı.

• MnemoSyne

+ Mnemosyne je moznˇ e´ spustit na OS Windows, MaxOS a Linux. + Velkou vyhodou´ je moznostˇ exportu karticekˇ vcetnˇ eˇ historie ucenˇ ´ı. + Disponuje verz´ı pro mobiln´ı telefony. V soucasnˇ e´ dobeˇ pouze pro iPhone a JavaME, do budoucna vsakˇ take´ pro Android. − Obsahlost´ ´ı databaze´ se nemu˚ zeˇ rovnat vy´seˇ uvedenym´ softwarum.˚

• Smart.fm

+ System´ je zalozenˇ na principu socialn´ ´ı s´ıteˇ a cele´ rozhran´ı je velmi interaktivn´ı. + Uzivatelskyˇ velmi pritaˇ zlivˇ e´ jsou zejmena´ hry jestˇ eˇ v´ıce usnadnujˇ ´ıc´ı proces ucenˇ ´ı. + Smart.fm disponuje obsahlou´ databaz´ ´ı karticek.ˇ − Uzivatelskˇ e´ rozhran´ı nen´ı prˇ´ılisˇ intuitivn´ı.

10 3. UCˇ ´IC´IPROGRAMY

• Dril

+ Uzivatelskˇ e´ rozhran´ı Drilu je velmi jednoduche´ a intuitivn´ı. + Rostouc´ı odborna´ komunita. − dostupny´ pouze pro osoby s prˇ´ıstupem do Informacnˇ ´ıho systemu.´ − neexistuje offline verze pro mobiln´ı telefony.

11 4 OS Android

Android je prvn´ı skutecnˇ eˇ otevrenˇ a´ a komplexn´ı platforma pro mobiln´ı ” zarˇ´ızen´ı. Obsahuje operacnˇ ´ı system,´ uzivatelskˇ e´ rozhran´ı a aplikace, vsechenˇ software pro spustˇ enˇ ´ı mobiln´ıho telefonu, ale bez vlastnickych´ prekˇ a´zek,ˇ ktera´ by branila´ inovaci.“ [29]

Andy Rubin, Director of Mobile Platforms, Google

4.1 Historie

V roce 2005 se spolecnostˇ Google rozrostla o v te´ dobeˇ neznamou´ firmu An- droid Inc., zabyvaj´ ´ıc´ı se vyvojem´ softwaru pro mobiln´ı telefony. Softwarova´ platforma Android, puvodn˚ eˇ vyv´ıjena´ Android Inc., tedy oficialn´ eˇ vznikla jizˇ pod spolecnostˇ ´ı Google. Ten se vsakˇ rozhodl cely´ software, vcetnˇ eˇ zdro- jovych´ kod´ u,˚ predatˇ sdruzenˇ ´ı Open Handset Alliance, ktere´ 5. listopadu 2007 oficialn´ eˇ predstaviloˇ novy´ open source software Android. Android je napsan´ v jazyce Java a je dale´ vyv´ıjen Open Handset Alliance. [11, 15, 39]

V Open Handset Alliance je v soucasnˇ e´ dobeˇ sdruzenoˇ 71 spolecnostˇ ´ı, ktere´ se daj´ı rozdelitˇ do petiˇ velkych´ skupin.[20]

1. Mobiln´ıoper´atoˇri: napr.ˇ T-Mobile, Telefonica,´ Vodafone, China Telecommunications

2. Vyrobci´ mobiln´ıchzaˇr´ızen´ı: napr.ˇ Acer, ASUSTeK, Dell, HTC, LG, Garmin, Motorola, Sharp

3. Vyrobci´ ˇcip˚u: napr.ˇ ARM, Atheros, Intel, NVIDIA, Qualcomm, Synaptics

4. Spoleˇcnostivyv´ıjej´ıc´ısoftware: napr.ˇ eBay, Google, Myriad, PacketVideo, SkyPop, SVOX

5. Obchodn´ıspoleˇcnosti: napr.ˇ Borqs, SQLStar, TAT, Teleca AB, Wind River

Jejich spolecnˇ ym´ c´ılem je vytva´ret,ˇ vylepsovatˇ a poskytovat inovace pro mobiln´ı zarˇ´ızen´ı otevrenouˇ formou tak, aby byly rychle a snadno dostupne.´ [15]

12 4. OS ANDROID

Od sveho´ vydan´ ´ı proselˇ Android radouˇ aktualizac´ı. Android 1.1 z unora´ 2009 byl prvn´ı verz´ı pouzitouˇ v mobiln´ım telefonu. T-Mobile G1 se tak stal vubec˚ prvn´ım zarˇ´ızen´ım, na kterem´ byl software pouzit.ˇ Tabulka 4.1 po- skytuje prehledˇ vsechˇ verz´ı Androidu, datech jejich vydan´ ´ı a aktualn´ ´ıho pod´ılu jednotlivych´ verz´ı. Z tabulky lze vycˇ´ıst, jakym´ obrovskym´ tempem jsou vydav´ any´ nove´ verze. Toto tempo bylo Googlu vycˇ´ıtano´ pro prˇ´ılisnouˇ roztrˇ´ıstˇ enostˇ verz´ı, cozˇ je pro vyvoj´ a´reˇ problematicke.´ Jako odpoved’ je jizˇ pripravenaˇ a neverejnˇ eˇ se testuje verze Android 2.2, ktera´ by melaˇ do bu- doucna tento neduch vyreˇ sit.ˇ Jednak je jadro´ systemu´ za nejbourlivˇ ejˇ sˇ´ım vyvojem´ (tabulka 4.2) a hlavneˇ by meloˇ doj´ıt k oddelenˇ ´ı vestavenˇ ych´ apli- kac´ı. T´ım se zarucˇ´ı, zeˇ pokud bude vydana´ nova´ verze naprˇ´ıklad spravce´ kontaktu,˚ jednoduseˇ se stahne´ aktualizace tohoto spravce´ a nen´ı potrebaˇ cekatˇ na novou verzi celeho´ systemu.´ [1]

Verze Revize Datum vydan´ ´ı Verze API Pod´ıl1 Android 1.0 1 2008 za´rˇ´ı 1 Android 1.0 2 2008 listopad 1 Android 1.1 1 2009 unor´ 2 0.1% Android 1.5 1 2009 duben 3 Android 1.5 2 2009 kvetenˇ 3 34.1% Android 1.5 3 2009 cervenecˇ 3 Android 1.6 1 2009 za´rˇ´ı 4 Android 1.6 2 2009 prosinec 4 28.0% Android 2.0 1 2009 rˇ´ıjen 5 0.2% Android 2.0.1 1 2009 prosinec 6 0.4% Android 2.1 1 2010 leden 7 37.2% Android 2.2 1 2010 kvetenˇ 8

Tabulka 4.1: Prehledˇ jednotlivych´ verzi OS Android [30, 31]

Verze API 3 4 5 6 7 8 Pocetˇ zmenˇ 1150 531 969 18 118 733 Velikost zmenyˇ 4.33 % 2.45 % 2.16 % 0.01 % 0.48 % 5.7 %

Tabulka 4.2: Statistika zmenˇ mezi verzemi API [5]

Jedna z hlavn´ıch aplikac´ı v systemu´ je Android Market poskytuj´ıc´ı jed- notny´ prˇ´ıstup k aplikac´ım a hram,´ ktere´ lze snadno stahnout´ a nainstalovat.

1. Pod´ıl je pocˇ´ıtan´ pomeremˇ zarˇ´ızen´ı prˇ´ıstupuj´ıc´ıch do Android Marketu v obdob´ı 14 dnu.˚ Data jsou z 17. kvetnaˇ 2010

13 4. OS ANDROID

Paradoxneˇ samotne´ vyhledav´ an´ ´ı aplikace, pokud neznate´ jmeno,´ je pone-ˇ kud neprehlednˇ e.´ Od softwaroveho´ giganta, jehozˇ hlavn´ı domenou´ je vy- hledav´ an´ ´ı je to ostuda. K neprehlednostiˇ vsakˇ prispˇ ´ıva´ uctyhodn´ y´ pocetˇ aplikac´ı, ktery´ v soucasnostiˇ prekraˇ cujeˇ 55 000 programu,˚ z toho je 40,2 % placenych.[2]´

4.2 Architektura

Zakladn´ ´ımi stavebn´ımy bloky architektury androidu je upravene´ Linuxove´ jadro,´ jadro´ Androida tvorenˇ e´ virtualn´ ´ım strojem Dalvik s jeho knihovnami a nativn´ı knihovny pro aplikacnˇ ´ı ramec´ i pro samotne´ zakladn´ ´ı aplikace. [13, 6, 22, 19]

Obrazek´ 4.1: Architektura systemu´ Android.[37]

4.2.1 J´adro

Android beˇzˇ´ı na Linuxovem´ jad´ reˇ verze 2.6, jenzˇ obstarav´ a´ zakladn´ ´ı sys- temov´ e´ sluzbyˇ jako zabezpecenˇ ´ı, sprava´ pameti,ˇ sprava´ procesu,˚ s´ıt’ a ovla- daceˇ vsechˇ vnitrnˇ ´ıch senzoru˚ a komponent. Kernel rovneˇzˇ zprostredkovˇ av´ a´ vrstvu mezi hardwarem a vsemiˇ aplikacemi, ktere´ tak k nemuˇ pristupujˇ ´ı presˇ API. Vsechnyˇ aplikace jsou spustˇ enˇ e´ jako proces v Linuxu, avsakˇ ve sve´

14 4. OS ANDROID vlastn´ı instanci virtualn´ ´ıho stroje Dalvik, t´ım padem´ jsou izolovany´ od ostat- n´ıch aplikac´ı. Aplikace jsou psany´ v jazyce Java“. Presnˇ ejiˇ v jazyce, ktery´ ” je presnˇ eˇ stejny´ jako jazyk Java, ale oficialn´ eˇ to Java od Sunu nen´ı. Dal- vik pouzˇ´ıva´ svuj˚ vlastn´ı bytecode, ktery´ je vsakˇ plneˇ kompatibiln´ı s Javou. T´ımto elegantn´ım reˇ senˇ ´ım Google zajistil moznostˇ vytva´retˇ uzavrenˇ e´ apli- kace pro tuto platformu. A to bez povinnosti zverejˇ novatˇ jejich kod´ jako je to nutne´ pro aplikaci postavenou na mobiln´ı Javeˇ bez zakoupene´ licence od Sunu. Nen´ı to vsakˇ jediny´ duvod.˚ Dalvik je stejneˇ jako jadro´ samotne´ optimalizovano´ pro mobiln´ı zarˇ´ızen´ı. Aplikace jsou kompilovany´ spolecnˇ eˇ se vsemiˇ svymi´ daty do bal´ıku s prˇ´ıponou .apk ve kterem´ jsou distribuovany´ jako jediny´ soubor. Trˇ´ıdy javy jsou v nemˇ nejdrˇ´ıve kompilovany´ na .class a .jar a pote´ nastupuje DX nastroj´ od Googlu, ktery´ je prekompilujeˇ do souboru s prˇ´ıponou .dex urcenˇ eho´ prˇ´ımo pro jadro´ Dalvik. Nav´ıc nekomprimovany´ soubor .dex je d´ıky ruzn˚ ym´ optimalizac´ım (naprˇ´ıklad sd´ılen´ı konstant) o v´ıc jak polovinu mensˇ´ı nezˇ stejny´ kod´ v komprimovanem´ jaru. [18, 6, 37, 26]

4.2.2 Nativn´ıknihovny

Dalsˇ´ı soucˇast´ ´ı achitektury Androida jsou C/C++ knihovny pouzˇ´ıvane´ ruz-˚ nymi´ komponentami systemu,´ jako je naprˇ´ıklad:

• Media – podporuj´ıc´ı praci´ s obrazky,´ prehrˇ av´ an´ ´ı a nahrav´ an´ ´ı videa ve vetˇ sinˇ eˇ beznˇ ych´ formatech´ jako naprˇ´ıklad MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

• LibWebCore – engine pro webovy´ prohl´ızeˇ cˇ

• 3D knihovna – implementuj´ıc´ı zakladn´ ´ı API 1.0 OpenGL ES

• SQLite – nastroj´ pro spravu´ relacnˇ ´ıch databaz´ ´ı [13, 6, 22, 19]

4.2.3 Aplikaˇcn´ır´amec

Aplikace v Androidu jsou tvorenyˇ ctyˇ rmiˇ zakladn´ ´ımy komponenty. Ne vse-ˇ chny aplikace potrebujˇ ´ı n´ızeˇ uvedene,´ ale vzdyˇ se bude jednat o jejich kom- binaci. [13, 6, 22, 19]

• Activities Je zakladem´ aplikace, pokud ma´ m´ıt uzivatelskˇ e´ rozhran´ı. Kazdˇ e´ uzi-ˇ vatelske´ rozhran´ı v aplikaci je rozsˇ´ırenˇ ´ım teto´ trˇ´ıdy a je zodpovednˇ e´ za odezvu uzivateli.ˇ

15 4. OS ANDROID

• Broadcast receivers Je komponenta prijˇ ´ımaj´ ´ıc´ı systemov´ e´ zpravy´ a vytva´rejˇ ´ıc´ı reakce na ne.ˇ Reakc´ı mu˚ zeˇ byt´ spustˇ enˇ ´ı Activity nebo informovan´ ´ı uzivateleˇ po- moc´ı NotificationManager, naprˇ´ıklad o stazenˇ ych´ datech. Zpravy´ (Intents) informuj´ı naprˇ´ıklad o vyjmut´ı SD karty, prˇ´ıchoz´ı SMS ciˇ ho- voru.

• Content providers Preferovana´ moznostˇ ke sd´ılene´ dat mezi aplikacemi je vyuzitˇ ´ı Con- tent Providers jenzˇ je zodpovednˇ y´ i za jejich uklad´ an´ ´ı a z´ıskav´ an´ ´ı. Data mohou byt´ ulozenaˇ naprˇ´ıklad v SQLite databazi´ ciˇ jako soubor.

• Services Sluzbaˇ je kod´ bezˇ´ıc´ı na pozad´ı bez uzivatelskˇ eho´ rozhran´ı. Jde napr.ˇ o prehrˇ av´ an´ ´ı hudby, stahovan´ ´ı ciˇ nejakˇ y´ dele´ trvaj´ıc´ı vypo´ cet.ˇ Vy´seˇ uvedene´ komponenty maj´ı kratkou´ zivotnostˇ a mohou byt´ ukoncenyˇ kdykoliv, naopak sluzbyˇ jsou navrzenyˇ pro dlouhodoby´ behˇ nezavisle´ na ostatn´ıch komponentach.´

4.2.4 Aplikace Zakladn´ ´ı aplikace jako naprˇ´ıklad program pro pos´ılan´ ´ı a ctenˇ ´ı SMS, email- ovy´ klient, program pro spravu´ kontaktu,˚ internetovy´ prohl´ızeˇ c,ˇ kalenda´r,ˇ nastaven´ı prostredˇ ´ı aj. V Androidu nen´ı d´ıky Intent zprav´ am´ o udalostech´ problem´ nahradit tyto standardneˇ dodavan´ e´ aplikace svymi´ vlastn´ımi, ciˇ od tretˇ ´ıch stran. V Androidu jsou si vsechnyˇ aplikace rovne.´ [13, 6, 22, 19]

4.2.5 Dalˇs´ıspecifika

Kazdˇ a´ aplikace mus´ı m´ıt definovan´ soubor AndroidManifest. V tomto sou- boru ve formatu´ XML jsou definovany´ vsechnyˇ komponenty a jejich para- metry. Jde na naprˇ´ıklad o nazev´ trˇ´ıdy obsluhujic´ı typ komponenty, pouzitˇ e´ extern´ı knihovny, nazev´ aplikace a bal´ıku ve kterem´ je, minimaln´ ´ı verze Android API, ktera´ je pozadovˇ ana.´ Dale´ jsou zde definovana´ opravn´ enˇ ´ı aplikac´ı ke zdrojum.˚ Tato opravn´ enˇ ´ı jsou popsana´ jedinecnˇ ym´ retˇ ezcem,ˇ naprˇ´ıklad android.permission.READ SMS opravnujˇ ´ıc´ı aplikaci ke ctenˇ ´ı textovych´ zprav.´ System´ zna´ 110 druhu˚ povolen´ı a je moznˇ e´ definovat vlast- n´ı opravn´ enˇ ´ı ke zprˇ´ıstupnenˇ ´ı komponent, zdroju,˚ zas´ılanych´ zprav´ (Intents) apod. ostatn´ım aplikac´ım. [6, 19]

16 4. OS ANDROID

Activity1 mu˚ zeˇ nabyvat´ trechˇ stavu.˚ Zaprve´ mu˚ zeˇ byt´ v popredˇ ´ı obra- zovky, cozˇ znamena,´ zeˇ je hlavn´ı a aktivn´ı (pripravenˇ a´ pro odezvu uzivate-ˇ le). Zadruhe´ jej´ı cˇast´ mu˚ zeˇ byt´ prekrytaˇ nekterouˇ jinou, ktera´ se tak stav´ a´ hlavn´ı. Prechodemˇ do tohoto stavu mu˚ zeˇ byt´ puvodn˚ ´ı Activity kdykoli ukoncena,ˇ aby uvolnila vsechnyˇ sve´ prostredky,ˇ ktere´ se stavaj´ ´ı nedostat- kovymi´ pro nekterouˇ jinou. Existuje vsakˇ i opacnˇ a´ moznostˇ a to, zeˇ bude znovu povolana´ do popredˇ ´ı. Tretˇ ´ıho stavu nabyv´ a´ ve chv´ıli, kdy je kom- pletneˇ zast´ınenaˇ jinou Activity a jej´ı obrazovka jizˇ nen´ı zobrazena uzivateli.ˇ Stale´ si vsakˇ udrzujeˇ svuj˚ stav a nekterˇ e´ informace (napr.ˇ konstanty, spo- jen´ı s databaz´ ´ı, ale jizˇ ukoncuje).ˇ Z tohoto stavu mu˚ zeˇ byt´ pouze definitivneˇ odstranenaˇ nebo znovu zavolana´ na popredˇ ´ı obrazovky, ale vsechnyˇ sve´ zdroje si mus´ı znovu nahrat.´ Pro lepsˇ´ı prehlednostˇ obrazek´ 4.2.

Obrazek´ 4.2: Schema´ zivotnˇ ´ıho cyklu Activity.[6]

1. Jak bylo uvedeno v kapitole 4.2.3, Activity je jednotka staraj´ıc´ı se o zobrazen´ı uzivatelskˇ eho´ rozhran´ı.

17 5 Implementace

Tato kapitola se zabyv´ a´ popisem vyvojov´ eho´ prostredˇ ´ı, strukturou vytvo- renˇ e´ aplikace, popisem trˇ´ıd, databaze´ a pouzitˇ eho´ ucˇ´ıc´ıho algoritmu.

5.1 Vyvojov´eprostˇred´ı´

Aplikace byla vyv´ıjena v jazyce Java na platformeˇ Android 2.0, ktery´ byl v dobeˇ zacˇatku´ implementace nejaktualn´ ejˇ sˇ´ı. Vyuzˇ´ıva´ tedy API 5. Samotna´ implementace prob´ıhala ve vyvojov´ em´ prostredˇ ´ı Eclipse rozsˇ´ırenˇ em´ o An- droid Development Tools.

5.2 Struktura aplikace

Aplikace s nazvem´ KeepIn obsahuje 31 trˇ´ıd ve dvou bal´ıc´ıch, 31 definic vertikaln´ ´ıho uzivatelskˇ eho´ rozhran´ı a 2 horizontaln´ ´ıho, texty v anglicke´ i ceskˇ e´ verzi a samozrejmˇ eˇ AndroidManifest.

5.2.1 Bal´ık cz.muni.fi.xpetrak.bc

Tento bal´ık je tvorenˇ 15 trˇ´ıdami. U vsechˇ trˇ´ıd je dodrzenaˇ filozofie zivotnˇ ´ıho cyklu a kazdˇ a´ vyuzˇ´ıva´ vlakna´ pro dlouhotrvaj´ıc´ıc´ı operace. Po dobu trvan´ ´ı techtoˇ operac´ı je vzdyˇ uzivateliˇ zobrazen patriˇ cnˇ y´ dialog a o up´ eˇsnˇ em´ ciˇ neusp´ eˇsnˇ em´ dokoncenˇ ´ı je informovan´ pomoc´ı nastroje´ Toast. Kazdˇ a´ Acti- vity si priˇ svem´ vzniku zavola´ instanci DatabaseManager (viz kapitola 5.2.2) a predˇ svym´ zanikem´ ji uvoln´ı.

KeepIn

Je hlavn´ı trˇ´ıda rozsiˇ rujˇ ´ıc´ı Activity a staraj´ıc´ı se o hlavn´ım menu (viz obr. A.1). D´ıky vlastn´ı implementaci adapteru´ MainMenuRowAdapter, ktery´ rozsiˇ rujeˇ BaseAdapter, je menu s obrazky.´ MainMenuRowAdapter vy- uzˇ´ıva´ trˇ´ıdu MainMenuRow, kde je definovan´ vzhled rˇadku.´

CatBookList

Trˇ´ıda rozsiˇ rujeˇ ExpandableListActivity, co ji umozˇnujeˇ zobrazovat seznam kategori´ı s podseznamem ucebnicˇ (viz obr. A.3). Priˇ vytvorenˇ ´ı Acti- vity se spust´ı vlakno,´ ktere´ tento seznam nahraje a predˇ a´ MyListAdapter

18 5. IMPLEMENTACE rozsiˇ rujˇ ´ıc´ı MyExpandableListAdapter (viz 5.2.2). T´ım je definovam´ ob- sah. Usporˇad´ an´ ´ı pro kategorii je definovano´ v catbooklist group, pro ucebniciˇ v souboru catbooklist child.Dale´ ma´ trˇ´ıda jednotliva´ vlakna´ pro akce dle druhu nab´ıdek a dialogu˚ (napr.ˇ pridˇ an´ ´ı, smazan´ ´ı ucebnice,ˇ viz prˇ´ıloha A). Priˇ vyb´ eruˇ ucebniceˇ je jej´ı jmeno´ a identifikacnˇ ´ı cˇ´ıslo vlozenoˇ do Intent pro Activity CardsList, ktery´ je pote´ spustˇ en.ˇ

CardsList

Trˇ´ıda je podobna´ trˇ´ıdeˇ CatBookList, ale obsahem seznamu jsou lekce a je- jich kartickyˇ (viz obr. A.4). Tomu je uzpusoben˚ vzhled, ktery´ je pro lekce definovan´ v cardslist group a pro kartickyˇ v cardslist child.Priˇ vyb´ eruˇ kartickyˇ je vyuzitaˇ trˇ´ıda CardView, ktere´ je predˇ ana´ fronta obsa- huj´ıc´ı pouze tuto kartickuˇ a prˇ´ıznak nastavuj´ıc´ı prohl´ızecˇ ´ı rezim.ˇ Pote´ je spustˇ enaˇ nova´ Activity.

CardView

Trˇ´ıda rozsiˇ rujˇ ´ıc´ı Activity se stara´ o zobrazen´ı kartickyˇ (viz obr. A.8). Priˇ vytvorenˇ ´ı zjist´ı v jakem´ rezimuˇ ma´ operovat (pouze zobrazit kartickuˇ a de- aktivovat ucenˇ ´ı, ucenˇ ´ı na zkouskuˇ a normaln´ ´ı ucenˇ ´ı). Dale´ zjist´ı velikost prodlevy predˇ zobrazen´ım kartickyˇ z drilu, o jakou ucebniciˇ se jedna´ a se- znam identifikator´ u˚ karticekˇ k ucenˇ ´ı. Ve vlakn´ eˇ napln´ı PriorityQueue kartickamiˇ a prvn´ı zobraz´ı v uzivatelskˇ em´ rozhran´ı. Rozhran´ı je uzp´ uso-˚ beno i pro horizontaln´ ´ı zobrazen´ı. Pouzitˇ y´ princip ucenˇ ´ı je vysvetlenˇ v ka- pitole 5.2.4.

PreferencesMenu

Trˇ´ıda rozsiˇ rujeˇ PreferenceActivity. Jej´ı vzhled a zakladn´ ´ı nastaven´ı je popsano´ v souboru xml.preferences. Obsahuje staticke´ metody pro zjistˇ enˇ ´ı aktualn´ ´ıho nastaven´ı a dveˇ doplnkovˇ e´ metody pro vytvorenˇ ´ı testo- vac´ı sady karticekˇ a pro smazan´ ´ı vsechˇ tabulek.

LearnMenu

Trˇ´ıda je postavena na zakladu´ CatBookList s uzpusoben˚ ym´ vzhledem. Jej´ı obsah je nahran´ ve vlaknu´ z databaze´ pomoc´ı vnorenˇ ych´ cyklu˚ zjistˇ ’uj´ı- c´ıch aktualn´ ´ı poctyˇ neucenˇ ych´ aktivn´ıch karticekˇ pro jednotlive´ ucebniceˇ a kategorie. Priˇ vyb´ eruˇ ucebniceˇ je do Intent pro SeekDialog vlozenaˇ

19 5. IMPLEMENTACE informace o nazvu´ ucebniceˇ a seznam identifikator´ u˚ karticek,ˇ ktere´ jsou urcenyˇ k ucenˇ ´ı. Pote´ je spustˇ enaˇ nova´ Activity SeekDialog.

SeekDialog

SeekBar.OnSeekBarChangeListener je implementovan´ t´ımto rozsˇ´ıre-ˇ n´ım Activity. Podle vzhledu definovaneho´ v souboru seek dialog vy- pada´ Activity jako na obrazku´ A.7. Tato trˇ´ıda ma´ za ukol´ umoznitˇ sn´ızenˇ ´ı poctuˇ karticekˇ k ucenˇ ´ı. Po vyb´ eruˇ jsou identifikatory´ karticekˇ nad tento pocetˇ vyrazenyˇ z fronty a ta je predˇ ana´ Intent pro CardView. Pote´ je spus-ˇ tenaˇ nova´ Activity CardView.

RevisionMenu

Tato trˇ´ıda je obdobou LearnMenu s t´ım rozd´ılem, zeˇ jsou pocˇ´ıtany´ karticky,ˇ ktere´ maj´ı naplanovan´ e´ ucenˇ ´ı do konce aktualn´ ´ıho dne. Priˇ vyb´ eruˇ ucebniceˇ je vynechan´ krok se SeekDialog a seznam vsechˇ identifikator´ u˚ karticekˇ je predˇ an´ Intent pro Activity CardView, ktere´ je nastaven prˇ´ıznak pro opa- kovan´ ´ı ucenˇ ´ı a je spustˇ ena.ˇ

ImportExportWidget

Rozsiˇ rujeˇ TabActivity a pridˇ av´ a´ zalo´ zkyˇ ImportMenu a ExportMenu.

ExportMenu

Trˇ´ıda rozsiˇ rujeˇ ListActivity. Jednotlive´ polozkyˇ seznamu jsou defino- vane´ v array.export type list. Prvn´ı spoustˇ ´ı Activity FilesMenu. Ostatn´ı polozkyˇ nastav´ı typ vlakna´ dle sveho´ urcenˇ ´ı a spust´ı ho. Toto vlakno´ vytva´rˇ´ı soubory, jejichzˇ struktura je popsana´ v prˇ´ıloze B. Vlakna´ vytva´rejˇ ´ıc´ı XML vyuzˇ´ıvaj´ı XmlSerializer.Uzivatelˇ je vzdyˇ informovan´ o aktualn´ ´ım prub˚ ehuˇ exportu pomoc´ı progres dialogu. Soubor je zapisovan´ na SD kartu (povolen´ı viz 5.2.3).

ImportMenu

Tato trˇ´ıda je take´ rozsˇ´ırenˇ ´ım ListActivity. Jednotlive´ polozkyˇ jsou de- finovane´ v array.import type list. Akce k nim jsou priˇ razenyˇ podle poradˇ ´ı. Vsechnyˇ polozkyˇ spoustˇ ´ı Activity FilesMenu s prˇ´ıznakem pro se- lekci typu souboru.˚ Podle druhu vybrane´ polozkyˇ je nastavena pozadovanˇ a´ prˇ´ıpona souboru. Podporovane´ typy souboru˚ jsou popsany´ v prˇ´ıloze B.

20 5. IMPLEMENTACE

FilesMenu vrat´ ´ı cestu k vybranemu´ souboru, ktera´ je predˇ ana´ vlaknu.´ Vsechnaˇ vlakna´ si vytva´rejˇ ´ı nad databaz´ ´ı transakci. Kazdˇ y´ nactenˇ y´ element je z duvodu˚ uspory´ pametiˇ rovnou uklad´ an´ do databaze.´ Pokud import selze,ˇ at’ uzˇ z duvodu˚ zmenyˇ stavu Activity nebo chybnemu´ formatu´ sou- boru je transakce vracena.´

FilesMenu

Toto rozsˇ´ırenˇ ´ı ListActivity ma´ dva rezimy.ˇ Oba vypisuj´ı adresa´reˇ a sou- bory. Defaultn´ı rezimˇ jenom ty, do kterych´ ma´ pravo´ zapisu.´ Filtrovac´ı vypi- suje pouze ty, ktere´ ma´ pravo´ cˇ´ıst, a ktere´ maj´ı prˇ´ıponu shodnou s prˇ´ıponou predanouˇ v Intent. Vybran´ ´ı polozkyˇ v defaltn´ım rezimuˇ po potvrzen´ı di- alogu smazeˇ soubor. Ve filtrovac´ım rezimuˇ vrat´ ´ı Activity jako svuj vysledek´ cestu k vybranemu´ souboru.

Widget

Komponenta Widget rozsiˇ rujˇ ´ıc´ı AppWidgetProvider si priˇ svem´ vzniku registruje sluzbuˇ WidgetService, ktera´ kazdˇ e´ ctyˇ riˇ hodiny aktualizuje pocetˇ karticekˇ naplanovan´ ych´ k ucenˇ ´ı do konce aktualn´ ´ıho dne.

5.2.2 Pomocny´ bal´ık cz.muni.fi.xpetrak.bc.utils

Tento bal´ık je tvorenˇ Java Bean jednotlivych´ druhu˚ entit, nastroji´ pro spravu´ databaze,´ ucˇ´ıc´ım algoritmem, analyzatory´ souboru˚ a pomocnymi´ nastroji´ pro seznamy polozekˇ a nastroji´ pro praci´ s casem,ˇ celkem 16 trˇ´ıd.

Card, Lesson, Book, Category

Java Bean trˇ´ıdy jednotlivych´ entit. Kazdˇ a´ trˇ´ıda je rozsˇ´ırenˇ ´ım trˇ´ıdy Item.

CardsTable, LessonsTable, BooksTable, CategoriesTable

Kazdˇ a´ Java Bean ma´ svoji neverejnouˇ trˇ´ıdu spravuj´ıc´ı jej´ı tabulku (viz obr. 5.1) a metody pro dotazy nad touto tabulkou. Kazdˇ e´ metodeˇ je predˇ ana´ instance SQLiteDatabase, nad kterou pracuje.

21 5. IMPLEMENTACE

DatabaseManager

Jedna´ se o verejnˇ y´ singleton s l´ınou inicializac´ı1 poskytuj´ıc´ı prˇ´ıstup k me- todam´ pro dotazy nad vsemiˇ tabulkami. Obsahuje instance CardsTable, LessonsTable, BooksTable, CategoriesTable a je zodpovednˇ y´ za vytvorenˇ ´ı a prˇ´ıpadnou aktualizaci databaze.´

Utils

Trˇ´ıda poskytuj´ıc´ı staticke´ nastroje´ pro praci´ s casemˇ a parser pro soubory typu csv.

KeepInXmlHandler a XmlHandler

Prvneˇ jmenovana´ se stara´ o parsovan´ ´ı XML dokumentu˚ aplikace KeepIn obsahuj´ıc´ı kartickyˇ a druha´ o XML dokumenty Mnemosyne. XML typ Mne- mosyne jsem si vybral na ukazku´ importu z jineho´ ucˇ´ıc´ıho systemu.´

MemoryCore

Trˇ´ıdu s jedinou verejnouˇ metodou implementuj´ıc´ı ucˇ´ıc´ı algoritmus (viz 5.2.5) a nastavuj´ıc´ı karticceˇ proces ucenˇ ´ı (interval opakovan´ı, obt´ıznostˇ apod.).

Item a MyExpandableListAdapter

Abstraktn´ı trˇ´ıda Item ma´ pouze getter/setter metody pro jedinou pro- menouˇ id. Tuto trˇ´ıdu vyuzˇ´ıva´ univerzaln´ ´ı MyExpandableListAdapter rozsiˇ rujˇ ´ıc´ı BaseExpandableListAdapter.T´ım tento adapter´ umoznujeˇ vytvoritˇ libovolny´ seznam obsahuj´ıc´ı jako prvky Card, Lesson, Book nebo Category.

5.2.3 Pouzit´eopr´avnˇen´ıˇ

V aplikaci je vyuzˇ´ıvano´ zapisu´ a ctenˇ ´ı z pametovˇ e´ karty, je tedy vyzadovˇ ano´ nasleduj´ ´ıc´ı povolen´ı: android.permission.WRITE EXTERNAL STORAGE

1. Singleton je inicializovan´ azˇ priˇ prvn´ım pozadavkuˇ a je synchronizovan´ pro v´ıcevlaknov´ y´ prˇ´ıstup.

22 5. IMPLEMENTACE

5.2.4 Pouzitˇ y´ postup uˇcen´ı Postup priˇ ucenˇ ´ı se rˇ´ıd´ı nasleduj´ ´ıc´ımi pravidly: 1. Pokud se nejedna´ o rezimˇ ucenˇ ´ı na zkousku,ˇ jsou kazdˇ e´ karticceˇ ak- tualizovany´ jej´ı udaje´ o ucenˇ ´ı (dle algoritmu viz 5.2.5). 2. Pokud se jedna´ o kartickuˇ z drilu (je jizˇ zobrazena podruhe),´ je bez ohledu na odpovedˇ ’ vyrazenaˇ z fronty drilu. 3. Pokud se jedna´ o novou kartickuˇ ohodnocenou kladneˇ (uzivatelˇ si ji pamatuje), je vyrazenaˇ z fronty ucenˇ ych.´ 4. Pokud se jedna´ o novou kartickuˇ ohodnocenou zaporn´ e,ˇ je preˇ razenaˇ do fronty k drilu a je zapamatovano´ poradˇ ´ı prˇ´ıstˇ ´ıho zobrazen´ı. 5. Pokud je fronta s kartickamiˇ k ucenˇ ´ı prazdn´ a,´ berou se kartickyˇ z fronty drilu bez ohledu na rozestupy. 6. Pokud je fronta s kartickamiˇ k ucenˇ ´ı i fronta drilu prazdn´ a,´ je ucenˇ ´ı dokonceno.ˇ

5.2.5 Pouzitˇ y´ algoritmus V aplikaci KeepIn je pouzitˇ zakladn´ ´ı algoritmus SuperMemo2 (viz 5.1). Tento algoritmus byl zvolen pro svuj˚ pomerˇ naro´ cnostiˇ implementace a jeho efektivnoti. Pokrocilˇ e´ algoritmy maj´ı lepsˇ´ı presnostˇ odhadu okamzikuˇ za- pomenut´ı ucenˇ e´ informace. Jejich efektivnost ale funguje pouze za predpo-ˇ kladu, zeˇ si student v danem´ okamzikuˇ informaci zopakuje. Pokud budeme pocˇ´ıtat s moznostˇ ´ı trˇ´ıdenn´ı prodlevy, jsou si algoritmy v pocˇatc´ ´ıch ucenˇ ´ı velice podobne.´ Po delsˇ´ı dobeˇ algoritmus SM2 zbytecnˇ eˇ zateˇzujeˇ ucenceˇ jizˇ naucenˇ ymi´ informacemi. Funkce intervalu pro naucenouˇ informaci ma´ ovsemˇ exponencialn´ ´ı prub˚ eh,ˇ a proto zateˇzovˇ an´ ´ı nebude tak castˇ e.´ Interval pro prvn´ı opakovan´ı je ve vychoz´ ´ım nastaven´ı zvolen po jed- nom dni. Pro druhe´ opakovan´ ´ı kartickyˇ je interval po sestiˇ dnech. Tyto prvn´ı dva intervaly ma´ uzivatelˇ moznostˇ zmenitˇ v nastaven´ı.

Listing 5.1: Algoritmus SM2 I(1):=1 // I - interval I(2):=6 // EF - obtı´znostˇ for n>2: I(n):=I(n-1)*EF // q - ohodnocenı´

EF’:=EF+(0.1-(5-q)*(0.08+(5-q)*0.02)) If(EF’<1.3) then EF’:=1.3

23 5. IMPLEMENTACE

5.2.6 Sch´emadatab´aze Databaze´ keepin.db je tvorenaˇ tabulkami Categories, Books, Lessons a Cards viz obrazek´ 5.1.

Obrazek´ 5.1: Schema´ databaze´ aplikace KeepIn.

24 6 Z´avˇer

C´ılem teto´ bakala´rskˇ e´ prace´ bylo porovnan´ ´ı vlastnost´ı soucasnˇ ych´ vybra- nych´ ucˇ´ıc´ıch systemu´ a naprogramovan´ ´ı vlastn´ıho systemu´ pro operacnˇ ´ı system´ Android. Pozadavkyˇ na zakladn´ ´ı funkcionalitu pro ucenˇ ´ı s prodle- vami bakala´rskˇ a´ prace´ presahujeˇ o moznostˇ exportu a editace cele´ struk- tury ucebnˇ ´ıch material´ u.˚ Nav´ıc obsahuje tzv. Widget pro zobrazovan´ ´ı ak- tualn´ ´ıho poctuˇ naplanovan´ ych´ karticekˇ k ucenˇ ´ı a dale´ nab´ız´ı moznostˇ opa- kovan´ ´ı jednotlivych´ ucebnicˇ predˇ zkouskouˇ bez vlivu na jejich postup v uce-ˇ n´ı. Tuto vlastnost jsem postradal´ v ostatn´ıch systemech.´ Prioritizace od- povezenˇ ych´ otazek´ byla uskutecnˇ enaˇ pomoc´ı algoritmu SuperMemo2.

Pokracovˇ an´ ´ı tohoto projektu mu˚ zeˇ vest´ nekolikaˇ smery:ˇ

• Rozsˇ´ırenˇ ´ı moznostˇ ´ı importu a exportu o soubory jinych´ ucˇ´ıc´ıch sys- tem´ u˚ stavu ucenˇ ´ı jednotlivych´ karticek.ˇ

•P ridˇ an´ ´ı podpory pro kartickyˇ s multimedialn´ ´ım obsahem (zvuky, ob- razky,´ formatov´ an´ ´ı apod.).

• Zatraktivnenˇ ´ı procesu ucenˇ ´ı (inspirac´ı mu˚ zeˇ byt´ hra BrainSpeed sys- temu´ Smart.fm).

•P redˇ elˇ an´ ´ı DatabaseManager na sluzbuˇ ciˇ vyuzˇ´ıt´ı ContenProvider.

•P ridˇ an´ ´ı napov´ edyˇ s vysvetlenˇ ´ım jednotlivych´ kroku˚ a moznostˇ ´ı.

• Vyuzitˇ ´ı moznostˇ ´ı rozpoznav´ an´ ´ı a syntezy´ reˇ ciˇ na operacnˇ ´ım systemu´ Android v ucˇ´ıc´ım procesu.

25 Literatura

[1] Android 2.2 [online]. [cit. 18. 5. 2010]. Dostupne´ z WWW: http:// androidandme.com/tag/android-2-2/.

[2] Number of Application in the Market [online]. [cit. 18. 5. 2010]. Do- stupne´ z WWW: http://www.androlib.com/appstats.aspx.

[3] Anki - friendly, intelligent flashcards [online]. [cit. 28. 11. 2009]. Do- stupne´ z WWW: http://ichi2.net/anki/.

[4] AnkiDroid [online]. [cit. 17. 5. 2010]. Dostupne´ z WWW: http:// ichi2.net/anki/wiki/AnkiDroid.

[5] API Change Statistics [online]. [cit. 18. 5. 2010]. Dostupne´ z WWW: http://d.android.com/sdk/api_diff/7/changes/jdiff_ statistics.html.

[6] Application Fundamentals [online]. 17.5.2010. [cit. 19.5.2010]. Do- stupne´ z WWW: http://developer.android.com/guide/ topics/fundamentals.html.

[7] BOURKE, Timothy. Mnemododo: Android client for Mnemosyne [on- line]. 7.5.2010. [cit. 17. 5. 2010]. Dostupne´ z WWW: http://www. tbrk.org/software/mnemododo.html.

[8] BRANDEJS, Michal. Inteligentn´ı Dril. In Studenti men´ eˇ opa- kuj´ı a v´ıce si pamatuj´ı, In 7. rocnˇ ´ık konference Alternativn´ı me- tody vyuky,´ s. 6, Hradec Kralov´ e,´ 2009. Gaudeaumus. ISBN 978- 80-7041-515-3, Dostupne´ z WWW: http://everest.natur.cuni. cz/konference/2009/prispevek/brandejs.pdf.

[9] CrunchBase: Cerego Japan Inc. [online]. [cit. 5. 12. 2009]. Do- stupne´ z WWW: http://www.crunchbase.com/company/ cerego-japan-inc.

[10] DEMPSTER, F. N.. The Spacing Effect [online]. University of Nevada, Las Vegas, 1988. [cit. 21. 12. 2009]. Dostupne´ z WWW: http://andrewvs.blogs.com/usu/files/the_spacing_ effect.pdf.

[11] ELGIN, Ben. Google Buys Android for Its Mobile Arsenal [on- line]. BusinessWeek, 2005. [cit. 21. 12. 2009]. Dostupne´ z WWW:

26 6. ZAV´ ERˇ

http://www.businessweek.com/technology/content/ aug2005/tc20050817_0949_tc024.htm.

[12] Forgetting rate [online]. NationMaster. [cit. 6. 12. 2009]. Dostupne´ z WWW: http://www.nationmaster.com/encyclopedia/ Forgetting-rate.

[13] GRAMLICH, Nicolas. andbook!: Android Programming, 2. vydan´ ´ı. Dostupne´ z WWW: http://zdrojak.root.cz/n/android/.

[14] History of SuperMemo software development [online]. [cit. 20. 11. 2009]. Dostupne´ z WWW: http://supermemo.com/ english/sms.htm.

[15] Industry Leaders Announce Open Platform for Mobile Devi- ces [online]. Open Handset Alliance, 2007. [cit. 21. 12. 2009]. Dostupne´ z WWW: http://www.openhandsetalliance.com/ press_110507.html.

[16] KAFKA, Peter. Is Android Really Outselling Apple? [online]. 10.5.2010. [cit. 19. 5. 2010]. Dostupne´ z WWW: http://mediamemo.allthingsd.com/20100510/ is-android-really-outselling-apple/.

[17] KEDER, Daniel. Computer-assisted language learning using spaced repetition. Brno, 2009. [Dsiplomova´ prace].´ Masarykova univerzita, Fakulta informatiky.

[18] MAZZOCCHI, Stefano. Dalvik: how Google routed around Sun’s IP-based licensing restrictions on Java ME [online]. 12.11.2007. [cit. 21. 12. 2009]. Dostupne´ z WWW: hhttp://www.betaversion. org/˜stefano/linotype/news/110/. [19] MEIER, Reto. Professional Android™ Application Development. In- dianapolis, Indiana : Wiley Publishing, Inc., 1. vydan´ ´ı, 2009. Dostupne´ z WWW: http://books.google.cz/books?id=UoLGxFWszIQC. ISBN 978-0-470-34471-2.

[20] Members [online]. Open Handset Alliance. [cit. 18. 5. 2010]. Do- stupne´ z WWW: http://www.openhandsetalliance.com/oha_ members.html.

[21] Mnemosyne Project [online]. [cit. 28. 11. 2009]. Dostupne´ z WWW: http://www.mnemosyne-proj.org/.

27 6. ZAV´ ERˇ

[22] MURPHY, Mark L.. The Busy Coder’s Guide to Advanced Android Development. LLC : Commonsware, 2.1. vydan´ ´ı, 2009. Dostupne´ z WWW: http://books.google.cz/books?id=fQmvPwAACAAJ. ISBN 0-9816780-1-7.

[23] Obecne´ principy SuperMemo [online]. [cit. 21. 12. 2009]. Dostupne´ z WWW: http://www.supermemo.cz/help/princip.htm.

[24] PAICHL, Premysl.ˇ Pametˇ ’ [online]. [cit. 22. 11. 2009]. Dostupne´ z WWW: http://www.paichl.cz/paichl/knihy/Pamet.htm.

[25] Pametˇ ’ Memostation [online]. 5.5.2008. [cit. 22. 11. 2009]. Dostupne´ z WWW: http://www.memostation.net/cs/pamet.

[26] PETREK,ˇ Pavel. Vyvoj´ pro Android [online]. 10.5.2010. [cit. 19.5.2010]. Dostupne´ z WWW: http://zdrojak.root.cz/n/android/.

[27] PLHAKOV´ A,´ Alena. Dejinyˇ psychologie. Praha : Grada, 1. vydan´ ´ı, 2006. Dostupne´ z WWW: http://books.google.cz/books?id= X_A6QYlRPV4C. ISBN 80-247-0871-X.

[28] Read and remember [online]. 19.4. 2009. [cit. 29. 11. 2009]. Do- stupne´ z WWW: http://help.supermemo.org/wiki/File: Incremental_reading_Cloze_deletion.jpg.

[29] RUBIN, Andy. Where is my Gphone? [online]. 11.5.2007. [cit. 18. 5. 2010]. Dostupne´ z WWW: http://googleblog. blogspot.com/2007/11/wheres-my-gphone.html.

[30] SDK Archives [online]. [cit. 18. 5. 2010]. Dostupne´ z WWW: http: //developer.android.com/sdk/older_releases.html.

[31] Platform Versions [online]. 17.5.2010. [cit. 18. 5. 2010]. Dostupne´ z WWW: http://developer.android.com/resources/ dashboard/platform-versions.html.

[32] Smart.fm — Blog [online]. [cit. 5. 12. 2009]. Dostupne´ z WWW: http: //blog.smart.fm/.

[33] Ucebnˇ ´ı metody [online]. 3.5. 2008. [cit. 19. 5. 2010]. Dostupne´ z WWW: http://www.memostation.net/cs/ucebni-metody.

[34] VOTAVA J., HANUSOVˇ A´ M. a OUDOVA´ D.. Pametˇ ’ a ucenˇ ´ı [online]. [cit. 28. 11. 2009]. Dostupne´ z WWW: http://etext.czu.cz/img/ skripta/64/pamet-1.pdf.

28 6. ZAV´ ERˇ

[35] Vykladov´ y´ slovn´ık — kognitivn´ı veda:ˇ PAMET [online]. Univer- zita Hradec Kralov´ e.´ [cit. 22. 11. 2009]. Dostupne´ z WWW: http: //fim.uhk.cz/cogn/?Module=dictionary&TypeSearch= 1&Str=memory.

[36] Vykladov´ y´ slovn´ık — kognitivn´ı veda:ˇ ZAPOMINANI [online]. Uni- verzita Hradec Kralov´ e.´ [cit. 5. 12. 2009]. Dostupne´ z WWW: http: //fim.uhk.cz/cogn/?Module=dictionary&TypeSearch= 1&Str=zapominani.

[37] What is Android? [online]. 17.5.2010. [cit. 19.5.2010]. Dostupne´ z WWW: http://developer.android.com/guide/basics/ what-is-android.html.

[38] WIKIPEDIA. Spaced repetition — Wikipedia, The Free Encyclo- pedia [online]. [cit. 21. 12. 2009]. Dostupne´ z WWW: http://en. wikipedia.org/wiki/Spaced_repetition.

[39] WIKIPEDIA. Android (operating system) — Wikipedia, The Free Encyclopedia [online]. 2009. [cit. 21. 12. 2009]. Dostupne´ z WWW: http://en.wikipedia.org/w/index.php?title=Android_ (operating_system.

[40] WIKIPEDIA. Spaced repetition: software — Wikipedia, The Free Encyclopedia [online]. [cit. 28. 11. 2009]. Dostupne´ z WWW: http://en.wikipedia.org/wiki/Spaced_repetition_ software#Software.

[41] WOZNIAK, P. A.. Theoretical aspects of spaced repetition in learning [online]. 1990-2000. [cit. 22. 12. 2009]. Dostupne´ z WWW: http:// www.supermemo.com/articles/theory.htm.

[42] Zapom´ınan´ ´ı [online]. 5.5.2008. [cit. 29. 11. 2009]. Dostupne´ z WWW: http://www.memostation.net/cs/zapominani.

29 AUzivatelsk´apˇr´ıruˇckaˇ

Nahrana´ aplikace se nachaz´ ´ı v seznamu aplikac´ı, ktery´ je zasunut na uvodn´ ´ı obrazovce. Spustˇ enˇ ´ı prob´ıha´ pouhym´ kliknut´ım na ikonu KeepIn, t´ım se spust´ı hlavn´ı okno aplikace (viz obr. A.1).

Inport/Export

Po vybran´ ´ı teto´ polozkyˇ se zobraz´ı nab´ıdka podporovanych´ importu˚ (for- maty´ viz strana 34). Po vyb´ eruˇ polozkyˇ se zobraz´ı seznam prˇ´ıstupnych´ sou- boru˚ dle zvoleneho´ formatu.´ Priˇ vyb´ eruˇ formatu´ Mnemosyne se kartickyˇ nahraj´ı do kategorie Mnemosyne pod novou ucebniciˇ s aktualn´ ´ım datem. Pokud kategorie neexistuje, vytvorˇ´ı se. Po vybran´ ´ı zalo´ zkyˇ ExportMenu (viz obr. A.2) lze z nab´ıdky vybrat´ format´ exportu, ktery´ se ulozˇ´ı na SD kartu do slozkyˇ a souboru uvedeneho´ v nastaven´ı. Vyb´ eremˇ polozkyˇ Sprava´ souboru...˚ se zobraz´ı seznam vsechˇ souboru do kterych´ lze zapisovat. Vy- beremˇ souboru ciˇ prazdn´ e´ slozkyˇ se zobraz´ı nab´ıdka potvrzuj´ıc´ı smazan´ ´ı.

Obrazek´ A.1: Hlavn´ı menu. Obrazek´ A.2: Inport/Export.

Obrazek´ A.3: Kategorie ucebnice.ˇ Obrazek´ A.4: Lekce a karticky.ˇ

30 A.UZIVATELSKˇ AP´ Rˇ´IRUCKAˇ

Spr´avauˇcebnic Prvn´ı obrazovka teto´ cˇast´ ´ı obsahuje seznam kategori´ı a jejich ucebnicˇ (viz obr. A.3). Pod nab´ıdkou menu se skryv´ a´ moznostˇ vytvoritˇ novou kategorii ciˇ ucebnici.ˇ Kontextova´ nab´ıdka ma´ tyto volby:

Kategorie: Ucebnice:ˇ Smazat Smazat Prejmenovatˇ Prejmenovatˇ Presunoutˇ De/aktivovat Vybran´ ´ı ucebniceˇ vede na druhou obrazovku obsahuj´ıc´ı seznam lekc´ı a jejich karticekˇ (viz obr. A.4). V polozceˇ kartickyˇ je na prvn´ım rˇadku´ zobra- zena jej´ı otazka,´ na druhem´ rˇadku´ jej´ı odpovedˇ ’ a na tretˇ ´ım rˇadku´ zleva pocetˇ vsechˇ zobrazen´ı, pocetˇ spravnych´ odpovedˇ ´ı, interval zobrazovan´ ´ı (dny) a naro´ cnostˇ karticky.ˇ Menu obsahuje moznostˇ vytvoritˇ lekci a kartic-ˇ ku. Pridˇ an´ ´ı kartickyˇ je moznˇ e´ v obou smerech,ˇ to znamena,´ zeˇ se zadana´ kartickaˇ vytvorˇ´ı jestˇ eˇ jednou, ale s prohozenou otazkou´ a odpovedˇ ´ı. Kon- textova´ nab´ıdka skryv´ a´ nasleduj´ ´ıc´ı moznosti:ˇ

Lekce: Karticky:ˇ Smazat Smazat Prejmenovatˇ Upravit De/aktivovat lekci De/aktivovat kartu De/aktivovat lekci vcetnˇ eˇ karet Vybran´ ´ım kartickyˇ vede na nejnizˇsˇ´ı urov´ eˇnˇ zobrazuj´ıc´ı ji samotnou (viz obr. A.5. Libovolne´ tlacˇ´ıtko vede zpetˇ na seznam kategori´ı.

Obrazek´ A.5: Detail kartickyˇ Obrazek´ A.6: Ucenˇ ´ı.

1. Nab´ıdka menu se vyvola´ stiskem tlacˇ´ıtka menu na emulatoru.´ 2. Kontextova´ nab´ıdka se vyvola´ dlouhym´ stiskem polozky.ˇ

31 A.UZIVATELSKˇ AP´ Rˇ´IRUCKAˇ

Uˇcen´ı

Pod polozkouˇ ucenˇ ´ı se skryvaj´ ´ı poctyˇ vsechˇ aktivn´ıch neucenˇ ych´ karticekˇ (viz obr. A.6). Pro lepsˇ´ı prehlednostˇ jsou priˇ razenyˇ do svych´ ucebnicˇ a kate- gori´ı. Dale´ je pridˇ ana´ kategorie ve ktere´ jsou vsechnyˇ tyto karticky.ˇ Vyb´ eremˇ libovolne´ ucebniceˇ se dostaneme k definovan´ ´ı poctuˇ karticekˇ k ucenˇ ´ı (viz obr. A.7). Po spravn´ e´ odpovediˇ se zobraz´ı obrazovka A.8. Priˇ ucenˇ ´ı je moznˇ e´ nechtenouˇ kartickuˇ skrz menu deaktivovat. Tlacˇ´ıtka 0–2 jsou pozitivn´ı ohod- nocen´ı znalosti, 3–5 negativn´ı a kartickaˇ se zaradˇ ´ı do drilu. Z drilu bude predloˇ zenaˇ po tolika kartickˇ ach´ jak je nastaveno v nastaven´ı aplikace. Po- kud byla odpovedˇ ’ napsana´ spravn´ e,ˇ zobraz´ı se zelene,ˇ jinak se zobraz´ı cervenˇ e.ˇ Na hodnocen´ı nema´ zadan´ ´ı odpovediˇ vliv. Podrobnosti o karticce,ˇ ktere´ jdou v nastaven´ı vypnout, popisuj´ı zleva pocetˇ spatnˇ ych´ odpovedˇ ´ı, odpovedˇ ´ı celkem, interval v dnech, o kolikat´ e´ zobrazen´ı kartickyˇ se jedna,´ velikost ucenˇ e´ fronty, velikost fronty drilu a zda-li se jedna´ o dril nebo ucenˇ ´ı.

Obrazek´ A.7: Vyb´ erˇ poctu.ˇ Obrazek´ A.8: Spravn´ a´ odpovedˇ ’

Opakov´an´ı

Zobrazuje vsechnyˇ aktivn´ı kategorie maj´ıc´ı asponˇ jednu ucebniciˇ obsahuj´ıc´ı kartickyˇ k opakovan´ ´ı do konce aktualn´ ´ıho dne. Priˇ vyb´ eruˇ ucebniceˇ se prechˇ az´ ´ı rovnou k ucenˇ ´ı.

Pˇredzkouˇskou

Zobrazuje vsechnyˇ kategorie s ucebnicemi.ˇ Vyb´ eremˇ ucebniceˇ se prechˇ az´ ´ı rovnou k ucenˇ ´ı a ve fronteˇ jsou vsechnyˇ kartickyˇ ze vsechˇ lekc´ı z teto´ ucebnice.ˇ Odpovezenˇ ´ı se neuklad´ a´ a tedy neovlivnujeˇ historii ucenˇ ´ı.

32 A.UZIVATELSKˇ AP´ Rˇ´IRUCKAˇ

Widget

Na hlavn´ı obrazovce je v menu moznostˇ pridatˇ widget. I pro aplikaci Kee- pIn je widget pripraven.ˇ Ten (viz obr. A.9) zobrazuje pocetˇ karticekˇ k opa- kovan´ ´ı a to s ctyˇ rhodinovouˇ aktualizac´ı.

Obrazek´ A.9: Widget aplikace KeepIn zobrazuj´ıc´ı pocetˇ karticekˇ k opakovan´ ´ı. .

33 B Form´atysoubor ˚u

Listing B.1: XML (mnemosyne) nazev´ kategorie nazev´ kategorie Otazka´ Odpovedˇ ’ ...

Listing B.2: XML Nazev´ kategorie ... Nazev´ ucebniceˇ ... Nazev´ lekce ... otazka´ odpovedˇ ’ ...

34 B.FORMATYSOUBOR´ U˚

Listing B.3: TXT KeepIn 2.0 c:Nazev´ kategorie;poznamka´ b:Nazev´ ucebnice;poznˇ amka´ l:Nazev´ prvnı´ lekce;poznamka´ q:otazka´ a:odpovedˇ ’ q:otazka´ a:odpovedˇ ’ l:Nazev´ druhe´ lekce;poznamka´ q:otazka´ a:odpovedˇ ’ b:Nazev´ druhe´ ucebnice;poznˇ amka´ l:Nazev´ lekce v druhe ucebnici;poznamka´ q:otazka´ a:odpovedˇ ’ ...

Listing B.4: CSV

Category; Book; Lesson; Question; Answer

Listing B.5: CSV (KeepIn) - sloupce nazev´ kategorie; poznamka;´ nazev´ ucebnice;ˇ poznamka;´ datum(ms); aktivnı(<1);´ nazev´ lekce; poznamka;´ aktivnı(<1);´ aktivnı´ karticka(<1);ˇ otazka;´ odpovedˇ ’; datum vytvorenˇ ı(ms);´ poslednı´ text(ms); prˇı´stˇ ı´ text(ms); pocetˇ testovan´ ı;´ pocetˇ spravn´ ach´ odpovedˇ ı;´ interval(napr.ˇ 7.3); obtı´znost(napˇ r.ˇ 2.5)

35 B.FORMATYSOUBOR´ U˚

Listing B.6: XML (KeepIn) Anglictinaˇ Poznamka´ k anglicke´ kategorii ... Book n. 0 note 1274403903429 ... Lesson 0 note ... Question number 1 Answer is briliant 1.0 2.18 1274403903429 1274412294956 1274412296473 ...

36 C Obsah CD a n´avodna spuˇstˇen´ı

Obsahem pˇrilozen´ehoCDˇ

• Slozkaˇ avd obsahuj´ıc´ı vseˇ potrebnˇ e´ pro spustˇ enˇ ´ı Android emulatoru´ (viz kapitola Pozadavkyˇ na system).´

• Slozkaˇ keepIn obsahuje finaln´ ´ı certifikovanou verzi aplikace KeepIn.

• Slozkaˇ text obsahuj´ıc´ı tento text ve formatu´ pdf a zdrojovy´ soubor ve formatu´ LATEX. • Slozkaˇ source obsahuj´ıc´ı Eclipse projekt.

Pozadavkyˇ na syst´em

Obsahem CD je prostredˇ ´ı pro spustˇ enˇ ´ı emulatoru´ na Windows XP (32-bit) nebo Windows Vista a vyzadujeˇ JDK 5 nebo JDK 6. Pro jine´ verze operacnˇ ´ıho systemu´ je moznˇ e´ postupovat dle oficialn´ ´ıho navodu´ na: http://developer.android.com/sdk/index.html

Spuˇstˇen´ıprojektu

Ve slozceˇ avd je davkov´ y´ soubor KeepIn.bat, ktery´ by melˇ sam´ vytvoritˇ novy´ emulator,´ nastartovat ho a pote´ do nejˇ nahrat´ aplikaci KeepIn. Pu- kud z nejakˇ eho´ duvodu˚ selzeˇ je ve slozceˇ avd/tools davkov´ y´ soubor android.bat, ktery´ spust´ı Android SDK and AVD Manager. V nemˇ je moznˇ e´ vytvoritˇ novy´ emulator´ s SD kartou o velikosti minimaln´ eˇ 9 MiB. Po jeho spustˇ enˇ ´ı a nabehnutˇ ´ı se davkov´ ym´ souborem LoadApp.bat ze slozkyˇ avd nahraje aplikace do emulatoru.´ Ve slozceˇ avd/db je davkov´ y´ soubor db OUT.bat, ktery´ nahraje da- tabazi´ z emulatoru´ a davkov´ y´ soubor db IN.bat, ktery´ ji nahraje zpetˇ do emulatoru.´ Pomoc´ı programu sqlitestudio-1.1.3.exe, ktery´ je ve stej- ny´ slozce,ˇ lze tuto databazi´ prohl´ızetˇ a editovat.

V aplikaci pod polozkouˇ nastaven´ı je pripravenaˇ nab´ıdka pro vytvorenˇ ´ı testovac´ı ucebnice.ˇ

37