Gestione Quiz

Gestione Quiz è un sistema di gestione di quiz on line.

Il docente, una volta inserito nel database dall'amministratore, può accedere tramite autenticazione CAS (Central Authentication Service) dell'Università di Parma. Gli esterni e coloro che non potessero usare il CAS possono richiedere un account (email e password) all'amministratore: educal@unipr.it

A ciascun docente vengono associati uno o più insegnamenti. Un insegnamento può essere associato a più docenti. Subito dopo l'accesso, al docente viene richiesto di selezionare l'insegnamento col quale intende lavorare.

Una volta scelto l'insegnamento, il docente può selezionare una delle seguenti voci:

A parte l'ultima, tutte le voci sono legate a uno specifico insegnamento e non vengono condivise tra insegnamenti diversi.

Esami

Questa voce è stata inserita al primo posto perché, a regime, sarà la voce più utilizzata. I termini 'esame' e 'prova' vengono di seguito utilizzati con lo stesso significato, in quanto un 'esame' potrebbe essere una 'prova' intermedia.

Cliccando su 'Esami', appare l'elenco delle prove, con la più recente in testa. La voce 'Nuova prova' permette di aggiungere una nuova prova.

Cliccando su 'Mostra' si vedranno i dati della singola prova.

'URL della prova' è l'indirizzo, relativo all'hostname, che lo studente deve usare per accedere al test.

'Istruzioni per il candidato' è un breve testo che appare nel blocco sempre visibile in cima al quiz.

'Test Num.' indica il numero del test utilizzato (v. Test).

Se 'Random' è true, i quesiti, una volta scelti a caso tra i vari argomenti (v. Test), vengono mescolati.

Il campo 'Avviso' indica quanti minuti prima della fine della prova (di 'Durata' minuti) lo studente riceve l'avviso che la prova sta per terminare. Se lo studente non clicca sul pulsante 'Termina' prima dello scadere del tempo, la prova viene terminata automaticamente (e le risposte salvate) dopo un numero di minuti pari alla somma dei valori 'Durata' più 'Avviso'.

Di norma per una data prova vengono fissati il tempo di attivazione e quello di chiusura. Al di fuori di questo intervallo di tempo non è possibile accedere alla prova. Se manca il tempo di attivazione, questo non viene controllato; cioè la prova è attiva da sempre. Se manca il tempo di chiusura, questo non viene controllato; cioè la prova non viene mai chiusa.

Quando si inserisce o si edita una prova d'esame, è possibile fare l'upload dell'elenco degli iscritti alla prova. Il file da uploadare deve essere nel formato csv prodotto da IscrizioNet. In questo caso, gli studenti vengono aggiunti anche agli iscritti all'insegnamento e all'elenco completo (se non già presenti).

Formato del file csv prodotto da IscrizioNet:

"Cognome","Nome","Facolta'","Corso","Email","Matricola","Data iscrizione","Ora iscrizione","Note"

Se la lettura del file contenente l'elenco degli iscritti dà errore, controllare che nel campo "Note" non ci siano degli accapo.

Per poter eseguire una prova lo studente deve essere iscritto all'insegnamento. Se il campo 'Elenco di candidati' è true, deve essere iscritto anche alla prova. Se è false, viene aggiunto automaticamente agli iscritti alla prova al momento in cui esegue il test. L'elenco degli studenti iscritti a una prova è un sottoinsieme dell'elenco degli studenti iscritti all'insegnamento. Perché uno studente possa essere iscritto a una prova, deve essere iscritto al relativo insegnamento. La cancellazione di uno studente dall'elenco degli iscritti a una prova non ha effetto sull'elenco degli iscritti all'insegnamento.

Di norma uno studente non può ricominciare una prova già avviata, né ripetere una prova già eseguita. Solo se il campo 'Libera' è true lo studente può ripetere una prova un numero arbitrario di volte.

Se 'Lista di postazioni' è true, il test può essere eseguito soltanto dalle postazioni selezionate (v. più avanti). In caso contrario, fatte salve le altre condizioni, il test può essere eseguito da qualsiasi computer connesso al web.

L'opzione 'Mostra', oltre a visualizzare i dati della prova, permette di eseguire una delle seguenti operazioni.

Mostra test
Visualizza la lista completa dei quesiti di tutti gli argomenti selezionati nel test. Tra questi verranno estratti quelli di ciascuno studente.
Iscritti
Visualizza l'elenco degli iscritti alla prova e permette di aggiungerne a partire dagli iscritti all'insegnamento o di eliminarne alcuni o tutti.
Postazioni
Permette di selezionare le postazioni abilitate all'esecuzione del test.
Risultati
Permette di vedere i risultati complessivi della prova, ordinabili secondo vari campi, e di accedere al test del singolo studente.

Test

Attraverso questa voce è possibile costruire dei test. Un test è costituito da un certo numero di domande e ogni domanda viene presa a caso tra quelle appartenenti a uno o più argomenti. Se un argomento ha dei sottoargomenti (v. Argomenti), tutto il sottoalbero dell'argomento viene usato nella scelta casuale della domanda. È anche possibile, nella scelta di una domanda, prendere in considerazione argomenti diversi non interdipendenti.

Quesiti

Un quesito (domanda) può appartenere a una delle seguenti tipologie:

Il quesito ha un numero univoco ed è associato a uno o più argomenti. Ogni quesito ha un peso (default 10) e un certo numero di risposte alternative pesate (max. 8). Di norma il peso della risposta è 1 per la risposta corretta, 0 per quella errata. Fa eccezione la tipologia TF, che per la risposta errata richiede un numero negativo (di norma -1).

Argomenti

Gli argomenti sono organizzati ad albero. Ad ogni insegnamento è associato un sottoalbero nell'albero degli argomenti e il docente può gestire questo sottoalbero. La radice di questo sottoalbero è figlia del nodo 'Argomenti', che è la radice di tutti gli alberi e che puo' essere gestito solo dall'amministratore attraverso l'insegnamento fittizio "Gestione argomenti".

Per aggiungere un nuovo argomento è sufficiente assegnargli un nome e selezionare il nodo genitore.

Studenti

Visualizza e permette di gestire l'elenco degli studenti iscritti all'insegnamento. Il docente può aggiungere, modificare o cancellare studenti dall'elenco degli iscritti all'insegnamento. L'elenco degli studenti iscritti all'insegnamento è un sottoinsieme dell'elenco completo degli studenti. La cancellazione di uno studente dall'elenco degli iscritti all'insegnamento non ha effetto sull'elenco completo.

Qualora lo studente non fosse in possesso di un account universitario (CAS), o se ne fosse scordato la password, è possibile attribuirgli una password locale. In questo caso lo studente può avviare il quiz attraverso il 'Login alternativo'. Si può assegnare una password in fase di creazione ('nuovo studente') o di modifica. In 'modifica' è anche possibile eliminare la password dello studente. In quest'ultimo caso, naturalmente, lo studente non potrà più usare il login alternativo, ma dovrà autenticarsi tramite il CAS.

Entrando con il login alternativo è inoltre sempre possibile utilizzare una password passpartout associata all'insegnamento.

Solo l'amministratore può intervenire sull'elenco completo degli studenti, in quanto una cancellazione da quest'ultimo elenco implica la cancellazione dal database di tutti i dati relativi allo studente, cioè di tutte le prove sostenute in qualsiasi insegnamento e dei relativi risultati.

Dettagli tecnici

Questo software è stato sviluppato da Eduardo Calabrese a partire da giugno 2009. Il framework utilizzato è Ruby on Rails, che si basa sul linguaggio Ruby. Il creatore di questo linguaggio sintetizza così la filosofia che lo ha guidato nel design:

Ruby is designed to make programmers happy.

Ruby on Rails è un framework che rende più facile lo sviluppo, il trasferimento su server (deploy) e il mantenimento di applicazioni web. Il design di Rails si basa su due concetti chiave: DRY (Don't Repeat Yourself) e "Convention over configuration". Le applicazioni Rails usano una architettura MVC (Model-View-Controller) ed integrano features quali AJAX (Asynchronous Javascript and XML) e REST (Representational State Transfer).

Il database manager utilizzato è MySQL.

Ringraziamenti

Si ringrazia Massimo Bertozzi per gli utili suggerimenti durante lo sviluppo e la sperimentazione del progetto. Un ringraziamento anche a Enrico Serracca che ha contribuito durante il suo lavoro di tesi ad alcuni aspetti importanti del progetto, tra i quali l'autenticazione CAS, l'uso di TinyMCE, la gestione della password dello studente e di quella passpartout.