Nuovo tema esame - romeorizzi/esami-RO-public GitHub Wiki
In questo repository sono presenti vari script (descritti singolarmente qui). Se il tuo obiettivo è quello di usarli così come sono, senza modificarli, allora puoi tralasciarne il funzionamento in dettaglio e considerarli come black-box.
Come creare i nuovi esercizi e in quale formato
-
Se già non l'hai fatto, scarica questo repository aprendo una finestra di terminale e digitando
git clone https://github.com/romeorizzi/esami-RO-public.git
oppure scarica direttamente lo .zip. -
Supponi che la data dell'esame sia YYYY-MM-DD e crea le seguenti cartelle:
-
collections\RO-YYYY-MM-DD: conterrà n + 1 sottocartelle, una per ogni tipologia di esercizio che sarà inserito nel tema d'esame (in formato .yaml), più la cartella graphml-YYYY-MM-DD per i grafi (in formato .graphml);
per esempio, considerando l'appello del 30 settembre 2020, ecco come appare la relativa cartella collections\RO-2020-09-30:
ed ecco il contenuto di una sottocartella:
-
students_lists\YYYY-MM-DD: conterrà dei file .csv con la lista degli studenti iscritti all'appello e le loro chiavi;
-
-
Per ogni tipologia di esercizio che vuoi includere nel tuo tema esame, crea la relativa sottocartella. Al momento (marzo 2021), le tipologie supportate sono le seguenti:
dp_knapsack
dp_lcs
dp_poldo
dp_robot_senza_gemme
dp_triangle
graphs_flows_and_cuts
graphs_min_spanning_trees
graphs_planarity
graphs_shortest_paths
lp_interactive
lp_modelling
lp_two_phases
Le tipologie i cui nomi iniziano con il prefisso
dp_
sono problemi di Programmazione Dinamica; quelle che iniziano congraphs_
sono problemi sui grafi; infine, quelle che iniziano conlp_
sono invece problemi di Programmazione Lineare e Programmazione Lineare Intera. -
Per ogni tipologia che hai aggiunto, crea almeno un'istanza in formato .yaml. Per creare un'istanza, ti invitiamo a consultare questa pagina.
-
Quando hai creato tutte le istanze che vuoi, la cartella collections\RO-YYYY-MM-DD è pronta. Anzi, quasi pronta. Devi controllare che le istanze che hai scritto siano tutte corrette sintatticamente. Lo puoi fare generando i fogli Jupyter corrispondenti e verificandoli uno a uno.
-
Apri una finestra di terminale e posizionati nella cartella
esami-RO-public
. -
Attiva l'ambiente
ROexam
con il comandoconda activate ROexam
: -
Genera tutte le istanze della tua cartella collections\RO-YYYY-MM-DD con il comando
python generate_all_exercises_given_date.py YYYY-MM-DD
: -
Per esempio, nel caso che la data sia 2020-09-30, lanciando lo script sarà creata la cartella
esameRO_2020-09-30_tutti-gli-es
che conterrà una sottocartella per ogni tipologia: -
A questo punto, apri Jupyter nel browser con il comando
jupyter-notebook
per controllare una a una tutte le sottocartelle:Ogni tipologia conterrà una sottocartella per ogni istanza (per ogni file .yaml che avevi definito):
Ogni istanza conterrà una sottocartella per ogni modalità di sottoposizione disponibile:
-
Verifica il corretto funzionamento di ogni foglio Jupyter e fai le dovute modifiche ai file .yaml o agli script se noti qualcosa che non va.
-
-
Ora la tua collezione è pronta.
Come generare i temi d'esame di un appello data la lista di studenti iscritti
-
Supponi che la data dell'esame sia YYYY-MM-DD. Se già non l'hai fatto, crea una nuova collezione di esercizi seguendo le istruzioni riportate sopra alla voce "Come creare i nuovi esercizi e in quale formato".
-
Nella cartella students_lists dovresti avere gli script
start_from_esse3_xls_students_file.sh
eadd_chiavi_al_csv_file.py
: -
Al momento (marzo 2021), la lista di studenti iscritti all'appello di Ricerca Operativa è scaricabile da Esse3 dal Prof. Romeo Rizzi in formato .xls. Copiala nella cartella students_lists\YYYY-MM-DD e controlla che abbia il nome
ListaStudentiEsameExport.xls
. -
Digita
.\start_from_esse3_xls_students_file.sh YYYY-MM-DD
: -
Dovresti avere generato i due file
lista_studenti_iscritti.csv
elista_studenti_iscritti_con_chiavi.csv
, che trovi nella cartella YYYY-MM-DD:Nell'esempio dove la data è 2020-09-30:
-
Torna nella cartella principale
esami-RO-public
e digitapython generate_all_exams_from_students_list_for_date.py YYYY-MM-DD
: -
Sarà generata così, nella cartella principale
esame-RO-public
, la cartellashuttle
contenente tutti i temi d'esame desiderati, uno per studente:Inoltre, sarà generato anche il file
all_exercises_list_YYYY-MM-DD.csv
che riporterà, per ogni studente, l'istanza assegnata di ogni tipologia. -
I tuoi temi d'esame per la data YYYY-MM-DD sono pronti! Puoi inviare a ogni studente la sua relativa cartella manualmente oppure puoi sfruttare gli script definiti qui per caricare la cartella shuttle sui server dell'Università di Verona e inviarli poi in maniera automatica (verifica tuttavia se hai i permessi per farlo!).