UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY SOFTVÉR NA VÝUČBU PARALELIZMU A AUTOMATOV NA ZÁKLADNEJ ŠKOLE Bakalárska práca 2018 Patrik Priebera
UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY SOFTVÉR NA VÝUČBU PARALELIZMU A AUTOMATOV NA ZÁKLADNEJ ŠKOLE Bakalárska práca Študijný program: Študijný odbor: Školiace pracovisko: Školiteľ: Aplikovaná informatika 2511 Aplikovaná informatika Katedra aplikovanej informatiky Mgr. Lucia Budinská Bratislava, 2018 Patrik Priebera
//// zadanie I
Čestné vyhlásenie Čestne vyhlasujem, že som bakalársku prácu Softvér na výučbu paralelizmu a automatov na základnej škole" vypracoval samostatne s použitím uvedenej literatúry a zdrojov dostupných na internete. V Bratislave dňa 03.01.2018 Patrik Priebera II
Poďakovanie Touto cestou by som sa chcel poďakovať mojej školiteľke Mgr. Lucii Budinskej a konzultantke Mgr. Karolíne Mayerovej za pomoc, ochotu, cenné rady a pripomienky pri tvorbe mojej bakalárskej práci. III
Abstrakt PRIEBERA, Patrik: Softvér na výučbu paralelizmu a automatov na základnej škole (Bakalárska práca) Univerzita Komenského v Bratislave, Fakulta matematiky, fyziky a informatiky; Katedra aplikovanej informatiky. Školiteľ Mgr. Lucia Budinská.: FMFI UK, 2018, XX strán... Kľúčové slová:... IV
Abstract PRIEBERA, Patrik: Software for teaching parallelism and automata at primary schools (Bachelor thesis) Comenius University in Bratislava, Faculty of Mathematics, Physics and Informatics; Department of Applied Informatics Supervisor Mgr. Lucia Budinská.: FMFI UK, 2018, XX pages. Keywords: V
Predhovor... VI
Obsah Úvod... 1 Teoretické východiská... 3 Konečný automat... 3 Paralelizmus... 4 Edukačný softvér... 5 Inštruktívne programy... 6 E-learning... 7 ibobor... 8 Zásady tvorby softvéru pre deti... 10 Návrh aplikácie... 11 Návrh softvéru a použité technológie... 11 Použité technológie... 11 HTML5 a CSS3... 11 Bootstrap... 11 JavaScript... 12 MySQL... 12 AJAX... 12 jquery... 12 Laravel... 12 Typy používateľov... 14 Administrátor... 14 Učiteľ... 14 Žiak... 14 Anonymný používateľ... 14 Implementácia aplikácie... 16 VII
Výsledky... 17 Záver... 18 Literatúra a internetové zdroje... 19 Prílohy... 20 VIII
Úvod Výučba na školách v 21. storočí sa podstatne odlišuje od výučby v predchádzajúcom storočí. Kvôli celospoločenskej potrebe sa začala meniť štruktúra vzdelávacích odborov, začali sa rozvíjať moderné technológie výučby na školách. Do popredia sa dostáva rozvíjanie štandardov digitálnej gramotnosti, komunikačných kompetencií žiakov a učiteľov stredných škôl a študentov vysokých škôl, ich osobnostného rozvoja. Je to jedným z kľúčových krokov pre aktuálne a perspektívne potreby vedomostnej spoločnosti a trhu práce so zameraním na informatiku a informačných a komunikačných technológií (IKT). Rozvoj IKT je potrebný z dôvodu nedostatočného množstva a trvalo klesajúcej kvality vzdelávania absolventov škôl informatickej, technickej a prírodovednej oblasti vzhľadom na súčasné potreby zamestnávateľov. Neoddeliteľnou súčasťou vzdelávania žiakov a študentov v 21. storočí je elektronické vzdelávanie. Elektronické vzdelávanie predstavuje najmodernejší spôsob výučby s využitím informačných technológií. 1 Ide o nenáročné samoštúdium s využitím informačných technológií pomocou internetového pripojenia a počítača. Využíva sa na prípravu na prijímacie pohovory do škôl, pomáha zvyšovanie kvalifikácie zamestnancov, poskytuje efektívny nástroj manažmentu vzdelávania či manažmentu kvality. Hlavnou výhodou elektronického vzdelávania je zautomatizovanie viacerých pedagogických procesov a vyhodnocovania testov. Šetrí čas pedagógov a umožňuje im ho využívať na iné činnosti. Zároveň napomáha počítačovej gramotnosti nielen pedagógov, ale aj študentov. Pomocou elektronického vzdelávania sa znižujú náklady na spotrebný materiál ako papier a toner. Študenti a pedagógovia nemusia tlačiť písomné práce, študijné materiály, testy. Elektronické vzdelávanie je dostupné kedykoľvek, nemá obmedzenie v určitých časových intervaloch a môžeme ho využívať kdekoľvek, kde je prístup na internet. Cieľom našej práce je navrhnúť edukačnú webovú aplikáciu na výučbu konečných automatov a paralelizmu pre žiakov na druhom stupni základných škôl. 1 Dostupné na: http://www.elearning.sk/co-je-elearning.html [09.01.2018] 1
Pri písaní tejto práce sme sa venovali teoretickej a praktickej časti spracovania návrhu edukačnej webovej aplikácie pre žiakov a učiteľov na druhom stupni základných škôl. Práca je rozdelená do štyroch kapitol, ktoré čitateľovi predkladajú v teoretickej rovine prehľad použitej technológie, ktoré sme využili pri vytvorení webovej aplikácie na výučbu konečných automatov a paralelizmu. Uvedenej problematike sme sa venovali v prvej kapitole. V druhej kapitole... 2
Teoretické východiská Konečný automat Konečný automat A je pätica (K, Σ, δ, q0, F), kde K je konečná neprázdna množina stavov, Σ je konečná vstupná abeceda, q0 K je počiatočný stav, F K je množina akceptačných (koncových) stavov a δ : K Σ K je prechodová funkcia. Konfigurácia konečného automatu je ľubovoľný prvok k (q, w) K Σ *, kde q je stav automatu a w je nespracovaná časť vstupného slova. Konfigurácia nám udáva jednoznačný popis situácie, v ktorej sa automat A v danom okamihu výpočtu nachádza. Na základe jeho konfigurácie budeme vedieť povedať, ako bude výpočet pokračovať ďalej. Krok výpočtu konečného automatu A je relácia A na konfiguráciách definovaná (q,av) A (p,v) p = δ(q, a). Krok výpočtu teda hovorí v akej konfigurácií sa bude A nachádzať v nasledujúcom kroku výpočtu, ak vieme, v akej sa nachádza teraz. Výpočet automatu teda môžeme formálne zapísať ako postupnosť konfigurácií, pričom každé dve po sebe nasledujúce konfigurácie sú v relácií krok výpočtu. 2 Konečný automat môžeme zapisovať (respektíve jeho δ-funkciu) aj prechodovou tabuľkou alebo prechodovým diagramom. machine). Obrázok 1 Prechodová tabuľka konečného automatu (http://foja.dcs.fmph.uniba.sk/materialy/skripta.pdf) Konečný automat označujeme skrátene KA, prípadne FSM (z anglického finite state 2 Dostupné na: http://foja.dcs.fmph.uniba.sk/materialy/skripta.pdf [10.01.2018] 3
Obrázok 2 Konečný automat (http://foja.dcs.fmph.uniba.sk/materialy/skripta.pdf) Popis fungovania automatu Automat sa na začiatku nachádza v počiatočnom stave. V každom ďalšom kroku sa prečíta jeden symbol zo vstupu a prejde do stavu, ktorý je daný hodnotou, ktorá v prechodovej tabuľke zodpovedá aktuálnemu stavu a prečítanému symbolu. Následne pokračuje čítaním ďalšieho symbolu zo vstupu, ďalším prechodom podľa prechodovej tabuľky a podobne. Ak automat po prečítaní vstupu skončí v stave, ktorý patrí do množiny akceptačných (koncových) stavov, potom platí, že automat buď daný vstup prijal alebo neprijal. Paralelizmus Paralelizmus, ide o vykonávanie viacerých úloh súčasne, čím sa urýchľuje proces, znižujú sa náklady na prácu a vykoná sa viac práce v kratšom čase. Paralelné programovanie je v informatike označenie konceptu, ktorý umožňuje naprogramovať úlohy, ktoré sú schopné paralelného (súčasného) behu. Paralelné programovanie je hodnotené podľa toho, ako dobre dokáže rôzne problémy popísať a akého výkonu je možné dosiahnuť na rôznych počítačových platformách. Implementácia paralelného programovania môže byť v podobe knižníc pre tradičné sekvenčné programovacie jazyky, vo forme rozšíreného existujúceho programovacieho jazyka alebo úplne nový prístup (programovací jazyk). 3 3 Dostupné na: https://cs.wikipedia.org/wiki/paraleln%c3%ad_programov%c3%a1n%c3%ad [11.01.2018] 4
Edukačný softvér Edukačný softvér je softvér vytvorený špeciálne pre vyučovanie ako nástroj pre učiteľov na učenie alebo pre študentov na učenie sa. Edukačný softvér rozvíja informatickú kultúru a digitálnu gramotnosť, poskytuje spätnú väzbu, rozvíja asociatívne učenie a podporuje individuálny prístup k tomu, kto sa učí. 4 Na internete nájdeme veľké množstvo edukačného softvéru, no máloktorý sa dá použiť v našom školstve, pretože väčšina je napísaná v cudzom jazyku. Klasifikácia edukačného softvéru podľa účelu použitia Edukačný softvér podľa účelu použitia vieme klasifikovať do niekoľkých skupín: inštruktívne programy, simulácie a modelovanie, nástroje na získavanie informácií, nástroje na prácu s informáciami, nástroje na komunikáciu. Simulácie a modelovanie Túto skupinu môžeme ďalej rozdeliť na: simulácie (napodobňovanie reálneho procesu pomocou výpočtovej techniky), mikrosvety (mikrosvet je prostredie, v ktorom možno vytvárať vlastné simulácie), programovacie jazyky (programovací jazyk slúži ako prostriedok pre zápis algoritmov, ktoré môžu byť vykonané na počítači), nástroje na modelovanie (vyžaduje sa od žiaka, aby vytvoril model, kedy študent jasne demonštruje znalosť príslušných vzťahov reálnej situácie, ktorú modeluje). 5 Nástroj na získavanie informácií je softvér, ktorý nám slúži na získavanie informácií. Tento typ softvéru nie je navrhnutý priamo na vyučovanie, ale často môže byť pri učení 4 Dostupné na: http://files.virtual-lab.sk/apvv%20vv-11/clanky%20a%20publikacie/edukacny%20 softver_daniela_lehotska_bezakova.pdf [03.01.2018] 5 Dostupné na: http://files.virtual-lab.sk/apvv%20vv-11/clanky%20a%20publikacie/edukacny%20 softver_daniela_lehotska_bezakova.pdf [09.01.2018] 5
užitočný. Do tejto skupiny môžeme zaradiť multimediálne encyklopédie, on-line databázy alebo veľa webových stránok. Softvér na získavanie informácií sa používa najčastejšie ako zdroj faktov a údajov, ale aj za účelom naučiť sa vyhľadávať potrebné informácie. Nástroje na prácu s informáciami sa vo všeobecnosti nehodnotia a nedávajú spätnú väzbu týkajúcu sa vstupov a výstupov tak, ako to robia simulácie a inštruktívne programy. Pri použití na vyučovaní musí túto spätnú väzbu zabezpečiť učiteľ, sám žiak alebo ďalší spolužiaci. Do poslednej skupiny Nástroje na komunikáciu môžeme zahrnúť nástroje ako elektronická pošta, textové, audio- a videokonferencie. Nástroje na komunikáciu majú za úlohu sprostredkúvať komunikáciu medzi žiakmi a učiteľmi, nie medzi žiakom a počítačom. 6 Nás predovšetkým zaujíma skupina inštruktívnych programov, pretože náš edukačný softvér spadá pod túto skupinu, preto si túto skupine podrobnejšie rozpíšeme. Inštruktívne programy Sú to programy, ktoré nahrádzajú učiteľa (respektíve učebnicu) pri výklade nového učiva, jeho precvičovaní a automatickom vyhodnocovaní dosiahnutej úrovne žiackych vedomostí. Inštruktívne programy väčšinou spracovávajú konkrétny vedný odbor alebo vyučovací predmet. 7 Rozlišujeme niekoľko druhov inštruktívnych programov: kvízy na sebahodnotenie, softvér na precvičovanie, programové učenie, tutoriály, inteligentné vyučovacie systémy. 6 Dostupné na: http://files.virtual-lab.sk/apvv%20vv-11/clanky%20a%20publikacie/edukacny%20 softver_daniela_lehotska_bezakova.pdf [09.01.2018] 7 Dostupné na: http://files.virtual-lab.sk/apvv%20vv-11/clanky%20a%20publikacie/edukacny%20 softver_daniela_lehotska_bezakova.pdf [03.01.2018] 6
Kvízy na sebahodnotenie Kvízy nevyučujú žiakov nič nové, slúžia len na otestovanie ich vedomostí, aby učitelia zistili aktuálny stav vedomostí žiakov. Softvér na precvičovanie Tento druh programu neslúži na to, aby naučil nejakú novú zručnosť alebo predal novú vedomosť. Jeho zámerom je precvičovanie nejakých činností a upevňovanie faktov. Programové učenie Programové učenie zahŕňa výklad, testovanie a doučovanie znalostí. Softvér žiakovi zobrazí úlohu a očakáva od študenta odpoveď. Ak je odpoveď správna, softvér ponúkne žiakovi ďalšiu úlohu na riešenie, ak odpoveď nebola správna, očakáva sa od študenta nová odpoveď. Tutoriál Typ softvéru, ktorý sa zväčša používa na odovzdávanie vedomostí a prezentovanie zručností, na učenie pojmov, pravidiel, poučiek a definícií v štýle podobný učebnici. Inteligentné vyučovacie systémy Vyučovacie systémy, ktoré sa snažia aplikovať metódy umelej inteligencie na prispôsobenie sa jednotlivým žiakom, čo sa týka témy aj spôsobu učenia. 8 E-learning E-learning alebo elektronické vzdelávanie, predstavuje najmodernejší spôsob výučby s využitím informačných technológií. Je to implementácia informačných technológií do vývoja, distribúcie a riadenia vzdelávania alebo výučby. E-learning je efektívnym prostriedkom, ako sa spojiť so študentmi alebo zamestnancami a odovzdať im cenné informácie na diaľku. 9 8 Dostupné na: http://files.virtual-lab.sk/apvv%20vv-11/clanky%20a%20publikacie/edukacny%20 softver_daniela_lehotska_bezakova.pdf [03.01.2018] 9 Dostupné na: http://www.elearning.sk/co-je-elearning.html [06.01.2018] 7
Hlavným nástrojom pre vzdelávanie je počítač a internet, vďaka ktorým sa e-learning stáva nástrojom využiteľným na ľubovoľnom mieste v ľubovoľnom čase. Toto odovzdávanie informácií sa najčastejšie realizuje prostredníctvom on-line dištančných kurzov. Dištančné vzdelávanie ako také, teda samoštúdium za pomoci tútora, ktorý je fyzicky oddelený od študujúcich a vzdelávanie iba koordinuje, existuje už veľa rokov. Rozvoj informačných technológií zasiahol aj do vzdelávania a výrazne vylepšil vyučovací proces. E-learning je určený pre každého, kto vyhľadáva informácie, ako pre študentov základných, stredných či vysokých škôl, na prípravu na prijímacie pohovory do škôl, tak i pre organizácie a ich zamestnancov ako súčasť zvyšovania kvalifikácie. Pre študentov e-learning predstavuje praktickú a pohodlnú formu získavania informácií. Úroveň rozšírenia či využitia e-learningu je na Slovensku momentálne veľmi nízka, no postupne sa začína presadzovať. ibobor IBobor je informatická súťaž, ktorá bola založená v roku 2004 v Litve prof. Dr. Valentinou Dagiene. Cieľom súťaže je podporiť záujmy o informačné a komunikačné technológie (IKT) u všetkých žiakov. Súťaž chce iniciovať v deťoch využívanie IKT, posmeliť ich v intenzívnejšom a kreatívnejšom používaní moderných technológií pri učení sa. Každoročne sa súťaž koná vo viac ako štyridsiatich krajinách do ktorej sa zapojí približne 1 650 000 žiakov. 10 Informatická súťaž ibobor prebieha on-line, priamo pri počítačoch, čo organizátori považujú za veľmi dôležitý motivačný prvok súťaže aby informatická súťaž neprebiehala na papieri. Princípom súťaže je, že žiaci majú v obmedzenom časovom limite vyriešiť pevne stanovené úlohy. Keďže samostatná súťaž prebieha pri počítačoch, je možné do nej zaraďovať aj úlohy, pri ktorých je riešenie dané interakciou súťažiaceho a počítača. Keď súťaž skončí, softvér automaticky vyhodnotí odpovede žiakov, zobrazí im správne riešenia 10 Dostupné na: http://ibobor.sk/ [05.01.2018] 8
a poskytne súťažiacemu informáciu, ako sa daná konkrétna úloha vníma z pohľadu informatiky. Súťaž sa organizuje v troch kategóriách, ktoré sa označujú ako Benjamins, Juniors a Seniors. V každej vekovej kategórií nájdeme úlohy troch stupňov obtiažnosti, pričom počet úloh v jednotlivých stupňoch je rovnaký. Obtiažnosť úloh je nastavená tak, aby najľahšie úlohy vyriešili v danom časovom limite takmer všetci účastníci, ťažšie úlohy nie všetci a najťažšie zvládnu v danom časovom limite len tí najlepší. Súťažné úlohy sa líšia svojím zameraním, náročnosťou a spôsobom riešenia. Kým niektoré z úloh majú formy otázok s výberom odpovede zo štyroch možností, súťažiaci sa môže stretnúť i s interaktívnou úlohou, v ktorej má presunúť, usporiadať alebo doplniť časť riešenia. 11 Obrázok 3 Typy úloh ibobor (http://ibobor.sk/bobordidinfo.pdf) Pri tvorbe edukačnej webovej aplikácie na výučbu konečných automatov a paralelizmu pre žiakov na druhom stupni základných škôl nám veľkou inšpiráciou boli typy úloh, ktoré sú obsiahnuté v informatickej súťaži ibobor. Z uvedeného dôvodu sme sa v podkapitole 1.3. podrobne venovali princípu súťaže, súťažným kategóriám, stupňom obtiažnosti, typom a náročnosti úloh. Získané informácie o princípe, priebehu, použitej technológie a praktických a technických otázkach sme plnohodnotne využili pri tvorbe nášho softvéru. 11 Dostupné na: http://ibobor.sk/bobordidinfo.pdf [09.01.2018] 9
Zásady tvorby softvéru pre deti V súčasnosti deti predstavujú dôležitú skupinu používateľov softvéru a technológií, a preto sa kladie čoraz väčší dôraz na vypracovanie softvéru pre deti. Sú náročnými spotrebiteľmi, preto softvér musí byť dostatočne motivačný. Úlohy musia byť efektívne a mali by vedieť deti zaujať. Návrhári detskej technológie by sa mali sústrediť a starostlivo zvážiť, pre aké vekové kategórie bude ich softvér používaný z dôvodu, že každá veková kategória má odlišné zručnosti, schopnosti a očakávania. Autori článku Framework for Evaluating the Usability of Mobile Educational Applications for Children Rabail Tahir a Fahim Arif 12 uvádzajú, že prvou základnou zásadou pri tvorbe softvéru pre deti je to, aby softvér bol ľahko pochopiteľný pre dieťa. Rozhranie by malo byť priateľské k deťom a tiež kompatibilné s kognitívnymi schopnosťami detí s použitím vhodného jazyka a obsahu. Návrh softvéru by mal byť jednoduchý, atraktívny a organizovaný. Veľkosť písma a farebnosť by mala zaujať detskú kategóriu. Používame jednoduché deťom známe ikony pre správne porozumenie, vhodné multimédia, animácie a texty. Pre detských používateľov je potrebné, aby sa vedeli na stránke ľahko orientovať prostredníctvom jednoduchej navigácie, jasných navigačných tlačidiel. Deti na rozdiel od dospelých používateľov očakávajú výsledky svojich aktivít okamžite. Ak sa po ich vstupe nič nestane, deti môžu opakovať svoju činnosť, až kým niečo nenastane. Očakávajú okamžitú spätnú väzbu, upozornenie a podanie inštrukcií ako postupovať ďalej a plniť ďalšie úlohy. 12 Dostupné na: https://www.researchgate.net/profile/fahim_arif/publication/285925086_framework_for_evaluating_the _Usability_of_Mobile_Educational_Applications_for_Children/links/5664673608ae192bbf909492/Framewo rk-for-evaluating-the-usability-of-mobile-educational-applications-for- Children.pdf?origin=publication_detail [11.01.2018] 10
Návrh aplikácie V tejto kapitole bude podrobný opis a komplexný návrh webovej aplikácie,... Návrh softvéru a použité technológie Použité technológie V tejto podkapitole sa budeme venovať stručnému popísaniu technológií, ktoré boli použité pri tvorbe edukačnej webovej aplikácie. Pri tvorbe boli využité aktuálne a najpoužívanejšie programovacie jazyky a frameworky, ktoré sa v súčasnosti používajú pri vytváraní webových aplikácií. Pomocou týchto technológií sme vytvorili softvér, ktorý je dostupný online ako webová aplikácia. HTML5 a CSS3 HTML, celým názvom HyperText Markup Language, je najrozšírenejším jazykom, ktorý sa používa na vývoj webových stránok. Je značkovací jazyk určený na vytváranie webových stránok a iných informácií zobraziteľných vo webovom prehliadači. 13 Keďže je to značkovací jazyk, tak na popis obsahu stránok využíva značky (príkazy, tagy), ktoré sa vkladajú medzi znaky < a >. Cascading Style Sheets (Kaskádové štýly) alebo CSS, je jednoduchý dizajnový jazyk určený na zjednodušenie tvorby webových stránok. Slúži na vizuálne formátovanie dokumentov. 14 Bootstrap Bootstrap je jednoduchá a voľné stiahnuteľná sada nástrojov pre tvorbu webu a webových aplikácií. 15 Výhodou Bootstrap-u je hlavne responzívny design, ktorým dosiahneme to, že sa naša webová stránka bude korektne zobrazovať na zariadeniach ako sú mobilné telefóny, tablety, notebooky či stolné počítače. Poskytuje nám veľa vytvorených prvkov od tlačidiel a tabuliek, cez panely, hlášky až po JavaScript-om ovládané modálne okná, rozbaľovacie tlačidlá či slidery. Okrem toho Bootstrap obsahuje aj dopredu vytvorené šablóny založené na HTML a CSS. 13 Dostupné na: https://www.tutorialspoint.com/html/html_overview.htm [04.01.2018] 14 Dostupné na: https://www.tutorialspoint.com/css/what_is_css.htm [04.01.2018] 15 Dostupné na: https://getbootstrap.com/ [04.01.2018] 11
JavaScript Javascript je skriptovací programovací jazyk, ktorý sa používa hlavne pri tvorbe webových stránok. Je najčastejšie používaný ako komponent webových stránok, ktorých implementácia povoľuje skriptu interakciu s používateľom na strane klienta a vytvára tak dynamickú stránku. 16 MySQL MySQL je relačný databázový server typu DBMS (database management system). Každá databáza v MySQL je tvorená z jednej alebo z viacerých tabuliek, ktoré majú riadky a stĺpce. V riadkoch sú jednotlivé údaje a stĺpce udávajú dátový typ jednotlivých údajov. Komunikácia s MySQL databázou prebieha pomocou takzvaných dotazov, ktoré vychádzajú z programovacieho jazyka SQL (Structured Query Language). 17 AJAX AJAX, celým názvom Asynchronous JavaScript and XML, je technika tvorby lepších, rýchlejších a interaktívnejších webových aplikácií pomocou dostupných technológií ako XML, HTML, CSS a JavaScript. Umožňuje meniť obsah stránok bez potreby ich kompletného znovunačítania zo servera vďaka asynchrónnemu spracovaniu webových stránok pomocou knižnice napísanej v JavaScripte. 18 jquery jquery je rýchla a presná JavaScript knižnica so širokou podporou webových prehliadačov, ktorá zdôrazňuje spojenie jazykov JavaScript a HTML. Uľahčuje nám písanie v JavaScript-e. jquery syntax je navrhnutá pre jednoduchší výber DOM elementov, vytváranie animácií, spracovanie udalostí a pre jednoduchšiu prácu s AJAX-om. 19 Laravel Laravel patrí medzi najpopulárnejší MVC framework pre programovací jazyk PHP, určený pre vývojárov, ktorí potrebujú jednoduchý a elegantný nástroj na vytváranie 16 Dostupné na: https://www.tutorialspoint.com/javascript/javascript_overview.htm [05.01.2018] 17 Dostupné na: https://www.tutorialspoint.com/mysql/mysql-introduction.htm [05.01.2018] 18 Dostupné na: https://www.tutorialspoint.com/ajax/what_is_ajax.htm [05.01.2018] 19 Dostupné na: https://jquery.com/ [04.01.2018] 12
plnohodnotných webových aplikácií. 20 Laravel je Open Source framework, čo znamená, že má dostupný zdrojový kód a používatelia ho môžu voľne používať, modifikovať a šíriť. Laravel zahrňuje všetky nástroje pre komunikáciu s databázou, kontrolu prístupu užívateľov, posielanie e-mailov a veľa ďalších funkcionalít. Súčasťou Laravel-u je aj Artisan, čo je vlastne príkazový riadok, ktorý obsahuje príkazy pre zrýchlenie a uľahčenie rôznych činností pri tvorbe webových aplikácií. Laravel využíva softvérovú architektúru MVC, čo je skratka pre Model-View-Controller architektúru. PHP PHP (PHP: Hypertext Preprocessor) je skriptovací programovací jazyk, ktorý umožňuje vývojárom vytvárať dynamický obsah, ktorý interaguje s databázami. 21 Model-View-Controller Model-View-Controller je architektonický vzor, ktorý rozdeľuje dátový model aplikácie do troch nezávislých na sebe komponentov Model, View, Controller, tak, že modifikácia ktoréhokoľvek z nich má minimálny vplyv na ostatné. 22 Model Komponent Model zodpovedá za všetkú dátovú logiku, s ktorou používateľ pracuje. Môžu to byť dáta prenášané medzi komponentami View a Controller alebo hocijaká iná práca s dátami. Môžu to byť napríklad aj databázové dotazy, výpočty, validácie a podobne. View (Pohľad) Komponent View z pohľadu aplikácie sprostredkováva výstup z aplikácie, stará sa teda o zobrazenie výstupu užívateľovi. Väčšinou je to výstup vo forme HTML stránky, no môže to byť napríklad aj PDF dokument. Controller (Kontroler) Komponent Controller zohráva úlohu prostredníka, ktorý komunikuje s užívateľom, modelom a pohľadom. Drží teda celý systém pohromade a komponenty prepojuje. Zvyčajne 20 Dostupné na: https://laravel.com/ [04.01.2018] 21 Dostupné na: http://php.net/ [04.01.2018] 22 Dostupné na: https://www.tutorialspoint.com/mvc_framework/mvc_framework_introduction.htm [05.01.2018] 13
spracováva vstup od užívateľa a na základe toho vstupu spustí funkcie modelu a ich výstupy odovzdáva do pohľadu. Typy používateľov Za používateľa aplikácie môžeme považovať toho, kto prichádza do styku s aplikáciou. Webovú aplikáciu budú navštevovať väčšinou len učitelia a žiaci. Používateľov teda môžeme rozdeliť do štyroch skupín: Administrátor, Učiteľ, Žiak, Anonymný používateľ. Administrátor Administrátor je používateľ s maximálnymi možnými právomocami na správu webovej aplikácie, používateľov, kurzov a úloh, ktorý bol vytvorený manuálne. Jeho úlohou je dohliadať na používateľov, riešenie problémov, prípadná editácia používateľov, kurzov a úloh. Učiteľ Učiteľ je používateľ, ktorý sa musí registrovať na webovej aplikácií. Jeho úlohou je spravovať kurzy, pridávať alebo vytvárať nových žiakov, vytvárať nové alebo editovať staré úlohy oboch typov pomocou preddefinovaných šablón. Učiteľ má prístup k výsledkom žiakov a má právo hodnotiť svojich žiakov. Žiak Žiak je koncový používateľ webovej aplikácie. Takisto ako učiteľ, žiak musí byť registrovaný na webovej stránke. Žiak má prístup k prihláseniu, po prihlásení má prístup k jeho úlohám, môže riešiť úlohy, sady úlohy alebo experimentovať v otvorených úlohách. Anonymný používateľ Do tejto skupiny patria používatelia, ktorí nie sú registrovaní alebo prihlásení do systému. Anonymný používateľ má možnosť sa len registrovať na webovej aplikácií, keďže aplikácia má všetky funkcie prístupné až po registrovaní a prihlásení. 14
Obrázok 4 Use-Case Diagram 15
Implementácia aplikácie 16
Výsledky 17
Záver 18
Literatúra a internetové zdroje 19
Prílohy Digitálna príloha 20