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

Do you need help?

[HOMEWORK] Homework 2 (obbligatorio) - prima scadenza per TUTTI: ore 23:59 del 5/11/22

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


ATTENZIONE

  • Contrariamente a quanto scritto nel testo dell'esercizio, nei test viene passata una TUPLA di stringhe invece di una lista di stringhe. Fa fede il test, usate la tupla e NON modificate i tipi indicati nel codice.
  • eventuali correzioni verranno inserite qui, tenete d'occhio questa pagina
  • NOTA: il programma test_01.py DISATTIVA la funzione print ed aggiunge alcuni controlli. Per disattivarli e usare print assegnate la variabile DEBUG=True in test_01.py

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie inclusa typeguard
  • Scaricate il file HW2req.zip e scompattatelo in una directory. Il compito consiste nel:
    • descrivere in un file di testo algorithm.txt l'algoritmo che avete realizzato (o state realizzando, senza inserire info personali, dev'essere anonimo)
    • Lo zip contiene:
      • il file program01.ita.py, il programma da realizzare, in cui trovate all'inizio la descrizione del problema da risolvere, se necessario definendo funzioni ausiliarie,
      • altre librerie e file necessari ad eseguire i test sulla vostra macchina
  • Posizionatevi nella directory creata unzippando l'archivio ed:
    • rinominate il file program01.ita.py col nome program01.py
    • analizzate il problema spezzandolo in funzioni piccole e descrivetelo nel file algorithm.txt (createlo con un editor di testo come Notepad++ o Spyder se non c'è)
    • implementatelo editando il file program01.py  
  • Posizionatevi nella directory creata unzippando l'archivio ed editate i due file algoritmo.txt (descrizione dell'algoritmo) e program01.py (implementazione del programma)
  • 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 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:
      • è 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-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 5/11/22 (consegnate entrambi i file algoritmo.txt e program01.py)
  • Il giorno seguente vi verranno assegnati 3 algoritmi anonimi da valutare entro le 23:59 del 7/11/21
  • Una volta ricevuti i suggerimenti dai compagni, dopo averli valutati tutti, potrete riconsegnare un programma migliore entro le 23:59 del 9/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=2

Potete consegnare più volte, vale l'ultima, dopo l'ultima scadenza tutti i codici sorgenti diverranno visibili a tutti.

7 Answers

f
f3derico (520 points)
0 4 6
by (520 points)
edited by

Buonasera Professore, non riesco a consegnare l'HW2, con l'HW1 non ho avuto nessun problema mentre ora quando premo delivery dopo aver messo program01.py e algorithm.txt, il webserver mi ritorna "Forbidden, You don't have permission to access this resource.".

G
Gabriele.Di.Prospero (100 points)
0 0 1
by (100 points)

Anche a me da lo stesso problema. Ho provato a fare come da consiglio sulle risposte già date (riavviare la cache, accorciare il file di testo algorithm) ma mi da sempre lo stesso errore:

Forbidden

You don't have permission to access this resource.

Paradigmi (4170 points)
1 4 28
by (4.2k points)
Hai provato anche ad accorciare il file del codice? Prova ad es. a rimuovere i commenti del prof
d
domenico.muti (420 points)
1 2 4
by (420 points)
Io ho provato anche questo ma stesso errore
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Se me li mandi controllo
d
domenico.muti (420 points)
1 2 4
by (420 points)
Glieli ho mandati via email, grazie!
F
FedericoSciavarrello (240 points)
0 0 2
by (240 points)

Professore io non riesco a consegnare il compito in quanto la pagina di consegna mi restituisce il seguente errore

You must be logged in with your student email and select the course on at https://q2a.di.uniroma1.it/courses

Nonostante io sia loggato con l'utenza da studente e sia iscritto al corso 2022-2023, ho anche provando a iscrivermi a tutti i corsi disponibili ma nulla

andrea.sterbini (208020 points)
756 1270 2377
by (208k points)

Purtroppo non riesco a riprodurre l'errore.

1) selezionate il corso giusto

2) Provate con la voce Course -> Submission

F
FedericoSciavarrello (240 points)
0 0 2
by (240 points)
Ci avevo già provato ma mi restituisce i risultati degli HW precedenti
F
FedericoSciavarrello (240 points)
0 0 2
by (240 points)
Ci sono riuscito con un riavvio della cache :)
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)

Benedetta cache del browser!!!!

Bravocool

Paradigmi (4170 points)
1 4 28
by (4.2k points)
Salve, ho notato che solo ad alcuni tra coloro che hanno superato tutti i test mostra anche l'efficienza.

Ad esempio, a me dà 0 tempo di esecuzione, però riesco a vedere l'output del benchmark.

C'è un motivo o è un errore del sistema?
R
RobertoDr (330 points)
0 0 2
by (330 points)
Idem, mi dice solo il numero di test passati.
f
f3derico (520 points)
0 4 6
by (520 points)
io ho risolto riconsegnando l'hw
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Grazie per la segnalazione.

Appena possibile controllo

(la nuova versione di q2a ha ancora qualche bug)
d
dnlmrc (380 points)
1 2 4
by (380 points)
Scusate, ma appena inserisco i file e clicco su delivery mi dice "q2a non riesce momentaneamente a gestire la richiesta. HTTP error 500" sapete come potrei risolvere?
anon3 (10560 points)
20 66 138
by (10.6k points)

Credo che altre persone abbiano avuto il tuo stesso problema, comunque come noterai leggendo sopra, anche altri utenti hanno ricevuto errori vari, quindi ipotizzo che ci saranno dei "lavori di manutenzione" su quella sezione della piattaforma per risolverli.

Per l'errore HTTP 500 puoi comunque provare ad informarti qui: https://www.italiaonline.it/risorse/come-risolvere-l-errore-500-2163https://www.ionos.it/digitalguide/hosting/tecniche-hosting/errore-http-500-consigli-e-trucchi-per-correggerlo/

Di solito questa tipologia di errori è causata da problemi tecnici interni al server stesso, quindi non puoi farci molto. Altre volte la solita tecnica abbandona la sessione, ripulisci la cache e i cookie relativi al sito registrati sul browser e tenta un nuovo accesso potrebbe dare i suoi frutti.

EDIT: Ecco il topic a cui mi riferivo, altre persone hanno avuto il tuo stesso problema, vedi se riesci a risolvere così (con la Codifica UTF-8): https://q2a.di.uniroma1.it/25698/impossibile-consegnare-hw?course=avvisi/fondamenti-di-programmazione-22-23

s
simonee (220 points)
0 0 2
by (220 points)
Buonasera, è tutto oggi che non riesco a consegnare il compito. Il sito mi da errore e mi dice di entrare con la mail studente anche se sono già loggato con la mail studente. C'è la possibilità di inviare il file in altro modo?
s
simonee (220 points)
0 0 2
by (220 points)
Il compito sarebbe l'hw2. Scusate non avevo specificato
s
simonee (220 points)
0 0 2
by (220 points)
Ho provato da diversi browser e da diversi pc ma il risultato è sempre lo stesso
L
Lorenzo-cavicchia (220 points)
0 0 2
by (220 points)
Buonasera professore, non riesco a consegnare l'HW2, poiché all'apertura del link della pagina di consegna mi si presenta un errore che dice: "pagina non trovata". è possibile consegnare il file in un'altra maniera?

grazie in anticipo, buona serata.
t
trenenjoyer (240 points)
0 0 2
by (240 points)
Buonasera, non riesco a capire dove ricevere gli algoritmi da valutare.
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Se hai consegnato lo HW2 prima della scadenza li trovi nel tab "Peer Assessment" del Corso
t
trenenjoyer (240 points)
0 0 2
by (240 points)
Nel tab peer assessment riesco a visualizzare solo la scadenza del compito. Si l'ho consegnato prima della scadenza.
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
Oramai la fase dei suggerimenti è scaduta, mi dispiace