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.

  • Dirigenti scolastici
  • Collaboratori del dirigente
  • Segreterie
  • Timetabling
  • Laboratori

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.

La pagina Orario: la griglia settimanale della classe 3B con le lezioni colorate per disciplina, e sotto la stessa griglia filtrata su un docente.
La stessa direttiva vista in tre modi — per classe, per docente, per aula. Una lezione si sposta trascinandola, e il rilascio scrive insieme il giorno e l'ora.
La saturazione delle aule: un grafico a barre con la percentuale di occupazione di ogni aula e la tabella con posti, ore occupate e ore libere.
Quanto sono piene le aule. Nessuna sopra l'80%: c'è margine per una variazione, ed è la domanda che si fa a settembre quando arriva una classe in più.
La qualità per docente: un grafico delle ore buche per cognome e la tabella con ore in orario, ore di cattedra, giorni, ore buche, massimo giornaliero, giorno libero e cambi di plesso.
La misura che conta davvero per chi insegna: ore buche, giorni impegnati, giorno libero ottenuto o no. E i cambi di plesso, che sulla carta non si vedono.
La pagina Controlli e generazione: cinque slider per i pesi del generatore, con il valore corrente accanto a ciascuno.
Cinque pesi e il numero di mosse. Non cambiano niente finché non si rigenera: il blocco è manuale apposta, perché una euristica non deve ripartire perché qualcuno ha corretto un cognome.

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.