Kvíznapló megjelenítése a Canvasban II.
Előző cikkünkben bemutattuk, hogy a Canvas rendszerben a hallgatók által kitöltött kvízekre vonatkozóan egy naplóhoz is hozzá tudunk férni. A napló adatokat azonban csak egyenként, a hallgatók nevére kattintva érhetjük el, amely igen hosszadalmas lehet nagyobb létszámú csoportok esetén.
A fenti problémára ad megoldást Cserép Máté, az ELTE Informatikai Karának tanársegédje, aki az általa készített Python programot nyilvánosan elérhetővé tette a Github oldalán:
https://gist.github.com/mcserep/9df2edbb6767b9190e438f9ed7f3a944
Cikkünkben nem célunk a Python nyelv megismertetése, illetve a telepítés módjának részletes ismertetése, csupán a script lehetőségeit és használatbavételi módját mutatjuk be.
A scriptet főleg akkor javasoljuk használni, ha a hallgatók jelenléti vizsgán vesznek részt egy laborban, ahol nem használhatnak a vizsga közben saját számítógépet illetve okostelefont, és a vizsga során nem megengedett a segédeszközök használata. Ezen feltételeket a vizsga előtt természetesen ki kell hirdetnünk.
A Python script beállítása
A script futtatásához szükség lesz a requests, illetve datetime modulok telepítésére!
A script működéséhez szükséges beállításokat a ### SETTINGS ### megjegyzés után találjuk. A következőkben a megfelelő értékek megadásához adunk segítséget:
- Ahhoz, hogy a script működhessen, egy hozzáférési tokenre van szükségünk. Ezt úgy tudjuk generálni, hogy belépünk a Canvas felületre, majd elnavigálunk a profilunkra és kiválasztjuk a Beállítások (settings) menüt.
- Itt kattintsunk az Új hozzáférési jegyzék (New Access Token) gombra.
- A cél (purpose) mezőbe írjunk be egy szöveget, amely alapján azonosítani tudjuk a tokent (pl. kvizaudit), majd kattintsunk a Token generálása (Generate token) gombra!
- Ezek után megjelenik egy ablak, amelyből kimásolhatjuk az adott tokent, amely egy igen hosszú, számokból és betűkből álló karakterlánc. A token kimásolására csak most van lehetőségünk, ha az ablakot lezárjuk, akkor többet nem fogjuk elérni ezt az azonosítót, kénytelenek leszünk újat generálni. Fontos, hogy a tokent kezeljük bizalmasan, ne tegyük közzé sehol sem!
- A kimásolt tokent helyezzük el a script megfelelő sorában, az access_token változó értékeként!
- A scriptnek szüksége van a kurzus azonosítójára is. Navigáljunk a kívánt kurzusra, amelyben a vizsgált kvíz el van helyezve. A kurzus kódját a böngésző címsorában láthatjuk a https://canvas.elte.hu/courses/ karakterláncot követően. Ezt a számsort másoljuk ki, és helyezzük el a course_id változóban!
- Szükség van a kvíz azonosítójára is. Navigáljunk a vizsgálni kívánt kvízre, majd a böngésző címsorából másoljuk ki a kvíz azonosítóját, amelyet a /quizzes/ karakterlánc mögött találunk közvetlenül. Ez az érték legyen a quiz_id változó értékeként beállítva!
- További két változót is be kell állítanunk, amely megadja azon alapértékeket, amelyektől való pozitív eltérést kívánunk megjeleníteni. A threshold_interruptions változóban megadhatjuk a kvízmegszakítások számát. Ha például az érték 10, akkor a megjelenő listában azon hallgatók neve jelenik meg, akik ezen értékkel megegyező, vagy ennél nagyobb számú alkalommal szakították meg a kvízt.
- A script képes azt is vizsgálni, hogy hány kérdés esetén szakították meg a kitöltést a hallgatók. Ennek megállapítása akkor lehetséges, ha a kérdéseket egyesével kapták meg a hallgatók a kvíz során, és válaszadás után nem lehetett visszalépni. A threshold_questions változónak azt az értéket kell megadni, amellyel megegyező vagy nagyobb számú kérdésmegszakítást kívánunk megjeleníteni a listában.
- Amennyiben beállítottuk az értékeket, a python3 canvas-audit.py paranccsal futtathatjuk a programot. Eredményül egy listát kapunk, a következő tartalommal:
Students above the thresholds: #1 John Doe (neptuncode): 3 total interruptions #2 Jane Doe (neptuncode): 4 total interruptions |
A lista tehát azon hallgatók nevét és Neptun kódját tartalmazza, akik a beállított érték felett szakították meg a kvíz kitöltését. Ennek nem feltétlenül az az oka, hogy csaltak, ezért az eredmény alapján ne éljünk automatikus retorzióval, de a kiugróan magas megszakítások okát érdemes megvizsgálnunk és mindenképpen egyeztessünk a hallgatókkal!