Wise Timetable

Begrepp

Veckonummer, och varför kalenderns är fel

Varje lärosäte numrerar sina undervisningsveckor, nästan inget av dem numrerar dem som kalendern gör, och i det glappet bor överraskande mycket förvirring.

Två olika tal med samma namn

Fråga kalendern vilken vecka det är så får ni ISO-veckonumret: vecka 1 är den vecka som innehåller årets första torsdag, och vid starten av ett akademiskt år på norra halvklotet befinner ni er någonstans kring vecka 36 till vecka 40.

Fråga ett schemaläggningskansli samma sak och ni får ett helt annat tal. Vecka 1 är årets första undervisningsvecka, var i kalendern den än infaller, och allt räknas därifrån. Det är talet som står tryckt på schemat, talet i bokningsformuläret för salar och talet som två kollegor använder när de bestämmer att ses i vecka 9.

De två är aldrig lika om inte ett lärosätes undervisningsår råkar börja första veckan i januari, vilket vill säga: aldrig. Och eftersom båda kallas veckonumret ger programvara som i det tysta producerar fel tal något som ser helt rimligt ut.

Hur det ser ut när det går fel

Det ser inte ut som ett fel. Det ser ut som en sida med ett tal överst, och talet är fel med olika mycket på varje lärosäte — eftersom var och ett börjar sitt år på ett annat datum.

Det är det som gör det dyrt. En krasch rapporteras inom en timme. En rubrik som lyder Vecka 36 när alla i byggnaden kallar den Vecka 2 rapporteras veckor senare, av någon som antog att hen hade missförstått systemet snarare än att systemet hade missförstått hen — och under tiden har människor dykt upp i salar med det som grund.

Regeln som undviker det är kort: ett veckonummer läses, aldrig beräknas. Lärosätet avgör var vecka 1 ligger; programvarans uppgift är att redovisa vad lärosätet beslutat, inte att härleda ett eget tal ur ett datum.

Vecka 1 är inte alltid den första vecka som finns

Lärosäten behöver regelbundet datum före sitt undervisningsår: en introduktionsperiod på två veckor, en omtentaperiod, en sommarskola som hör till det år som just går mot sitt slut. I stället för att numrera om allt — vilket i det tysta skulle ändra innebörden av varje schema, varje bokning och varje meddelande någon någonsin skickat om vecka 9 — är det förnuftiga att utvidga kalendern bakåt, till noll och till negativa tal.

Det läses märkligt första gången och är precis rätt den andra: vecka 1 behåller sin innebörd, och de två veckorna före är vecka −1 och vecka −2. Vi har lärosäten vars veckotabell sträcker sig långt in på den negativa sidan och långt förbi slutet av undervisningsåret, och allt däremellan motsvarar ett verkligt datum.

Allt som läser ett schema programmatiskt bör räkna med det. Ett veckonummer är ett heltal med tecken, inte en räknare som börjar på ett.

Och vissa lärosäten använder inga nummer alls

Oxford och Cambridge namnger sina veckor efter termin i stället för att räkna dem över året: ett datum ligger i Michaelmas, fjärde veckan, och ett nummer skulle inte betyda något för någon i rummet. Andra lärosäten kallar en tvåveckorsperiod Repetition, Introduktion eller Examinationsperiod och förväntar sig att schemat säger det.

En undervisningsvecka bär alltså två saker, inte en: numret som programvaran adresserar den med, och lärosätets eget namn på den, vilket är vad en läsare faktiskt vill ha överst på sidan. Där ett namn finns ska det skrivas ut i stället för numret och skrivas ut i sin helhet — att förkorta någons termsbeteckning för att spara åtta pixlar är den sortens hjälpsamhet som ingen bett om.

Där inget namn finns, och för de flesta lärosäten finns inget, är numret namnet och det är alldeles utmärkt.

Fyra saker värda att kontrollera i varje schemaläggningssystem

Ingen av dem är exotisk. Alla är i det tysta fel någonstans.

FrågaHur ett bra svar ser ut
Var börjar vecka 1?Ett datum som ert lärosäte fastställt, lagrat en gång, använt överallt. Inte härlett ur kalendern och inte inställbart per skärm.
Kan kalendern gå före vecka 1?Ja, till noll och negativa tal, utan att något befintligt numreras om.
Kan en vecka ha ett namn?Ja, och namnet skrivs ut i stället för numret, i sin helhet.
Varifrån får en studentapp numret?Från schemat, i samma svar som lektionerna. En klient som räknar ut ett eget blir fel, och olika fel på varje lärosäte.

Varför detta också är en integrationsfråga

En portal, en app eller en informationsskärm som visar en veckorubrik måste få den någonstans ifrån, och den enda källa som kan ha rätt är själva schemat. I Wise Timetable bär schemasvaret veckonumren och veckonamnen för det intervall det täcker, så en klient har aldrig anledning att räkna ut ett — och GET /v2/weeks besvarar samma fråga på egen hand för en skärm som behöver märka upp en hel termin på en gång.

REST API-handboken dokumenterar båda, inklusive det negativa fallet, och den publiceras i sin helhet och utan spärr så att en utvecklare kan kontrollera svarets form innan någon skriver under något.

Vill ni se hur det fungerar?

Boka en onlinepresentation på 45 minuter, så går vi igenom den mot ert eget lärosätes schemaläggningsproblem.