PŘÍRUČKA PRO UŽIVATELE MODULU
CODIANA
Bc. Jan Hybš 2014OBSAH PŘÍRUČKY
Princip funkce systému CoDiAna Struktura systému CoDiAna
Algoritmické úlohy Hodnocené řešení Příručka pro studenty Příručka pro pedagogy Výsledné stavy pokusů
PRINCIP FUNKCE SYSTÉMU CODIANA
V systému vystupují dvě role – pedagog a student.
Uživatelé zasílají požadavky na server, který obsahuje systém Moodle (výuková platforma Moodle)
Pedagog specifikuje algoritmické úlohy, na které studenti zasílají své řešení. Systém automatizovaně zpracovává řešení a poskytuje uživatelům výsledky.
Podpora programovacích jazyků, je dána dostupností modulů pro Exekutivní aplikaci.
STRUKTURA SYSTÉMU CODIANA
systém se skládá ze dvou hlavních částí modul CoDiAna
správa úloh
zobrazení výsledků
exekutivní aplikace Java
zpracování náročnějších nebo potencionálně nebezpečných požadavků
Server pro zpracování úloh
Souborové úložiště Exekutivní
aplikace
Pedagog Student
Server se portálem Moodle
Modul CoDiAna Databázové
úložiště
SSH komunikace SSH komunikace
ALGORITMICKÉ ÚLOHY
Algoritmické úlohy slouží pro testování dovedností studentů. Každá úloha obsahuje specifikaci, ve které je detailně popsána problematika úlohy. Jsou zde definovány vstupy a výstupy
úlohy a podmínky ukončení programu. Každá úloha má definovány ukázkové vstupy a výstupy, které zobrazují formát vstupních a výstupních dat.
Úloha má přidělen hlavní název, který je použit při odevzdávání řešení.
Na úlohu je možné zasílat řešení pouze tehdy, je-li aktivována pedagogem a je časové přístupná (Každá úloha má definován začátek a konec, v tomto období je úloha tzv.
otevřena). Před začátkem úlohy je možné vidět pouze určité detaily úlohy.
Každá úloha má specifikovány podporované programovací jazyky, které mohou být použity.
Úloha může být limitována maximálním počet uživatelů.
Pro každou úlohu jsou definovány časové a paměťové limity, které musí být splněny. Pokud nejsou splněny, není řešení korektní. Další důležitou podmínkou korektního řešení je správný výstup. Každé řešení musí produkovat korektní výstup, pokud je výstup chybný, řešení je opět klasifikováno jako nesprávné.
HODNOCENÉ ŘEŠENÍ
Student má možnost v systému odevzdávat řešení algoritmických úloh ve vymezeném období. Úloha může mít definován maximální počet pokusů pro studenta. Po dosažení maxima není možné zaslat další řešení. Je nutné určit tzv. hodnocené řešení. Toto
reprezentativní řešení bude použito při navržení výsledné známky.
Je automaticky zvoleno na základě nastavení úlohy. Jedná se ale vždy o korektní řešení (nebyl překročen časový a paměťový limit a byl vyprodukován správný
výstup). Je zvoleno buď první správné, poslední správné nebo nejlepší správné řešení ze všech zaslaných řešení studenta.
Pokud nelze vybrat hodnocené řešení, je navržené bodové ohodnocení nulové.
PŘÍRUČKA PRO STUDENTY
Systém CoDiAna obsahuje automatizovaný systém, který zpracovává řešení postupně, strukturou FIFO.
Student má oprávnění k zasílání řešení na algoritmické úlohy a následné prohlížení výsledků. Pedagog specifikuje jaké údaje o běhu řešení může student vidět, vždy jsou ale viditelné základní detaily, například to, zda je řešení korektní.
Student má možnost prohlížet výsledky i ostatních studentů, pokud tuto akci pedagog schválí. Je v kompetenci pedagoga, které údaje budou viditelné.
PŘÍRUČKA PRO STUDENTY
Pokud zaslané řešení nedodržuje základní pravidla nebude zpracováno. Systém CoDiAna podporuje dva způsoby formátu řešení:
Řešení, které se skládá z jednoho souboru. Tento soubor musí respektovat hlavní název úlohy.
Například v jazyce Java, musí zaslaný soubor obsahovat spustitelnou třídu, jejíž název je shodný s hlavním názvem úlohy. Zaslání jediného souboru by také nemělo mít definováno package, jelikož se jedná o jediný soubor!
Druhý způsob je zaslání ZIP archivu, který obsahuje zdrojové kódy v definované zdrojové struktuře.
Musí obsahovat soubor s hlavním názvem úlohy, tento soubor bude systémem vyhodnocen jako spouštěcí. Archiv musí obsahovat korektní strukturu souborů, relativně ke kořenu archivu. Příkladem může být opět jazyk Java. Pokud úloha nese název Test, musí archiv obsahovat soubor Test.java. V tomto souboru již může být definován package, ale relativně vůči kořenu archivu.
package cz.tul.uloha musí být ve stromové struktuře cz/tul/uloha od začátku archivu.
Je možné stáhnout ukázkové zdrojové kódy, které mohou lépe demonstrovat v jakém formátu mohou řešení být.
PŘÍRUČKA PRO PEDAGOGY
Pedagog má možnost spravovat algoritmické úlohy, které vytvořil. Dále může vyvolat detekci duplicitních řešení nad úlohou nebo nad určitým pokusem studenta. Může také přidělovat oprávnění k provádění určitých operací dalším uživatelům.
Korektní specifikace úlohy zahrnuje definování problematiky úlohy, ukázky vstupů a výstupů. Další nutností jsou hodnotící hranice paměťové a časové náročnosti. Dále je nutné přiložit referenční vstupní a výstupní soubory. Vstupní soubor úlohy nebude viditelný studenty a obsahuje pouze vstup úlohy. Pokud je dostatečně jednoduchý, může být vygenerován generátorem vstupních souborů systému CoDiAna.
Výstup úlohy musí reagovat na vstupní soubor. Tento soubor je možné vygenerovat systémem, pokud je přiloženo řešení na danou úlohu. Tato operace dále detekuje časovou a paměťovou náročnost úlohy.
PŘÍRUČKA PRO PEDAGOGY
Řešení je hodnoceno na základě časové a paměťové náročnosti. Jsou ohodnoceny obě veličiny a výsledná známka je průměrem obou veličin. Nutností je korektní výstup řešení. Musí být shodný s referenčním výstupem úlohy. Soubory jsou mezi sebou
porovnávány. Jsou k dispozici tři způsoby porovnání souborů.
Pedagog specifikuje dvě hranice pro každou hodnotící veličinu. V případě časové náročnosti je první veličina čas, do kterého je ohodnocení 100 %. Druhá hranice je čas, po kterém je ohodnocení 0 %. Čas mezi hranicemi je lineárně dopočítán.
Obdobně je určena paměťová náročnost. Hodnoty paměťové náročnosti jsou v kB.
Nahrání referenčního řešení na úlohu odhadne prahy hodnotících časové i paměťové náročnosti.
Pokud jsou splněny všechny náležitosti specifikace úlohy, je nutné ji aktivovat. Po této operaci mohou studenti (pokud je úloha otevřena) zasílat svá řešení.
PŘÍRUČKA PRO PEDAGOGY
Systém CoDiAna zobrazuje výsledky ve dvou režimech. Jsou zobrazeny pouze hodnocené pokusy studentů nebo všechny (i nevalidní) pokusy studentů.
Vždy jsou zobrazeny výsledky kontroly podobnosti řešení. Pokud je nějaké řešení je označeno jako plagiát, je nutná manuální kontrola obou řešení. V opačném případě by mohlo dojít k falešně pozitivnímu klasifikování plagiátorství.
Systém CoDiAna využívá prostředky systému Moodle a umožňuje přidělení známky studentům v měřítku od 0 do 100. Hodnocení studentů je zjednodušeno, je vždy
navržena známka na základě hodnoceného řešení studenta. Pokud není k dispozici je navržená známka 0. Známkování je možné provádět dávkově.
Na hlavní stránce úlohy jsou vyobrazeny grafy, které ilustrují různé výsledky úlohy.
Jedná se o paměťovou a časovou náročnost a ukončení programů.
PŘÍRUČKA PRO PEDAGOGY
Ve specifikaci je možné definovat metody pro výběr hodnoceného řešení (první, poslední nebo nejlepší správné řešení).
Je možné vybrat způsob porovnání výstupních souborů při zpracování řešení. Každý způsob ignoruje prázdné znaky na konci souborů. Jsou celkem tři způsoby
porovnávání:
striktní – Soubory musí být shodné znak po znaku.
tolerantní – Soubory musí být shodné řádek po řádku. Prázdné řádky jsou ignorovány.
vágní – Soubory jsou rozloženy na řetězcové tokeny, které jsou dále porovnány. Prázdné tokeny jsou ignorovány. Je tedy porovnán pouze neprázdný obsah souborů.
VÝSLEDNÉ STAVY POKUSŮ
COMPILATION_ERROR
chyba při kompilaci, nelze zkompilovat
COMPILATION_TIMEOUT
kompilace nebyla dokončena ve specifikovaném čase
EXECUTION_ERROR
chyba při běhu procesu, která způsobila ukončení nestandardním ukončovacím kódem, nelze řešení spustit
EXECUTION_TIMEOUT
proces musel být násilně ukončen, nedokončil svou činnost v globální časovém limitu (jednotky minut).
OUTPUT_ERROR
řešení vygenerovalo chybný výstup
TIME_ERROR
řešení nedodrželo časový limit úlohy
MEMORY_ERROR
řešení nedodrželo paměťový limit úlohy
MEASUREMENT_OK
měření proběhlo v pořádku
WAITING_TO_PROCESS
řešení čeká na zpracování
PROCESS_ABORTED
zpracování bylo přerušení
OTHER_ERROR
další nespecifikovaná chyba