Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
ON-LINE AUTOMATIKUS FELADATBEADÓ ÉS ÉRTÉKELŐ RENDSZER ONLINE EVALUATION SYSTEM
Horváth Gyula Szegedi Tudományegyetem Informatikai Tanszékcsoport Összefoglaló A Szegedi Tudományegyetem Informatikai Tanszékcsoportján kifejlesztett és használatos feladatbeadó és értékelő rendszer célja, hogy támogatást biztosítson egyénileg megoldandó feladatok kiosztásában, a feladatok teljesítésének ellenőrzésében, a hallgatók munkájának nyomon követésében. A rendszert mind az oktatók, mind a hallgatók webes felületen keresztül használhatják. Az elsődleges cél az volt, hogy kötelező programok on-line és automatikus értékelését biztosítsa, azonban a rendszer akkor is sok segítséget ad az oktatóknak, ha a feladat nem értékelhető automatikusan. A rendszer hatékonyan támogatja zárthelyi dolgozatok lebonyolítását, különösen hasznos az azonnali, automatikus értékelés biztosítása. Plágium ellenőrzés megvalósítására a Berkeley-ben kifejlesztett MOSS szoftvert használjuk. A rendszer megvalósítására használt szoftver komponensek: Apache Web-szerver, MySQL adatbázis-kezelő, LDAP azonosítás-kezelő, PHP weboldalkezelő. A rendszer használatával az oktatók szervezési, adminisztrációs munkát takaríthatnak meg, a legfontosabb hatás azonban a hallgatók számítógépes problémamegoldó készségének fejlesztése terén mérhető.
Kulcsszavak On-line, automatikus, kiértékelés, plágium-ellenőrzés
Abstract An online automatic evaluation system has been developed at the University of Szeged, Institute of Informatics. The system is a simple, special propose course management system. The main purpose is to provide support for instructors and students in assignment fulfillment. The system is for collecting and grading solutions to (programming) assignments, providing feedback on submitted solutions, and maintaining a database with all results. The system supports automatic evaluation of submitted solutions (programs). The system provides a web-based interface. Students can submit solution and obtain evaluation report immediately using the interface. Instructors can use the system to manage assignments and to keep track of the student’s work. The MOSS system is used for plagiarism detection for submitted solutions. This software had been developed at Berkeley and currently is being provided as an internet service at Stanford. The evaluation system is implemented by the following software components: Linux operating system, Apache web server, MySQL database management system, LDAP for authentication and PHP scripting language.
Keywords online, evaluation, plagiarism detection, course management
1
Informatika a felsőoktatásban 2008
1.
Debrecen, 2008. augusztus 27-29.
A feladatértékelő rendszer célja
A Szegedi Tudományegyetem Informatikai Tanszékcsoportján kifejlesztett és használatos feladatbeadó és értékelő rendszer (a továbbiakban Bíró) célja, hogy támogatást biztosítson egyénileg megoldandó feladatok kiosztásában, a feladatok teljesítésének ellenőrzésében, a hallgatók munkájának nyomon követésében. Az elsődleges cél az volt, hogy kötelező programok on-line és automatikus értékelését biztosítsa. Azonban a rendszer akkor is sok segítséget ad az oktatóknak, ha a feladat nem értékelhető automatikusan. A rendszert mind az oktatók, mind a hallgatók webes felületen keresztül használhatják. A rendszer hatékonyan támogatja zárthelyi dolgozatok lebonyolítását, különösen hasznos az azonnali, automatikus értékelés biztosítása. Plágium ellenőrzés megvalósítására a Berkeley-ben kifejlesztett MOSS szoftvert használjuk. A rendszer használatával az oktatók szervezési, adminisztrációs munkát takaríthatnak meg. Ez különösen fontos nagy létszámú kurzusok kezelésekor. Az elmúlt félévben közel 20000 feladat lett kiosztva a rendszerben, a feladatok többsége automatikus kiértékelésű volt. Egyszerű és kényelmes lehetőséget ad a hallgatók munkájának nyomon követésére. A legfontosabb hatás azonban a hallgatók számítógépes problémamegoldó készségének fejlesztése terén mérhető. Rendszer használható programozási versenyek lebonyolítására is. 2.
A rendszer funkciói
A rendszer három felhasználói csoportot különböztet meg, a megfelelő jogosultságokkal: adminisztrátor, oktató és hallgató. Az adminisztrátor fő feladata, hogy kurzust vegyen fel a rendszerbe és a felvett kurzushoz felelős oktatót rendeljen. A kurzussal kapcsolatos minden további műveletet a felelős oktató végezhet. A felelős oktató további oktatókat vehet fel a kurzushoz, akik csak olvasási jogosultsággal rendelkeznek. Minden hallgató, akinek van felhasználói azonosítója a tanszékcsoport üzemeltetésében lévő számítógépes rendszerhez, alanyi jogon használhatja a Bíró rendszert. A hallgatókat és oktatókat nem kell külön felvenni a rendszerbe. A rendszer minden felhasználójának, legyen az oktató vagy hallgató, az azonosítása a központi LDAP szerveren történik. 1.1.
Hallgatói funkciók
A hallgató bejelentkezésekor az alábbi menüt kapja.
Feladat kérése. A menüelem aktivizálására megjelenítődik a hallgató számára kiosztott feladatok listája. A lista tartalmazza a feladatleírásra mutató hivatkozást, továbbá a teljesítési határidőt. A feladatleírás mindig a feladat.pdf állományban van, amit a hallgató letölthet, vagy közvetlenül megnyithat. Ha a feladathoz minta bemenet/kimenet, vagy más segédanyagot biztosít a feladat kiírója, akkor az a minta.zip állományban van, és a rá mutató hivatkozás megjelenik a listában. Feladat beadása. A kiosztott feladatok listájából kell kiválasztani azt, amelyikhez megoldást akar benyújtani. A kiválasztás után megjelenik, hogy ez hányadik próbálkozás a megengedettek közül. A beadandó fájl neve beírható az input ablakban, vagy tallózással kiválasztható. A fájl kiterjesztését általában a feladatleírás szerint kell megadni, amely programok esetén a programozási nyelvnek megfelelő. Sikeres feltöltést követően a rendszer azonnal elvégzi az értékelést, amennyiben a feladat
2
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
automatikus értékelésű. Az értékelés eredményét a harmadik menüpontban lehet megnézni. Eredmények megtekintése. A kiosztott feladatok listájából kiválasztva a megfelelőt, megjelenik az eddigi próbálkozások listája, az elért pontszámmal. A lista egy elemére kattintva megjelenik az adott benyújtás értékelési riportja. Ez minden tesztesetre tartalmazza az elért pontszámot, a futási időt és az értékelési üzenetet. A feladat kiírója megengedheti, hogy a hallgató megtekinthesse az értékelés során keletkező valamennyi, vagy csak bizonyos állományokat. Hasznos lehet például a hallgatónak, ha megnézheti a kimeneti állományokat. 1.2.
Oktatói funkciók
A kurzushoz rendelt felelős oktató az alábbi funkciókat végezheti.
Új feladat kiírása. Új feladat kiírásakor meg kell adni a feladat megnevezését, a leadási (teljesítési) határidőt (óra, perc pontossággal), a megengedett próbálkozások maximális számát, és a teljesítéshez előírt minimális pontszámot. Feladat módosítása. Már kiírt feladat ebben a menüpontban módosítható. Feladat feltöltése. Adott témában kiírt témához (feladatcsoporthoz) a következő komponenseket tartalmazza automatikus értékelés esetén. A témához egyetlen robot.sh értékelő-motort kell megadni. Minden feladathoz meg kell adni a feladatleírást a feladat.pdf fájlban, az időlimitet és memórialimitet tartalmazó fájlt, továbbá a teszteléshez használt bemeneti és kimeneti fájlokat. Ha minta bemenetet és kimenetet, vagy bármilyen segédanyagot akarunk adni, azt a minta.zip tömörített fájlban kell megadni. Egy feladat komponenseit a feladatsorszám alatti könyvtárba kell rakni, és zip tömörítéssel kell egy fájlba csomagolni a témához tartozó komponenseket. Módosítás lehetséges, mert minden feltöltés felülírja a létező fájlokat. A robot.sh értékelő-motort funkcióját és specifikációját a következő fejezetben tárgyaljuk. Ha nem akarunk (vagy nem lehet) automatikus értékelést, akkor nem kell megadni robot.sh-t, csak a feladatleírást tartalmazó feladat.pdf kötelező. Feladatok kiosztása. Feladat kiosztása
párokat tartalmazó fájl megadásával történi. Eredmények listázása. Adott feladat listája az alábbi adatokat tartalmazza, soronként egy-egy hallgatóra: A hallgató azonosítója, EHA kódja, neve, a feladat sorszáma, a próbálkozások száma, az elért maximális pontszám, nyelv, a teljesítés dátuma, melyik próbálkozásra érte el a maximális pontszámot (ha több is van, akkor az első ilyen), hivatkozás a riport fájlra. Az azonosító egyben hivatkozás a hallgató könyvtárára, így az oktató azonnal belenézhet böngészővel a programba, és a teszteléskor keletkezett valamennyi fájlba, így az kimenetekbe is. A lista csak azokat tartalmazza, akik legalább egyszer próbálkoztak. A teljes lista kérhető fájlba, ami csv formátumú, így táblázatkezelővel feldolgozható. A rendszer által használt adatbázis a rendszeren kívül is elérhető, ezért további kimutatások készíthetők. Új oktató felvétele. A felelős oktató további oktatókat vehet fel a kurzushoz, akik csak olvasási jogosultsággal rendelkeznek, kivéve feladatok kiosztását. Zárthelyi dolgozat kezeléséhez szükség van arra, hogy a gyakorlatvezető is ki tudja osztani a feladatokat, ne csak a felelős oktató. Oktató törlése. Feladat törlése.
3
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
A rendszer lehetővé teszi, hogy az adott kurzushoz felvett oktatók (nem csak a felelős oktató) böngészővel láthassák a feladathoz feltöltött valamennyi állományt. A hallgatók munkájának nyomon követése, segítése miatt fontos, hogy az oktató láthassa a benyújtott programokat, és az értékelés során keletkezett fájlokat, különösen a program futtatásának eredményeként keletkező kimeneteket. A rendszer zárthelyi dolgozatok támogatására is használható. Ekkor az adott laborban lévő munkaállomások szeparált környezetben működnek a ZH időtartamára. Minden munkaállomás csak lokális szolgáltatást nyújt, hálózati kapcsolata csak a Bíró szerverrel van. A rendszer minden benyújtást naplóz, így kizárható, hogy kívülről adjanak be megoldást. A hallgató azonosítása a rendszerben a számítógépes felhasználói azonosítójával történik, a tanulmányi rendszerben pedig az EHA azonosítójával. Adatvédelmi előírásokra hivatkozva az egyetem nem ad ki olyan listát, amely mindkét azonosítóját tartalmazza. Ezért megkérjük a hallgatókat, hogy regisztrálják magukat a rendszerben, ami azt jelenti, hogy egy weboldalon bejelentkezve megadják az EHA kódjukat, amit adatbázisban rögzítünk. Ezt az adatbázist használva tudja az oktató megkapni az EHA kódhoz tartozó számítógépes felhasználói azonosítót, ami szükséges például a feladatok kiosztásához. A rendszer egy mellékes funkciójaként használható előadás jelenlét ellenőrzésére. Az előadáson megjelent hallgató kap egy kódot, (11 jegyű decimális számot), amelyet webes felületen be kell adnia meghatározott időpontig. A plágium ellenőrzés félig automatikus módon működik a rendszerben. A Berkeley-ben kifejlesztett MOSS (Mesaure Of Software Similarity) rendszert használjuk. Jelenleg a Stanford egyetemen működik, mint oktatási célra ingyenesen igénybe vehető internet szolgáltatás a http://moss.stanford.edu/ címen. Az összehasonlítandó programokat fel kell tölteni a szerverre, elvégzi az összehasonlítást, majd visszaadja az eredményt tartalmazó weboldal címét. Az oldal páronként tartalmazza a hasonlóság mértékét százalékban, és a két program azonos részeit azonos színnel színezi ki. 3.
Megvalósítás
A rendszer Linux operációs rendszerben működik. Az Apache web-szerver dedikált hardveren fut. Az adatbázis-kezelést az ugyancsak ezen a gépen futó MySQL szerver biztosítja. A felhasználók azonosítására és a jogosultságok kezelésére a központi LDAP szervert használjuk. A webes felület megvalósítása PHP nyelven írt programokkal történik. A tényleges értékelés, tehát a fordítás, futtatás és kimenet-ellenőrzés külön csak erre a célra fenntartott munkagépeken valósul meg, amelyeken szintén Linux fut. A rendszer skálázható, a munka-gépek száma tetszőleges lehet. A benyújtott feladatmegoldások (programok) tárolása olyan könyvtárstruktúrában történik, amely megfelel a kurzus/téma/hallgató/próbálkozás hierarchiának. A feladatokhoz tartozó fájlok pedig a kurzus/téma/feladat hierarchiát követik. A rendszer klaszter által szolgáltatott lemezterületet használ, a megosztást NFS fájlrendszer szolgáltatja. A jogosultságok a megfelelő könyvtárban elhelyezett .htaccess állományokkal, LDAP azonosítással biztosíthatók. A robot.sh értékelő-motor feladata: a benyújtott forrásprogram fordítása, futtatás minden tesztesetre, és a kimenetek helyességének ellenőrzése. Bemenetként parancssorban megkapja a hallgató azonosítóját, a kurzuskódot, a téma sorszámát, a feladat sorszámát, a próbálkozás számát, és a nyelvet. Kimenetként a pont.txt fájlba kell írnia a pontszámot és a riport.txt fájlba a tesztesetenkénti értékelési üzenetet. A robot.sh bármilyen program lehet, de általában
4
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
parancsértelmező szkript. A feladatkészítők számára biztosított egy minta robot.sh, amely legfeljebb apró módosítással alkalmassá tehető bármely feladat számára. A robot.sh a program végrehajtását szeparált környezetben végzi. A program fork-exec mechanizmussal gyerekprocesszusként fut, chroot korlátozással, nobody tulajdonosként. A végrehajtás elindítása előtt beállítja az erőforráskorlátokat, többek között az időlimitet, a memórialimitet és az output fájlméret korlátját. Java programok esetén a java virtuális gép fut gyerekprocesszusként, és a memóriakorlátozás a virtuális gép Xmx paraméterének beállításával történik. A végrehajtási hibakód fájlba íródik, amit a riport.txt értékelési üzenetében megadhatunk. 4.
Tapasztalatok
A rendszer használatával az oktatók szervezési, adminisztrációs munkát takaríthatnak meg. Ez különösen fontos nagy létszámú kurzusok kezelésekor. Az elmúlt félévben közel 20000 feladat lett kiosztva a rendszerben, a feladatok többsége automatikus kiértékelésű volt. Egyszerű és kényelmes lehetőséget ad a hallgatók munkájának nyomon követésére. A legfontosabb hatás azonban a hallgatók számítógépes problémamegoldó készségének fejlesztése terén mérhető. Azok a hallgatók, akinél a számonkérésre ezt a módszert alkalmazták már az első félévben, jobb felkészültséget mutatnak, így nagyobb arányban tudják teljesíteni a további kurzusokat. Nem elhanyagolható hatása a rendszernek, hogy a hallgatókat szisztematikus, fegyelmezett munkára ösztönzi.
5