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 obbligatorio [ZIP aggiornato]

andrea.sterbini (207940 points)
754 1269 2377
in Avvisi by (208k points)
edited by

ATTENZIONE:

  • eventuali correzioni verranno inserite qui, tenete d'occhio questa pagina
    • C'era un errore nel testo, abbiamo aggiornato lo ZIP. RISCARICATELO
    • parola = sequenza massimale di caratteri alfabetici
  • NOTA: per eseguire i test SENZA i controlli e il timeout modificate test_01.py settando la variabile DEBUG=True
  • NOTA: per eseguire i test CON i controlli ma con un timeout molto grande (per vedere quanto tempo ci mettete), cambiate il WARP factor in test_01.py

Istruzioni

Per svolgere l'homework:

  • Installate la libreria pronouncing usando in un Anaconda Prompt il comando
    • pip install pronouncing
  • Installate le librerie necessarie (COMPRESO stopit)
  • Scaricate il file HW4-req.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 a eseguire i test sulla vostra macchina
  • Posizionatevi nella directory creata unzippando l'archivio e rinominate il file program01.ita.py con il nome program01.py
  • Editate i file:
    • program01.py implementando le funzioni necessarie a risolvere l'esercizio e senza cambiare il nome della funzione principale
    • algorithm.txt  in cui descrivete l'algoritmo utilizzato (senza inserire codice o info che vi possano identificare)
  • ATTENZIONE: il programma NON DEVE eseguire nessun input(), 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.
    • Dopo la scadenza verranno applicati dei test segreti per cui il vostro programma potrebbe fallire se risolve solo dei casi particolari.
  • 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
      • 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 4: (Spyder 5 non è ancora supportato dai plugin)
      • è 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

  • Prima scadenza per TUTTI: ore 23:59 del 20/11/21 (consegnate entrambi i file)
  • Il giorno seguente vi verranno assegnati 3 algoritmi anonimi da valutare entro le 23:59 del 22/11/21
  • Una volta ricevuti i suggerimenti dai compagni, dopo averli valutati tutti, potrete riconsegnare un programma migliore entro le 23:59 del 24/11/21

Dovrete consegnare entrambi i file:

  • program01.py
  • algorithm.txt (file di testo utf8, usate Spyder o Notepad++)

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

Potete consegnare più volte, vale l'ultima.

8 Answers

Alex73 (830 points)
1 3 10
by (830 points)
Professore qual era l'errore trovato nel zip originale?
Matypist (5370 points)
11 16 45
by (5.4k points)
m
m.rocci (640 points)
1 2 6
by (640 points)
Ciao,

posso usare le regular expression (import re) ?
m
m.rocci (640 points)
1 2 6
by (640 points)

Ho letto meglio:

  • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
scusate la domanda inutile 
anaran (7090 points)
3 5 37
by (7.1k points)
Buongiorno, la mia consegna di HW4 è in stato di Uploaded da ieri sera. Potrebbe essere un problema con la VM?
Manu_Dag (4490 points)
5 10 14
by (4.5k points)
Calcola a me una volta ci ha messo un giorno intero prima di testare il programma. Se per oggi pomeriggio ancora ti dice "in upload" ti direi prova a caricarlo di nuovo
S
S3b4stian82 (2250 points)
5 6 27
by (2.3k points)
Guarda se gli orari sono corretti, orario di test deve essere successivo a orario di delivery, se cosi non fosse dovrebbe comunque essere stato testato ed è solo l'interfaccia che ti da un'informazione errata. Se gli orari sono corretti, allora non saprei, chiedi al Prof.
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
Ogni tanto la VM si incanta ... gli ho dato una spinta e dovrebbe fare i test in pochi minuti
anaran (7090 points)
3 5 37
by (7.1k points)
La ringrazio
c
campobassof (1060 points)
3 4 14
by (1.1k points)
Ma è normale che due test in test01.py siano commentati?
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)

prova a scommentarli e vedi quanto tempo impiegano laugh

S
S3b4stian82 (2250 points)
5 6 27
by (2.3k points)
Li puoi usare per ottimizzare il codice dato che sono molto più impegnativi degli altri, anche i piccoli cambiamenti di codice dovrebbero fare la differenza.
m
m.rocci (640 points)
1 2 6
by (640 points)
Ciao,

non ho capito come fare esattamente c(a|b) e c(b|a):
tau = 2

sync tra a=[1, 0, 1, 0, 1, 0, 1, 0, 1, 0] e

              b=[1, 0, 0, 0, 1, 0, 1, 0, 1, 0]

(c(b|a), m(b)) = (4, 4) (c(a|b), m(a)) = (5, 5)

per c(b|a), quando incontro un accento, vado in a e vedo se nella stessa posizione fino a posizione - tau ci sono accenti?

esempio accento di b in pos 6, vado in a da posizione 6 fino a 5, cioè controllo le posizioni 6 e 5 se hanno un accento.(posizioni 6 e 5 perché tau è 2)

Non riesco a capire come c(a|b) sia 5, qualcuno potrebbe farmi un esempio?

forse ho un problema con l'italiano...
A
AlessandroBavaro (10660 points)
5 8 24
by (10.7k points)

Ciao!

E' già stato creato un posto dove si spiega il funzionamento wink ti copio il link qui:

https://q2a.di.uniroma1.it/23054/poemsync-funzionamento?course=hw4-obbligatorio/homeworks/fondamenti-di-programmazione-21-22

 

m
m.rocci (640 points)
1 2 6
by (640 points)
Come mi comporto con la punteggiatura, cosa elimino e cosa diventa uno spazio?

il - diventa uno spazio?

tolgo la punteggiatura?
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
Leggi la seconda nota di questa pagina
P
Pamela Marinelli (620 points)
0 0 4
by (620 points)
reshown by
Professore, io ho svolto l'homework e ho fatto i test. Avendoli superati tutti l'ho consegnato, ma mi dice che non li ho superati nessuno. Come è possibile?
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
c'è un controllo su come si aprono i file, però mi sono dimenticato di metterci anche mode='rt'

correggo e rilancio i test
G
Gian-duiotto (630 points)
2 4 8
by (630 points)
é necessario creare la matrice di righe con 0 e 1 oppure posso usare un'altra struttura dati per contenere le righe (io non ho fatto la matrice ma le ho messe in un dizionario, va bene lo stesso?)