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

Do you need help?

[HOMEWORK] Homework 4 di recupero (scadenza 5 gg prima dell'esame) [UPDATED ZIP 8/12]

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

ATTENZIONE:

  • eventuali correzioni verranno inserite qui
    • Abbiamo fissato il timeout a 2 secondi per ciascun test (times warp factor sulla VM)
    • Per un mio errore di packaging ho messo nello zip la penultima versione del problema e dei test.
      Ho aggiornato lo zip con i files corretti, RISCARICATELO (versione del 8/12).
  • 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 HW4rec.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
      • altre librerie e file necessari ad eseguire i test sulla vostra macchina
  • Posizionatevi nella directory creata unzippando l'archivio e rinominate il file program01.ita con il nome program01.py
  • Editate il file program01.py implementando le funzioni necessarie a risolvere l'esercizio.
  • 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 ottenuta scompattando lo zip
    • eseguite il comando (test senza timeout)
      • pytest test_01.py -v -rA
    • oppure (con una stampa dei tempi impiegati per eseguire ciascun test)
      • pytest test_01.py -v -rA --durations 0
    • oppure (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:
      • è 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

  • Gli homework di recupero scadono 5 giorni prima dell'esame che volete svolgere

Consegna entro le 23:59 di 5 gg prima dell'esame

Dovrete consegnare solo il file program01.py

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

Potete consegnare più volte, vale l'ultima.

5 Answers

m
m.lanzolla (700 points)
1 10 12
by (700 points)

Salve Professore,

è giusto che nel lexicon-GR-EN.csv alcune parole sono ripetute?

esempio:

ἥβη;hebe

ἥβη;youthful prime;youth

Ma soprattutto questo, che ad un rigo è [unavailable] ed al un altro ha significato heavenly

δῖος;[unavailable]

δῖος;heavenly

Grazie

G
Giordano_Dionisi (3100 points)
16 41 59
by (3.1k points)
Calcola anche io ci ho fatto caso ma non dovrebbe essere un problema minimamente, insomma è solo una semplice ripetizione e te aumenti il valore delle parole trovate praticamente
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Sento Di Ciccio e controlliamo
G
Giordano_Dionisi (3100 points)
16 41 59
by (3.1k points)
Perfetto perfetto prof, ci tenga aggiornati allora !!
by (2.8k points)
Salve!

Grazie mille per il controllo! No, questo non dovrebbe affatto accadere infatti. Controlliamo subito cosa è accaduto nel trasferimento dei file sul server. In teoria, lei dovrebbe vedere questo:

ἥβη;hebe;youthful prime;youth
[…]
δῖα;[unavailable]
δῖος;heavenly

Vi teniamo aggiornati.

Saluti,
CDC
by (2.8k points)

Carissim*,

Investigando sul problema che il collega ha segnalato (kudos per m.lanzolla!), abbiamo osservato che il server si è sincronizzato con un branch vecchio del nostro repository Git interno. In particolare, test_01.pylexicon-EN-IT.csv e lexicon-GR-EN.csv appartengono ad un commit risalente a più di una settimana fa – quindi, ad una versione unstable precedente al rilascio dello homework. Il testo dell’esercizio resta praticamente lo stesso ma i file aggiornati saranno caricati nel pomeriggio. Ci prendiamo un paio di ore extra per sbarazzarci di questo spiacevole bug nella sincronizzazione. Vi ringraziamo in anticipo per la comprensione.

Cordiali saluti,
CDC

r
roberto.alma (490 points)
1 2 5
by (490 points)
Ho una domanda:

ho trovato alcune parole che hanno delle traduzioni ripetute, come, ad esempio:
['γῆρας', 'old age', 'old age']

c'è una ragione particolare ? (nella versione precedente questo non si verificava, dobbiamo tenerne conto?)

Grazie
by (2.8k points)
Salve,

Ottima osservazione! Effettivamente, la presenza di riproposizioni ridondanti di traduzioni di una parola non cambia alcunché ai fini del risultato. Tuttavia, stiamo per sostituire il file onde evitare che la loro presenza porti ad incomprensioni.

Saluti,
CDC
r
roberto.alma (490 points)
1 2 5
by (490 points)

Altra domanda. Sto facendo i test, ma noto qualcosa che non mi torna.

Primo esempio: nelle istruzioni si dice: "Per concludere: se due o più sequenze come quelle descritte prima compaiono in
  un paragrafo, dovrebbero tutte comparire anche nel risultato. Tuttavia, non
  sono di interesse le sottosequenza interne. Nell’esempio in alto, infatti, la
  tupla
    (("θεά, θύγατερ διός", 2), ("dea figlia di zeus", 3))
  non è inclusa nella soluzione."

Nel test n. 2, tuttavia, nelle soluzioni attese c'è (('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3)), (('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3)) e credo che la prima sia una sottosezione della seconda.

Nel test n. 6, invece, ho notato che non è inclusa tra le soluzioni la parola καὶ presente in odyssey.txt che invece mi risulta tradotta in proemio.txt. Si tratta di un refuso o dobbiamo eslcudere le sequenze composte da una sola parola che siano inferiori a n caratteri?

Grazie

andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Chiedo a Di Ciccio
by (2.8k points)

Buongiorno,

Ottimo che lo abbia notato. Osservi che il test n. 2, però, ha una particolarità. Il nome del file in italiano è proemio-glitches.txt perché, aprendo quel file, può vedere che ci sono parole e parti di frasi ripetute a mo’ di glitch. Nel paragrafo 3, ad esempio:

imperterrita irrefrenabile poiché poiché
memore di ciò, da qualunque principio,
memore di di di ciò di ciò, da qualunque principio,
ad ogni costo, dea figlia di zeus,
narrane cagione e spirito.

Nel test 6, non è un refuso: noti che i dizionari non sono i medesimi degli altri test (sono lexicon-GR-EN_.csvlexicon-EN-IT_.csv al posto di lexicon-GR-EN.csvlexicon-EN-IT.csv, rispettivamente). Alcune parole presenti in una coppia di dizionari non sono presenti nell’altra.

Spero che questo aiuti.

Saluti,
CDC

andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Ho aggiornato lo zip
f
flaviano (340 points)
0 1 3
by (340 points)
Buongiorno professore,

come chiesto poco sopra nel test n. 2 il risultato atteso è :

{(('ἔννεπε, μοῦσα', 1), ('dissi io, o musa', 1)), (('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3)), (('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3))}

ma la seconda coppia è una sottosequenza della terza.

Deduco che con "non sono di interesse le sottosequenza interne" si riferisca proprio al testo in input, non alle sequenze in output.
by (2.8k points)

Buonasera,

Detto che purtroppo c’è un refuso nel testo (dovrebbe essere: ‘sottosequenze’), penso che la sua deduzione sia giustissima, se ho inteso bene cosa suggerisce. Preferisco però precisare che non direi che si tratta della differenza tra il testo in input e quello in output, ma del fatto che parliamo di coppie di sequenze diverse. Nel caso fosse già chiaro, va benissimo. Altrimenti, uso proprio questo esempio: Quando leggiamo tra i risultati attesi

(('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3))
e
(('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3))
dobbiamo considerare che ‘τῶν ἁμόθεν’ e ‘τῶν ἁμόθεν γε, θεά θύγατερ, διός’ sono in relazione con sequenze diverse nel testo in italiano. Per questo compaiono entrambi.

,εγ νεθόμἁ νῶτ
θεά θύγατερ,
.νῖμἡ ὶακ ὲπἰε ,ςόιδ

e

,εγ νεθόμἁ νῶτ
θεά θύγατερ,
.νῖμἡ ὶακ ὲπἰε ,ςόιδ

corrispondono a

imperterrita irrefrenabile poiché poiché
memore di ciò, da qualunque principio,
memore di di di ciò di ciò, da qualunque principio,
ad ogni costo, dea figlia di zeus,
narrane cagione e spirito.

Al contrario,

(("θεά, θύγατερ διός", 2), ("dea figlia di zeus", 3))
o
(('τῶν', 2), ('di ciò', 3))

non andrebbero bene, perché sarebbero tuple riferite a sottosequenze di sequenze più lunghe, da inserire già nella soluzione.

Saluti,
CDC

f
flaviano (340 points)
0 1 3
by (340 points)
La ringrazio della risposta professore, ora è tutto chiaro.

A presto, buona serata.

Francesco De Santis

P.S.: Visto che ci sono le segnalo che da domenica non vengono rivalutati gli Homework aggiornati.
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Prova a riconsegnare, ho avuto un paio di problemi con la migrazione di Q2A/twiki sulla nuova infrastruttura vmware
f
flaviano (340 points)
0 1 3
by (340 points)
D'accordo, la ringrazio professore.
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
C'è un disallineamento dell'orologio di q2a, il test viene fatto ma il file ha data successiva per cui mostra "Uploaded" invece che "Tested"
Ho sistemato l'orologio, i prossimi upload dovrebbero mostrare il messaggio giusto
g
giacomo_venturini (6680 points)
3 6 40
by (6.7k points)
Nei risultati del compito stanno venendo conteggiati i bonus, visto che per l'HW2rec non succede, penso che ci sia un errore in questo caso.
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Grazie                                    .
N
Nazareno_Furchì (300 points)
1 2 3
by (300 points)
E' possibile importare il modulo re?
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
No, nessuna libreria