[AVVISO] Homework 2 obbligatorio (scaduto)

andrea.sterbini (172680 points)
511 927 1776
asked Oct 24, 2019 in Avvisi by andrea.sterbini (172,680 points)
edited Nov 23, 2019 by andrea.sterbini

ATTENZIONE

  • ATTENZIONE: l'algoritmo.txt dev'essere un file di testo utf8, usate direttamente spyder per editarlo
  • eventuali correzioni verranno inserite qui
  • NOTA: il programma test_01.py DISATTIVA la funzione print, quindi non vedrete stampe. Per riattivare le stampe seguite le istruzioni all'inizio dello HW1

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie
  • Scaricate il file HW2obb.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.py
        • l'esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
      • altre librerie e file necessari ad eseguire i test sulla vostra macchina
  • Posizionatevi nella directory HW2obb creata unzippando l'archivio ed editate il file program01.py completando la funzione indicata
  • ATTENZIONE: il programma NON DEVE eseguire nessun input() o print(), infatti riceve tutte le informazioni di cui ha bisogno tramite i parametri della funzione che dovete completare e torna il risultato con return.
  • ATTENZIONE: SONO VIETATE le variabili globali.
  • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
  • ATTENZIONE: E' VIETATO copiare codice dalle librerie di sistema.
  • 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
  • Per eseguire i test
    • aprite una finestra "Anaconda Prompt" e posizionatevi nella directory HW1opz ottenuta scompattando lo zip
    • eseguite il comando (test senza timeout)
      • pytest test_01.py -v -rA
    • oppure (test con timeout di 1 secondo per ciascun test e con una stampa dei tempi impiegati per eseguire ciascun test)
      • pytest test_01.py -v -rA --timeout 1 --durations 0
    • oppure (test con timeout di 1 secondo per ciascun test e stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
      • pytest test_01.py -v -rA --timeout 1 --profile
    • Per far fermare i test al primo errore aggiungete l'opzione -x
    • Per chi usa Spyder:
      • è possibile eseguire i test direttamente da dentro Spyder installando il plugin spyder-unittest (ma senza timeout o parametri aggiuntivi)
      • è possibile ottenere i tempi spesi in ciascuna funzione direttamente da dentro Spyder installando il plugin spyder-line-profiler

NOTA: per aprire i file di testo in formato utf8 NON usate Notepad che non riconosce gli accapi Unix ('\n') ma usate Spyder o Notepad++

Consegna

Dovrete consegnare:

  • program01.py: il programma da voi realizzato
  • algoritmo.txt: una descrizione in italiano (o se necessario in inglese) dell'algoritmo che avete realizzato. La descrizione NON deve contenere codice o pseudocodice troppo dettagliato e deve essere anonima (NON deve contenere il vostro nome/cognome/matricola/nick)
    • ATTENZIONE: l'algoritmo.txt dev'essere un file di testo utf8, usate direttamente spyder per editarlo

La pagina di consegna è https://q2a.di.uniroma1.it/homeworks/delivery?homework=2

Scadenze

  • ore 23.59 del 2/11 entro questa data dovete tutti consegnare i 2 files program01.py e algoritmo.txt
  • Nella serata del 3/11 verrà attivata la fase del peer-assessment formativo (correzione e suggerimento tra pari) e vi verranno assegnati 3 algoritmi anonimi da valutare e per i quali suggerire miglioramenti
  • ore 23.59 del 5/11 entro questa data potete inserire i vostri giudizi e suggerimenti sui 3 algoritmi e ricevere i giudizi dai vostri compagni
    • NOTA: potreste ricevere meno di 3 suggerimenti
  • ore 23.59 del 7/11 scadenza finale per indicare quanto vi sono stati utili i suggerimenti e quindi consegnare una versione migliorata del vostro programma

12 Answers

Christian (15220 points)
2 4 77
answered Nov 6, 2019 by Christian (15,220 points)
Scrivo qui per non aprire una nuova discussione: è già possibile visualizzare le valutazioni che i nostri peer hanno dato ai consigli che gli abbiamo lasciato? O deve terminare la fase di PA?
E
Edward (25950 points)
2 4 172
commented Nov 6, 2019 by Edward (25,950 points)
Devi andare sulla leaderboard, vedi la media dei voti ricevuti nella colonna supporto.
Christian (15220 points)
2 4 77
commented Nov 6, 2019 by Christian (15,220 points)
Grazie! Avevo visto infatti da lì di averli ricevuti, ma nell'avviso mi sembrava di capire che fossero disponibili anche nella pagina relativa al PA (per vedere quale peer ha lasciato quel determinato voto).
f
fraore (790 points)
2 5 13
answered Nov 26, 2019 by fraore (790 points)
Gentile professore,

a distanza di 15 giorni, il mio HW2 ancora risulta senza voto per il problema dell'internal error. è normale? Si tratta solo di attendere ancora un po'?

Grazie mille per la disponibilità,
Buona serata
andrea.sterbini (172680 points)
511 927 1776
commented Nov 27, 2019 by andrea.sterbini (172,680 points)
Ho finalmente visto l'errore nel dettaglio. Il programma fallisce i test perchè è ricorsivo e supera il limite di ricorsioni settate nel Python.

Come il tuo, il programma di un altro ragazzo fa lo stesso errore. Nota che i due programmi sono identici, per cui sono entrambi annullati.

Fai il compito di recupero.