Istruzioni
ATTENZIONE: HO AGGIUNTO I TEST "SEGRETI"
Per svolgere l'homework:
- Installate le librerie necessarie
- Se avete installato Anaconda aprite una finestra "Anaconda Prompt" ed eseguite i comandi
- conda install -c conda-forge ddt
- conda install pytest-timeout
- Se invece usate python3 senza Anaconda
- pip install ddt
- pip install pytest-timeout
- Se avete installato Anaconda aprite una finestra "Anaconda Prompt" ed eseguite i comandi
- Scaricate il file homework01.zip 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 homework01 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(), infatti ricevono tutte le informazioni di cui hanno bisogno tamite i parametri della funzione che dovete completare.
- ATTENZIONE: potete usare SOLO la libreria math
- ATTENZIONE: non usate variabili globali, ne possono venire malfunzionamenti difficili da debuggare.
- ATTENZIONE: per semplicità di costruzione abbiamo usato dei test "periodici" che replicano un input piccolo più volte. NON sfruttate questa struttura nei vostri algoritmi. Aggiungerò dei test non periodici per penalizzare questo tipo di soluzioni.
- Per eseguire i test
- aprite una finestra "Anaconda Prompt" e posizionatevi nella directory homework01
- 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
- conda install -c spyder-ide spyder-unittest
- oppure per chi non usa Anaconda
- pip install spyder-unittest
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)
Consegna
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 31 ottobre 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 1 novembre 2018 alle 23:59 del 3 novembre 2018
- 3 algoritmi da valutare per ciascun esercizio, dando consigli su come migliorarli
- peer-assessment: 3 giorni dalle 8AM del 1 novembre 2018 alle 23:59 del 3 novembre 2018
- SOLO per chi ha partecipato al peer-assessment:
- seconda consegna migliorata e feedback sui consigli ricevuti: entro le ore 23:59 del 6 novembre 2018