App del catalogo
Orario Scolastico
Il solver propone, tu decidi. Sceglie anche l'aula, tiene interi i blocchi di laboratorio, rispetta le compresenze e non fa cambiare plesso a nessuno da un'ora alla successiva — e si può fermare tenendo il risultato migliore trovato finora.
L'app viaggia dentro il link: si apre nel tuo browser e resta lì. Niente account, niente installazione, e nessuno dei tuoi dati passa da un server.
Cosa fa
Sette pagine che seguono il lavoro come lo si fa davvero a settembre.
Avvio semina un istituto finto ma coerente — l’IIS «Ada Lovelace»: due indirizzi su due plessi, 6 classi, 13 docenti, 11 aule fra cui tre laboratori e due palestre, 13 discipline, 66 cattedre per 180 ore settimanali — così si può premere Genera al primo avvio e vedere che cosa produce, invece di dover prima inserire un’anagrafica intera.
Anagrafiche e Cattedre sono le tabelle che tutti conoscono, con qualcosa in più: le classi portano il numero di alunni e il plesso, le aule il tipo e la capienza, i docenti i giorni di non disponibilità, il tetto di ore giornaliere e se fanno o no la prima ora. Le cattedre puntano alle righe vere di quelle anagrafiche, quindi rinominare una classe non rompe niente.
Orario è la stessa griglia vista in tre modi — per classe, per docente, per aula — perché sono la stessa direttiva con un filtro diverso. Una lezione si sposta trascinandola, e il rilascio scrive insieme il giorno e l’ora. Le lezioni fissate non si trascinano: sono quelle che qualcuno ha deciso e che il generatore non deve toccare.
Controlli e generazione è il cuore. Il controllo trova i conflitti duri — un docente in due posti alla stessa ora, una classe con due lezioni, un’aula occupata due volte, una casella vietata, un giorno libero violato, un monte ore che non torna — e li scrive in una collezione che la griglia legge: le celle in conflitto si vedono nella griglia stessa, non in un rapporto a parte.
Laboratori e qualità misura quello che un orario vale davvero: quanto sono sature le aule speciali, quante ore buche ha ciascun docente, chi ha ottenuto il giorno libero che aveva chiesto e chi cambia plesso in giornata.
Stampe produce una pagina per classe e una per docente in un colpo solo, più la singola per aula — in orizzontale, perché una griglia di sei giorni per sei ore in verticale non ci sta.
Le tre cose che questa versione fa e la precedente no
Sceglie l’aula. La disciplina chiede un tipo — aula, laboratorio, palestra — e il generatore trova quale è libera in quella casella, abbastanza capiente per quella classe e nel plesso giusto. Aggiungere un secondo laboratorio è, in questa app, il modo di far respirare un orario che non si chiude.
Tiene interi i blocchi. Il laboratorio si fa in due ore consecutive, e un blocco o ci sta intero o non ci sta: non viene spezzato per salvare una preferenza.
Mette due docenti nella stessa casella. Il sostegno segue la classe, l’ITP affianca il titolare: sono compresenze, e i vincoli del docente affiancante — giorni di non disponibilità, plesso, tetto giornaliero — valgono durante la collocazione, non dopo.
E un vincolo che sulla carta non si vede: nessun docente cambia plesso da un’ora alla successiva. È il primo a saltare nella realtà, ed è il primo che questa versione fa rispettare.
Quanto funziona
Il generatore è stato eseguito sull’istituto di esempio: 180 ore su 180 collocate in 160 blocchi, zero violazioni gravi, 202 lezioni di cui 22 in compresenza, tutte le ore di laboratorio e di palestra come blocchi di due ore interi, 28 ore buche in tutta la settimana per 13 docenti. Provato anche con divieti e pre-assegnazioni, e simulando trascinamenti sbagliati per verificare che il controllo li veda tutti. Il risultato del browser è identico a quello di CPython sulla stessa macchina.
Quello che l’app non fa, ed è scritto dentro
Non è un applicativo commerciale e non finge di esserlo. Non parla col SIDI, non gestisce le sostituzioni giornaliere, non garantisce l’ottimo e può lasciare ore non collocate. Le lezioni non si modificano da un modulo: si spostano trascinandole, si cancellano, e si fissano dalle pre-assegnazioni — che sono anche il modo di lavorare da telefono, dove il trascinamento non esiste.
C’è poi un vincolo del linguaggio che questa app spiega invece di nascondere: un blocco di calcolo riscrive per intero la collezione su cui scrive, quindi ogni collezione ha un padrone solo. Le anagrafiche che compili a mano stanno in una collezione tua, e il blocco le unisce a quelle di esempio conservandone gli identificativi — così le cattedre che vi puntano restano valide. La pagina Avvio lo dice con una tabella: chi scrive che cosa.
Come si cambia
Sei ore al giorno invece di sei e mezza, il sabato che non esiste, un vincolo che alla tua scuola serve e a un’altra no: sono tutte modifiche di una riga, e il codice del generatore è lì da leggere, in Python, dentro il documento.
È tua da personalizzare
Un'app è un documento Markdown: aprila, cambiala a mano o chiedi all'assistente di cambiarla per te. Quello che aggiungi resta sul tuo dispositivo.