20
Webová aplikace pro Testování Programů Při Výuce Autor: Ing. Luděk Podolka, [email protected] Vedoucí: Ing. Luboš Pavlíček, [email protected] Verze: Draft 1

Webova aplikace pro testovani programu pri vyuce

  • Upload
    drbz

  • View
    495

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Webova aplikace pro testovani programu pri vyuce

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

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

Cíl projektuPodpora praktické výuky programování v Javě..

Page 4: Webova aplikace pro testovani programu pri vyuce

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

Řešený problémZadání, vypracování, vyhodnocení úkolu..

Page 6: Webova aplikace pro testovani programu pri vyuce

Ř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

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

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

Ř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

Ř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

Testování kóduPrincip vypracování a tvorby zadání úkolu

Page 12: Webova aplikace pro testovani programu pri vyuce

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

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

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

Pod pokličkouNávrh, implementace, technologie

Page 16: Webova aplikace pro testovani programu pri vyuce

Konceptuální model – class diagram

Page 17: Webova aplikace pro testovani programu pri vyuce

Architektura aplikace

•MVC webová aplikace ve Struts 2

Page 18: Webova aplikace pro testovani programu pri vyuce

Statický model – vypracování úkolu

Page 19: Webova aplikace pro testovani programu pri vyuce

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

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!