Istruzioni
ATTENZIONE HO AGGIUNTO I TEST SEGRETI ed aggiornato lo zip.
- Ho aggiornato il file homewor02.zip
- il file mp2.txt aveva alla fine un carattere ']' spurio che ho tolto
- ora la descrizione dell'esercizio 2 è riallineata con il test
- ho aggiunto le istanze dei test 01 e 02
- ho aggiunto le virgole che mancavano in fondo ad alcune righe dei test dell'es3
- ho tolto i trattini presenti in alcune parole (es1) ma non nella matrice
- nel cp9 in fondo alle righe c'era un tab di troppo, l'ho eliminato
- ho aggiunto istanze all'es3 e ne ho attivata una piccola
- ho aggiunto istanze più grandi all'es3 basate su un percorso casuale e il suo simmetrico oppure il suo traslato
- con il 5% di punti tutti dentro
- con il 5% di punti tutti sul bordo
- con 1000 punti tutti fuori
- I timeout sono 5s, 3s, 1s per istanza e cercheremo di NON cambiarli
Per svolgere l'homework:
- Installate le librerie necessarie
- Scaricate il file homework02.zip (AGGIORNATO DEFINITIVO) e scompattatelo in una directory
- Lo zip contiene
- i tre esercizi, che sono descritti all'inizio dei file program01.py program02.py program03.py
- ciascun esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
- altre librerie necessarie ad eseguire i test sulla vostra macchina
- i tre esercizi, che sono descritti all'inizio dei file program01.py program02.py program03.py
- Lo zip contiene
- Posizionatevi nella directory homework02 creata unzippando l'archivio ed editate i file program01.py program02.py program03.py
- Scrivete una descrizione in italiano (o inglese) dell'algoritmo che state implementando in un file di testo algoritmo0X.txt per ciascun esercizio
- E' assolutamente VIETATO metterci codice python o descrizioni a livello di singola istruzione, dovete descrivere il RAGIONAMENTO
- La descrizione deve essere ANONIMA (non indicate chi siete, plis)
- ATTENZIONE: i programmi NON DEVONO eseguire nessun input() o print(), infatti ricevono tutte le informazioni di cui hanno bisogno tramite i parametri della funzione che dovete completare e tornano il risultato con return.
- ATTENZIONE: SONO VIETATE le variabili globali.
- ATTENZIONE: SONO VIETATE librerie per calcolo parallelo/multicore/gpu/multithread.
- ATTENZIONE: i vostri programmi NON DEVONO sfruttare eventuali periodicità o caratteristiche strutturali degli input, ma devono essere applicabili a qualsiasi input valido.
- ATTENZIONE: NON LASCIATE ISTRUZIONI DI TEST NEL PROGRAMMA, A MENO CHE NON SIANO DOPO UNA RIGA
- if __name__ == '__main__':
- vostre istruzioni di test che in questo modo non vengono eseguite durante l'import del file
- if __name__ == '__main__':
- Per eseguire i test
- aprite una finestra "Anaconda Prompt" e posizionatevi nella directory homework02 ottenuta scompattando lo zip
- eseguite il comando (test senza timeout)
- pytest test_01.py -v
- oppure (test del primo esercizio con timeout di 1 secondo per ciascun test e con una stampa dei tempi impiegati per eseguire ciascun test)
- pytest test_01.py -v --timeout 1 --durations 0
- Per chi usa Spyder è possibile eseguire i test direttamente da dentro Spyder installando il plugin spyder-unittest
NOTA: per aprire i file di testo in formato utf8 NON usate Notepad che non riconosce gli accapi Unix ('\n') ma usate Spyder, Notepad++ oppure WordPad
Consegna
Per la consegna dovrete consegnare per ciascun esercizio (for X in [1, 2, 3]: ) solo il file program0X.py e il file algoritmo0X.txt (sono necessari entrambi)
Ecco la pagina di consegna. I test automatici ancora non ci sono, appena posso li attivo (per il momento li lancerò io a mano ogni tanto)
Scadenze
- prima consegna (algoritmo0X.txt e program0X.py) entro le ore 23:59 del 21 novembre 2018
- potete consegnare più volte, vale l'ultima consegna
- se cambiate in qualche modo l'algoritmo aggiornate anche il file algoritmo0X.txt
- SOLO per chi ha consegnato:
- peer-assessment: 3 giorni dalle 8AM del 22 novembre 2018 alle 23:59 del 24 novembre 2018
- 3 algoritmi da valutare per ciascun esercizio, dando consigli su come migliorarli
- peer-assessment: 3 giorni dalle 8AM del 22 novembre 2018 alle 23:59 del 24 novembre 2018
- SOLO per chi ha partecipato al peer-assessment:
- seconda consegna migliorata e feedback sui consigli ricevuti: entro le ore 23:59 del 27 novembre 2018