Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

[HOMEWORK] Homework 2 obbligatorio

andrea.sterbini (207940 points)
756 1270 2377
in Avvisi by (208k points)
edited by

ATTENZIONE

  • eventuali correzioni verranno inserite qui
    • il risultato ritornato dalla funzione dev'essere una lista di interi
    • Se in Windows avete un errore di sintassi della libreria testlib
      • installate l'ultima versione di Anaconda (2020.07)
      • oppure cambiate la riga 46 di testlib da
      • print(f"Importing {name} (globals, locals, {fromlist=}, {level=}) (not allowed)")
      • a

      • print(f"Importing {name} (globals, locals, {fromlist}, {level}) (not allowed)")
  • NOTA: per eseguire i test SENZA i controlli ed il timeout modificate test_01.py settando la variabile DEBUG=True

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (COMPRESO stopit)
  • Scaricate il file HW2req.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.ita.py (in italiano) oppure program01.eng.py (in inglese)
        • l'esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
      • un file di testo vuoto program01.txt in cui descrivere il vostro algoritmo
        • altre librerie e file necessari ad eseguire i test sulla vostra macchina
    • Posizionatevi nella directory HW2req creata unzippando l'archivio ed rinominate il file program01.ita/eng.py che preferite con il nome program01.py
    • Editate il file program01.py implementando le funzioni necessarie a risolvere l'esercizio.
    • Editate il file program01.txt e descrivete l'algoritmo utilizzato nel vostro programma.
    • ATTENZIONE: nel file program01.txt NON inserite nè codice nè il vostro nome/id, deve restare anonimo.
    • 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: 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 HW2req 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++

    Scadenze

    • La prima scadenza obbligatoria per tutti è: ore 23:59 del 1° novembre 2020
    • Il 2 novembre vi verranno assegnati fino a 3 file program01.txt da valutare e consigliare entro le 23:59 del 3/11/20
    • Riceverete fino a 3 suggerimenti dai vostri colleghi e potrete a quel punto fare ulteriori consegne dopo aver valutato il consiglio ricevuto (fino alle 23:59 del 5/11/20)

    Prima Consegna obbligatoria entro le 23:59 del 1/11/20

    Dovrete consegnare entrambi i file program01.py e program01.txt entro la prima scadenza.

    Partecipando alla fase di peer-assessment (valutazione tra pari) avrete altri 4 giorni a disposizione.

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

    Potete consegnare più volte, vale l'ultima.

    11 Answers

    1
    1696080 (140 points)
    0 0 1
    by (140 points)
    Buon giorno, volevo sapere se è obbligatorio nel mio caso svolgere l'homework 2 di recupero e se aver preso 4.5 stelle all'homework 2 nella sezione grade della leaderbord sia una cosa positiva. In ogni caso mi chiedevo se posso svolgere homework 2 di recupero per esercitarmi. Grazie
    andrea.sterbini (207940 points)
    756 1270 2377
    by (208k points)
    Come spiegato altrove, i giudizi ricevuti nel PA non danno voto.

    Nello HW2 hai 0, devi fare quello di recupero