Concetti
I numeri di settimana, e perché quelli del calendario sono sbagliati
Ogni ateneo numera le proprie settimane di lezione, quasi nessuno le numera come fa il calendario, ed è in questo scarto che vive una sorprendente quantità di confusione.
Due numeri diversi con lo stesso nome
Chiedete al calendario che settimana sia e otterrete il numero di settimana ISO: la settimana 1 è quella che contiene il primo giovedì di gennaio, e all'inizio di un anno accademico dell'emisfero boreale ci si trova intorno alla settimana da 36 a 40.
Ponete la stessa domanda a un ufficio orari e otterrete un numero completamente diverso. La settimana 1 è la prima settimana di lezione dell'anno, in qualunque punto del calendario cada, e tutto viene contato da lì. È il numero stampato sull'orario, il numero nel modulo di prenotazione delle aule e il numero che due colleghi usano quando si accordano per incontrarsi nella settimana 9.
I due non coincidono mai, a meno che l'anno di insegnamento di un ateneo non inizi per caso nella prima settimana di gennaio, cioè: mai. E poiché entrambi si chiamano numero di settimana, un software che produce silenziosamente quello sbagliato produce qualcosa che appare del tutto plausibile.
Come si presenta quando va storto
Non appare come un errore. Appare come una pagina con un numero in cima, e il numero è sbagliato di una quantità diversa in ogni ateneo — perché ciascuno inizia il proprio anno in una data diversa.
Ecco perché costa caro. Un arresto anomalo viene segnalato in un'ora. Un'intestazione che riporta Settimana 36 quando tutti nell'edificio la chiamano Settimana 2 viene segnalata settimane dopo, da qualcuno che ha supposto di aver frainteso il sistema anziché che il sistema avesse frainteso lui — e nel frattempo le persone si sono presentate nelle aule fidandosi di quel numero.
La regola per evitarlo è breve: un numero di settimana si legge, non si calcola. È l'ateneo a decidere dove sia la settimana 1; il compito del software è riportare ciò che l'ateneo ha deciso, non ricavare da una data un numero proprio.
La settimana 1 non è sempre la prima settimana che esiste
Gli atenei hanno regolarmente bisogno di date precedenti al proprio anno di insegnamento: una quindicina di accoglienza, un periodo di appelli di recupero, una scuola estiva che appartiene all'anno appena concluso. Anziché rinumerare tutto — il che cambierebbe silenziosamente il significato di ogni orario, di ogni prenotazione e di ogni messaggio che qualcuno abbia mai inviato sulla settimana 9 — la mossa sensata è estendere il calendario all'indietro, verso lo zero e i numeri negativi.
La prima volta suona strano e la seconda è esattamente giusto: la settimana 1 continua a significare ciò che ha sempre significato, e la quindicina che la precede è la settimana −1 e la settimana −2. Abbiamo atenei la cui tabella delle settimane si spinge molto nel negativo e molto oltre la fine dell'anno di insegnamento, e tutto ciò che sta in mezzo corrisponde a una data reale.
Qualsiasi cosa legga un orario in modo programmatico dovrebbe aspettarselo. Un numero di settimana è un intero con segno, non un contatore che parte da uno.
E alcuni atenei non usano affatto i numeri
Oxford e Cambridge denominano le proprie settimane in base al periodo anziché contarle nell'arco dell'anno: una data cade nella quarta settimana del Michaelmas, e un numero non significherebbe nulla per nessuno in aula. Altri atenei etichettano una quindicina come Ripasso, Accoglienza o Periodo di valutazione e si aspettano che l'orario lo dica.
Quindi una settimana di insegnamento porta con sé due cose, non una: il numero con cui il software la indirizza e il nome che le dà l'ateneo, che è ciò che il lettore vuole davvero in cima alla pagina. Dove esiste un nome, dovrebbe essere stampato al posto del numero e per intero — abbreviare la convenzione dei periodi di qualcuno per risparmiare otto pixel è il tipo di cortesia che nessuno ha chiesto.
Dove non esiste alcun nome, e per la maggior parte degli atenei non ne esiste, il numero è il nome e va benissimo così.
Quattro cose da verificare in qualsiasi sistema di programmazione
Nessuna è esotica. Tutte sono silenziosamente sbagliate da qualche parte.
| Domanda | Come si presenta una buona risposta |
|---|---|
| Dove inizia la settimana 1? | Una data impostata dal Vostro ateneo, memorizzata una sola volta, usata ovunque. Non ricavata dal calendario e non configurabile per schermata. |
| Il calendario può andare prima della settimana 1? | Sì, verso lo zero e i numeri negativi, senza rinumerare nulla di ciò che già esiste. |
| Una settimana può avere un nome? | Sì, e il nome viene stampato al posto del numero, per intero. |
| Da dove prende il numero un'app per studenti? | Dall'orario, nella stessa risposta delle lezioni. Un client che lo calcola da sé sarà in errore, e in errore in modo diverso in ogni ateneo. |
Perché è anche una questione di integrazione
Un portale, un'app o uno schermo informativo che mostra l'intestazione di una settimana deve ottenerla da qualche parte, e l'unica fonte che può essere giusta è l'orario stesso. In Wise Timetable la risposta dell'orario riporta i numeri e i nomi delle settimane per l'intervallo che copre, così un client non ha mai motivo di calcolarne uno — e GET /v2/weeks risponde da solo alla stessa domanda per uno schermo che deve etichettare un intero periodo in una volta.
Il manuale dell'API REST documenta entrambi, compreso il caso negativo, ed è pubblicato per intero e senza vincoli, così uno sviluppatore può verificare la forma della risposta prima che qualcuno firmi qualcosa.
Desiderate vederlo in funzione?
Prenotate una presentazione online di 45 minuti e la illustreremo sul problema di programmazione del Vostro ateneo.