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
  1. 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.

  2. 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;

  3. 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 con graphs_ sono problemi sui grafi; infine, quelle che iniziano con lp_ sono invece problemi di Programmazione Lineare e Programmazione Lineare Intera.

  4. Per ogni tipologia che hai aggiunto, crea almeno un'istanza in formato .yaml. Per creare un'istanza, ti invitiamo a consultare questa pagina.

  5. 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 comando conda 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.

  6. Ora la tua collezione è pronta.

Come generare i temi d'esame di un appello data la lista di studenti iscritti
  1. 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".

  2. Nella cartella students_lists dovresti avere gli script start_from_esse3_xls_students_file.sh e add_chiavi_al_csv_file.py:

  3. 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.

  4. Digita .\start_from_esse3_xls_students_file.sh YYYY-MM-DD:

  5. Dovresti avere generato i due file lista_studenti_iscritti.csv e lista_studenti_iscritti_con_chiavi.csv, che trovi nella cartella YYYY-MM-DD:

    Nell'esempio dove la data è 2020-09-30:

  6. Torna nella cartella principale esami-RO-public e digita python generate_all_exams_from_students_list_for_date.py YYYY-MM-DD:

  7. Sarà generata così, nella cartella principale esame-RO-public, la cartella shuttle 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.

  8. 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!).

⚠️ **GitHub.com Fallback** ⚠️