Kvíznapló megjelenítése a Canvasban II.

Abonyi-Tóth Andor | 2022.03.11.
Kvíznapló megjelenítése a Canvasban II.
Cikkünkben megmutatjuk, hogy egy Python program segítségével hogyan nyerhetőek ki információk a kvíznaplóból.

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:

  1. 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.
  2. Itt kattintsunk az Új hozzáférési jegyzék (New Access Token) gombra.
  3. 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!
  4. 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!
  5. A kimásolt tokent helyezzük el a script megfelelő sorában, az access_token változó értékeként!
  6. 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!
  7. 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!
  8. 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.
  9.  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.
  10. 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!