Cosa considerare prima di suggerire miglioramenti agli esercizi
Allora, hai trovato qualcosa che vorresti migliorare in un esercizio. Prima di tutto, grazie perché ti importa e per aver trovato il tempo di dircelo! 💙
Quando si modifica un esercizio, ci sono alcune cose da considerare, e sono leggermente diverse per gli esercizi di apprendimento (quelli che insegnano gli argomenti del sillabo) e per gli esercizi di pratica (tutti gli altri). Vediamo queste differenze qui sotto.
Però, prima di tutto ci sono un paio di cose generiche da considerare.
Ci sono parecchie conseguenze nel modificare un esercizio:
Per tutte queste ragioni, stiamo attenti a modificare gli esercizi solo quando c'è un beneficio forte ed identificabile.
L'obiettivo delle suite di test degli esercizi non è essere esaustive su tutti i casi possibili. I nostri esercizi non sono software di produzione, e non sono nemmeno progettati per imitare casi d'uso del mondo reale. Sono pensati per essere problemini giocattolo che ti aiutano a raggiungere la padronanza di un linguaggio di programmazione. Evitiamo quindi di proposito di cercare di coprire ogni caso limite, di imporre molta validazione dell'input o altre questioni simili del mondo reale. Se il miglioramento che suggerisci serve ad intercettare un caso limite o a verificare la validazione dell'input, è improbabile che venga accettato, a meno che non porti una differenza sostanziale all'esercizio.
Gli esercizi di apprendimento sono progettati con un solo obiettivo: insegnare i concetti. Tutte le modifiche a un esercizio vengono considerate innanzitutto in base a se migliorano l'insegnamento dei concetti.
Gli esercizi di apprendimento (in particolare) non sono progettati per essere esaustivi nei loro test. Spesso possono anche essere un po' artificiosi o oscuri, per evitare di usare concetti che uno studente non ha ancora imparato, o per non sopraffare uno studente.
Se la modifica che suggerisci potrebbe distrarre dall'apprendimento del concetto, probabilmente verrà rifiutata. Se la modifica rende l'apprendimento più facile, sarà presa in seria considerazione. Se sta nel mezzo, potrebbe essere accettata, ma è improbabile che venga prioritizzata.
La cosa principale da capire sugli esercizi di pratica è che quasi tutti vivono in un repository centrale (noto come «Problem Specifications»). Modificare un esercizio ha quindi effetti a catena su tutte le tracce. Questo significa che una buona modifica è ancora più potente, perché aiuterà tutti i linguaggi. Ma aumenta anche l'onere della modifica: più manutentori che lavorano su tracce diverse devono essere d'accordo perché venga accettata, e poi i manutentori di ogni linguaggio devono portare le modifiche a valle nelle loro tracce.
Le modifiche agli esercizi possono anche far sì che i concetti a cui sono collegati nei sillabi diventino più confusi, o che gli esercizi richiedano funzionalità aggiuntive per essere risolti, il che cambia il punto in cui si sbloccano. Anche questo va considerato tra le tracce prima che le modifiche vengano accettate.
Anche se abbiamo meccanismi perché solo alcune tracce abbiano determinati casi di test, tendiamo a scoraggiarli, perché questa biforcazione può creare confusione sia ai manutentori sia agli studenti. Quindi, quando proponi modifiche agli esercizi di pratica, considera il quadro più ampio tra le tracce.
Anche se ci sono molte ragioni per cui non accettiamo i suggerimenti, molto spesso le persone propongono ottime idee che invece accettiamo!
Siamo anche quasi sempre aperti a modifiche nella formulazione che aggiungono chiarezza, soprattutto negli esercizi di apprendimento.
Per dare ai tuoi suggerimenti le migliori possibilità di essere approvati, scrivili mostrando di aver considerato quanto segue:
E ricorda di esprimere le opinioni come opinioni ed i fatti come fatti. Questo tende a portare alle conversazioni più produttive.
Grazie ancora per aver trovato il tempo di fare un suggerimento e per aver letto questo documento!