Do you need any help?

[AVVISO] Homework 8 obbligatorio (ultima scadenza ore 23:59 del 19/12)

andrea.sterbini (172780 points)
514 935 1789
asked Dec 5, 2019 in Avvisi by andrea.sterbini (172,780 points)
edited Dec 18, 2019 by andrea.sterbini

ATTENZIONE

  • Il file esempio2.txt manca dell'ultimo accapo (che dovrebbe esserci secondo la descrizione) ... state attenti che il vostro programma non faccia affidamento a quell'ultimo "\n" altrimenti non riconoscete la ZEBRA
  • Per una svista nel testo che descrive l'esercizio abbiamo scritto 'D' (destra) e 'B' (basso) e nei test e nei nostri programmi invece abbiamo sempre usato 'D' (destra) e 'G' (giù). Usate 'D' e 'G'.
  • ATTENZIONE: mancavano dei file, ho aggiornato lo zip, riscaricatelo (5 dic ore 16)
  • 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 mettete a True la variabile DEBUG all'inizio del file.

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (compresa la libreria stopit)
  • Scaricate il file HW8obb.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 HW6obb 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=10

Scadenze

  • ore 23.59 del 15/12 entro questa data dovete tutti consegnare i 2 files program01.py e algoritmo.txt
  • Nella giornata del 2/12 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 17/12 entro questa data potete inserire i vostri giudizi e suggerimenti su TUTTI i 3 algoritmi e ricevere i giudizi dai vostri compagni
    • NOTA: potreste ricevere meno di 3 suggerimenti
  • ore 23.59 del 19/12 scadenza finale per indicare quanto vi sono stati utili TUTTI i suggerimenti e quindi consegnare una versione migliorata del vostro programma

7 Answers

edoardottt (8210 points)
1 3 37
answered Dec 5, 2019 by edoardottt (8,210 points)

Professore mi scusi un appunto. Nella descrizione del problema ci sono queste due frasi:

b) da una cella alla cella in basso (B)

di riga e colonna della cella da cui si parte e dalla stringa di 'D' e 'B'

Mentre nel resto della descrizione non c'è più B ma G. A quale delle due dobbiamo fare riferimento?

edo.13 (930 points)
2 2 8
commented Dec 5, 2019 by edo.13 (930 points)
immagino che B corrisponda a G
E
Edward (25950 points)
2 4 172
commented Dec 5, 2019 by Edward (25,950 points)
I risultati dei test usano G, quindi suppongo tu possa usare G e non B
edoardottt (8210 points)
1 3 37
commented Dec 5, 2019 by edoardottt (8,210 points)
Si credo sia scontato. Credo che la G stia per giù. Ma era solo per chiarezza. Ho controllato anche test_01.json e negli expected c'è la G.
andrea.sterbini (172780 points)
514 935 1789
commented Dec 5, 2019 by andrea.sterbini (172,780 points)

Giusto, usate D e G (ho messo una nota in alto)

L
LeleAlpha (570 points)
2 4 6
answered Dec 5, 2019 by LeleAlpha (570 points)
Salve,

fino a che lezione dobbiamo arrivare per essere in grado di sostenere questo homework?

Grazie,

Emanuele.
andrea.sterbini (172780 points)
514 935 1789
commented Dec 5, 2019 by andrea.sterbini (172,780 points)
tutte e 18 (d'altro canto è l'ultimo homework del corso)
a
a.pietroluongo (11250 points)
15 38 131
answered Dec 12, 2019 by a.pietroluongo (11,250 points)
edited Dec 12, 2019 by a.pietroluongo
è normale che nel tab correttezza non viene visualizzato il tempo dei test passati?
E
Edward (25950 points)
2 4 172
commented Dec 12, 2019 by Edward (25,950 points)
A me viene mostrato, ovviamente mostra solo quelli con tempo >= 0.01s
a
a.pietroluongo (11250 points)
15 38 131
commented Dec 13, 2019 by a.pietroluongo (11,250 points)
Ok mostra solo quelli con tempo >= 0.01s
a
a.pietroluongo (11250 points)
15 38 131
answered Dec 13, 2019 by a.pietroluongo (11,250 points)
Questo homework avrà sempre 3  test segreti?
andrea.sterbini (172780 points)
514 935 1789
commented Dec 13, 2019 by andrea.sterbini (172,780 points)
Non è detto                              .
s
simone.lioy (1420 points)
23 30 39
answered Dec 13, 2019 by simone.lioy (1,420 points)
video lezioni da seguire per svolgere questo homework?
s
simone.lioy (1420 points)
23 30 39
commented Dec 13, 2019 by simone.lioy (1,420 points)
grazie edward
Alexei_Pozidriv (1580 points)
0 4 14
answered Dec 13, 2019 by Alexei_Pozidriv (1,580 points)

Il file esempio2.txt manca dell'ultimo accapo (che dovrebbe esserci secondo la descrizione) ... state attenti altrimenti non riconoscete la ZEBRA

 Questo cosa vuol dire? Che devo aprire il file "esempio2.txt" con Spyder e aggiungere a ZEBRA un "accapo"(/n) e successivamente salvare ? o devo lasciare tutto così com'è?

andrea.sterbini (172780 points)
514 935 1789
commented Dec 13, 2019 by andrea.sterbini (172,780 points)
Vuol dire che (visto che non ho intenzione di cambiare i files dei test a metà consegna) il vostro programma non deve far affidamento sull'ultimo "\n" per funzionare bene
a
andreasolda (740 points)
12 17 21
answered Dec 18, 2019 by andreasolda (740 points)
ma i feedback?