Regisztráció és bejelentkezés

Hallgatói feladatokat automatikusan kiértékelő és pontozó keretrendszer tervezése, fejlesztése és bevezetése

Tömegoktatásunk egyik komoly kihívása a nagy számban keletkező feladatmegoldások minősítése. A programozási feladatok értékelése különösen nem triviális feladat, mert számos összetevője van: a kódminőségtől kezdve a specifikációnak megfelelő kimeneten át a szemantika alapos vizsgálatáig. Ezek egy része lefedhető I/O-tesztekkel, de a mérnöki munka összetettsége ennél többet kíván, legalább annyira fontos a megoldás belső szerkezete is. Az így összeadódó értékelési részfeladatok mennyisége hagyományosan nagyon sok emberi erőforrást köt le, amely gépi támogatással jelentősen csökkenthető, a felszabaduló idő pedig olyan oktatási tevékenységre fordítható, ahol valóban szükséges az ember. Ilyen például a gyakori hibák beépítése az oktatásba (megelőzés) vagy a tananyag tematikai fejlesztése. Ezek pedig végül a hatékonyabb tanulást segítik.

A probléma nem újkeletű, ezért mára számos eszköz létezik, azonban a potenciális felhasználóik sokszor nem is hallottak róluk, vagy nincsenek tisztában a felhasználási lehetőségeikkel vagy éppen a licence nem engedi az esetleges átalakítást. Emiatt minden egyes technológia és programozási nyelv esetén sajátot fejlesztenek [1]. Ezek az eszközök az oktatónak rengeteg időt tudnak spórolni azzal, hogy egy értékelés olyan mechanikus lépéseit megtegye, mint a formai ellenőrzés, programok fordítása és futtatása, ill. az előre betáplált tesztesetek végrehajtása. Sok esetben képesek a hallgatóknak előzetes visszajelzést is adni a hibáikról. Hallgatói oldalról az azonnal visszakapott eredmény, egységes javítás, javítási javaslatok és a leadási határidő előtti javítási lehetőség ad ösztönzést a feladatokra adott megoldások csiszolására, kódminőség, hatékonyság, robusztusság javítására.

Ezekről az eszközökről egy kiváló és friss áttekintés található az [1] irodalomban. A fő probléma az, hogy az eszközök száma folyamatosan és gyorsan gyarapszik, így egyre reménytelenebb válogatni a megannyi script közül, hogy megtaláljuk azt, ami leginkább lefedi az igényeinket. Ennél előremutatóbb lenne létrehozni egy modulárisan bővíthető keretrendszert, mely alapjaiban tartalmazza a legtöbb fontos funkciót, és az ellenőrzendő programozási nyelvtől függetlenül valósítja meg a képességek mögötti logikát.

Éppen ezért a cél egy olyan keretrendszer tervezése, megvalósítása és bevezetése volt, mely képes ellátni a hallgatói feladatok automatikus értékelése során a feladatok többségét, és lehetővé teszi a funkcióinak bővítését.

A rendszer motivációját és első felhasználását a Szoftver laboratórium 5/Adatbázisok labor tárgyban előkerülő különböző technológiák (SQL, Java, SOA) segítségével elkészített, csaknem 700 hallgató 2800 házi feladatának értékelése adja. Ennek során az elkészült AKÉP (Automatikus Kiértékelő és Pontozó) rendszer már az első évben is jelentős segítséget nyújtott az oktatói oldalnak, a javítási feladatok jelentős részének elvégzésén kívül dokumentálva a részletes eredményeket, valamint az eltéréseket az emberi és automatikus értékelések között, ahol a manuális értékelés felülbírálta a gépit.

[1] K. R. F. E. F. B. Draylson M. Souza, „A Systematic Literature Review of Assessment Tools For Programming Assignments,” in 2016 IEEE 29th CSEE&T, 2016 Április.

szerző

  • Nyikes Dániel
    Mérnök informatikus szak, mesterképzés
    mesterképzés (MA/MSc)

konzulens

  • Marton József Ernő
    Tudományos segédmunkatárs, Távközlési és Médiainformatikai Tanszék