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

Do you need help?

[HOMEWORK] Homework 1 opzionale

andrea.sterbini (207920 points)
750 1267 2373
in Avvisi by (208k points)
edited by

ATTENZIONE

  • eventuali correzioni verranno inserite qui, tenete d'occhio questa pagina
  • NOTA: quest'anno la funzione da implementare si chiama ex1 invece che es1
  • NOTA: il programma test_01.py DISATTIVA la funzione print, quindi non vedrete stampe. per riattivare le commentate/cancellate le righe

        with    self.ignored_function('builtins.print'), \
                self.ignored_function('pprint.pprint'), \

                self.forbidden_function('builtins.input'), \
                self.timeout(1), \
                self.timer(1):
            result = program.ex1(test_int_seq, test_subtotal)

in modo che diventino

        with self.forbidden_function('builtins.input'), \
                self.timeout(1), \
                self.timer(1):
            result = program.ex1(test_int_seq, test_subtotal)

Allo stesso modo potete eliminare il timeout commentando self.timeout e self.timer

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie
  • Scaricate il file HW1opz.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 HW1opz creata unzippando l'archivio ed editate il file program01.py
  • 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 che viene fatto dai test
  • Per eseguire i test
    • aprite una finestra "Anaconda Prompt" e posizionatevi nella directory HW1opz ottenuta scompattando lo zip
    • eseguite il comando
      • pytest test_01.py -v -rA
    • oppure (test con una stampa dei tempi impiegati per eseguire ciascun test)
      • pytest test_01.py -v -rA --durations 0
    • oppure (test con stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
      • pytest test_01.py -v -rA --profile
    • Per far fermare i test al primo errore aggiungete l'opzione -x
    • Per chi usa Spyder 4:
      • è 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

Per la consegna dovrete consegnare solo il file program0X.py

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

Consegnando potete controllare come si posiziona il vostro programma nella graduatoria complessiva.

Potete consegnare più volte, vale l'ultima.

Scadenze

  • Questo homework non ha scadenza, non richiede il peer-assessment e non dà bonus.
3.4k views

2 Answers

federico_fiorelli (9960 points)
2 5 15
by (10.0k points)
Prof scusi, ma la consegna dà qualche punto qui sul forum?
D
Davide_Giannetti (720 points)
0 0 1
by (720 points)
per la consegna di un qualsiasi homework basta andare sulla sezione Course del forum, da li andare su Submission per poi scegliere quale homework consegnare.
Burno (2740 points)
0 0 5
by (2.7k points)
Credo che Federico abbia chiesto se la consegna dell'homework conferisca punti sul forum o meno.

Rispondendo alla domanda, penso di no. In caso contrario sarei contento di essere smentito :D
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
No, i punti di Q2A si ricevono per aver aiutato gli altri rispondendo alle loro domande (senza spammare, plis).

Gli HW (anche opzionali) vi fanno fare esercizio (fondamentale a passare l'esame in laboratorio) e la consegna vi permette di vedere come ve la siete cavata rispetto ai timeout e rispetto ai colleghi
S
S3b4stian82 (2250 points)
5 6 27
by (2.3k points)
Una volta effettuata la submission, quanto tempo è richiesto per visualizzare le metriche sul codice ed i risultati dei test più leaderborad?

Grazie!
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)

Una quindicina di minuti (a meno che Murphy non ci metta lo zampino).

andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Data altra spintina