Concordo pienamente nel principio generale. Ma poichè, nel caso in esame, è abbastanza semplice aggiungere i giusti paletti a livello di specifica, credo che questo vada a vantaggio di tutti, in modo da evitare che qualcuno si veda annullare inaspettatamente un HW,
Quando si dice "concorrendo alla pari", immagino che si intenda che ci si deve attenere alle "regole del gioco", facendo uso degli insegnamenti ricevuti e non derogando dai vincoli imposti. Ora, nel caso specifico, se uno studente applica esclusivamente quanto insegnato nel corso (e fra gli argomenti abbiamo anche la lettura e scrittura dei files) e, non contravvenendo a quanto indicato nel testo dell'esercizio (ossia alle "regole del gioco": variabili globali, import di librerie, ecc.) implementa una soluzione generalizzata che offre migliori risultati in termini di performance, come si può giudicarlo "furbetto" ed annullargli il compito? Al contrario forse andrebbe premiato poichè ha saputo coniugare in maniera efficace tutti gli insegnamenti ricevuti per risolvere un problema reale nei limiti dei vincoli imposti, e con i soli strumenti a sua disposizione. Cosa assai diversa è se nel codice salta fuori qualcosa tipo "if file == 'pippo': return 1" (questa sì che sarebbe una scorrettezza/furbizia da punire).
Diciamo che, in linea generale, più le specifiche sono dettagliate, meno sono le possibilità di malintesi e di conseguenti penalizzazioni.
Il mio voleva essere solo un piccolo contributo al già ottimo corso.