webova aplikace pro testovani programu pri vyuce

Post on 29-Jan-2018

495 Views

Category:

Business

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Webová aplikacepro Testování Programů Při Výuce

Autor: Ing. Luděk Podolka, podolkal@gmail.comVedoucí: Ing. Luboš Pavlíček, pavlicek@vse.cz

Verze: Draft 1

Obsah

•Cíl projektu•Řešený problém•Testování kódu•Pod pokličkou•Závěr

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

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í.

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

Ř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í

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ě.

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.

Ř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

Ř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

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

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í.

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

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

Pod pokličkouNávrh, implementace, technologie

Konceptuální model – class diagram

Architektura aplikace

•MVC webová aplikace ve Struts 2

Statický model – vypracování úkolu

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)

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!

top related