webova aplikace pro testovani programu pri vyuce
TRANSCRIPT
![Page 1: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/1.jpg)
Webová aplikacepro Testování Programů Při Výuce
Autor: Ing. Luděk Podolka, [email protected]í: Ing. Luboš Pavlíček, [email protected]
Verze: Draft 1
![Page 2: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/2.jpg)
Obsah
•Cíl projektu•Řešený problém•Testování kódu•Pod pokličkou•Závěr
![Page 3: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/3.jpg)
Cíl projektuPodpora praktické výuky programování v Javě..
![Page 4: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/4.jpg)
Cíl projektu
● Vytvoření webové aplikace pro testování programů při výuce,
● která umožní studentům vypracovávat úkoly dle zadání prostřednictvím webového prohlížeče a získat zpětnou vazbu v podobě hlášení o průběhu kompilace a vyhodnocení jednotkových testů.
● Vyučujícím umožní snadné vypisování termínů domácích úkolů a zkoušek, tvorbu a otestování zadání úkolů a hromadné vyhodnocení zkoušek v jednotném prostředí.
![Page 5: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/5.jpg)
Řešený problémZadání, vypracování, vyhodnocení úkolu..
![Page 6: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/6.jpg)
Řešený problém - předpoklady
• Studenti používají integrované vývojové prostředí instalované na pracovní stanici
• 3 fáze zpracování úkolu:1. Zadání2. Vypracování a odevzdání3. Vyhodnocení
![Page 7: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/7.jpg)
Fáze zpracování úkolu
1. Učitel promítne pomocí projektoru zadání úkolu, případně umístí soubory zadání do sdíleného úložiště
2. Student přepíše zadání to textového editoru v IDE, případně zkopíruje soubory zadání ze sdíleného úložiště. Student vypracuje úkol, případně spustí jednotkové testy. Ohlásí vyučujícímu, že je hotov, případně nahraje v časovém limitu vypracování do sdíleného úložiště.
![Page 8: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/8.jpg)
Fáze vypracování úkolu / pokračování
3. Učitel přijde ke studentovi a zkontroluje správnost vypracování nebo alternativně zkopíruje soubory každého studenta do pracovního adresáře, zkompiluje zdrojový kód a spustí jednotkové testy. Informuje studenta o výsledku (počet bodů), případně zapíše známku.
![Page 9: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/9.jpg)
Řešený problém - závěry
● Procesně neoptimální přístup● Kopírování kódu mezi sdíleným úložištěm a
pracovním adresářem (tam a zpět)● Možný výskyt problémů s konfigurací
konkrétního IDE● Časová náročnost vyhodnocení úkolu● Každý vyučující si vytváří vlastní styl/způsob
zadání, odevzdání a vyhodnocení úkolu● Student musí při vypracování domácích úkolů
nejprve stahovat a konfigurovat IDE
![Page 10: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/10.jpg)
Řešený problém – závěry / pokračování
● Webová aplikace by měla:● Přispět ke standardizaci a optimalizaci celého
procesu praktické výuky● Zefektivnit práci učitelů● Usnadnit výuku studentů začátečníků● Umožnit studentům vypracovávat úkoly z domova
![Page 11: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/11.jpg)
Testování kóduPrincip vypracování a tvorby zadání úkolu
![Page 12: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/12.jpg)
Kompilace a testování uživatelského kódu
1) Uživatel vyplní pole pro zadání zdrojového kódu a stiskne tlačítko pro odeslání formuláře.
2) Systém sestaví uživatelský kód do podoby zdrojového kódu java třídy
3) Systém provede analýzu zdrojového kódu z důvodu odhalení bezpečnostních rizik
4) V případě úspěšnosti bodu 3 je kompilován zdrojový kód java třídy do podoby class souboru
5) V případě úspěšnosti bodu 4 je třída otestována pomocí jednotkového testu, který je vytvořen učitelem jako součást zadání
6) Uživateli je zobrazen výstup otestování a nabídnuto pokračování řešení.
![Page 13: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/13.jpg)
Ukázka 1 - Vypracování na zkoušku v roli učitele
Učitel vyzkouší správnost svého zadání formou vypracování „na zkoušku“
Je zde možnost přejít na úpravu zadání
V poli pro vypracování je automaticky zvýrazňována syntaxe
Při uložení se zobrazí výsledky kompilace i jednotkového testu
Pozn. Název metody není nejlépe zvolen
![Page 14: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/14.jpg)
Ukázka 2 – Úprava zadání v roli učitele
Šablona třídy je součástí zadání zobrazeného studentovi
Řetězce $editor(1-9) a $metoda jsou nahrazeny názvem metody a textovým polem pro vypracování
V těle jednotkového testu očekáváme výsledek 5
Pozn. Název metody není nejlépe zvolen
![Page 15: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/15.jpg)
Pod pokličkouNávrh, implementace, technologie
![Page 16: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/16.jpg)
Konceptuální model – class diagram
![Page 17: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/17.jpg)
Architektura aplikace
•MVC webová aplikace ve Struts 2
![Page 18: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/18.jpg)
Statický model – vypracování úkolu
![Page 19: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/19.jpg)
Použité komponenty a technologie
Java/J2EE (java.sun.com)– Compiler API, Comp. Tree API, Security, Logging
JUnit (junit.org) Struts 2 (struts.apache.org) Hibernate (hibernate.org) Jquery (jquery.com), Codepress Tomcat (tomcat.apache.org) MySQL (mysql.com) LDAP (cs.wikipedia.org/wiki/LDAP)
![Page 20: Webova aplikace pro testovani programu pri vyuce](https://reader033.vdocuments.site/reader033/viewer/2022051503/5a6ebda57f8b9a70728b6117/html5/thumbnails/20.jpg)
Závěr
● Webová aplikace připravena pro nasazení při výuce
● Kam dál?● Rozšíření o další programovací jazyky?● Uvolnění služby pro výuku na SŠ, ZŠ ?
Děkuji za pozornost!