top of page
I programmi CATTEDRE e ORARIO 
Prefazione

In questa pagina vi è una descrizione dei programmi ORARIO e CATTEDRE. Ci si è dilungati  su ORARIO, perché gestisce una problematica molto più complessa di CATTEDRE.  Quanto scritto per l'interfaccia per ORARIO è valido pure per CATTEDRE. 

Descrizione del programma ORARIO

ORARIO è stato acquistato da oltre 800 scuole quasi tutte superiori dopo una prova gratuita, e tutto ciò

  • senza forze di vendita

  • l’autore è una nullità dal punto commerciale, gli piace più migliorarlo che venderlo, telefoni che non rispondono, difficoltà a parlare con professori ..

  • il programma sino alla versione 2Y aveva anche schermate esteticamente bruttine (assomigliavano a quelle del MSDOS) anche se molto funzionali. Dalla versione 2z l’estetica delle schermate è stata sensibilmente migliorata .

Perché lo hanno adottato ?

Seguono i punti principali poi alcuni di questi saranno approfonditi subito dopo.

Il programma dell’orario è un programma scientifico

La problematica affrontata dai programmi che generano  gli orari   fa parte della branca della “Ricerca operativa” chiamata “Programmazione matematica”, vi è una funzione obiettivo che in questo caso esprime la qualità dell’orario e che si vuole ottimizzare , le cui variabili sono soggette a vincoli.


I programmi scientifici vanno valutati per i risultati che offrono e per la velocità con cui li  ottengono   e non certo per la bellezza delle schermate.

L’ autore, essendo un ingegnere nucleare  (laurea al Politecnico di Milano 100 e lode)  che ama la matematica e l’informatica avendo:

​​

  •  fatto una tesi in fisica teorica sui plasmi (gas ionizzati) presso il centro di ricerca del CNEN di Frascati durata un anno e mezzo pubblicata sulla rivista più prestigiosa di fisica italiana, il  “Nuovo cimento”.

  •  scritto programmi scientifici anche per l’Enel Nucleare  ecc 

  • avuto come suo cliente la Fiat Auto di Torino.. 

  • lavorato per 17 anni anche a Londra e negli USA  in quella che una volta era la seconda multinazionale del mondo dell’informatica Sperry Univac” (poi, dopo la fusione  con un’altra azienda rinominata Unisys)

 

ha affrontato il problema in maniera scientifica e non ha emulato quello che poteva fare un “orarista” anche tenendone conto, ove utile, ottenendo risultati nettamente migliori dei programmi della concorrenza.

​​

Per generare l’orario occorre affrontare due enormi complessità:

  • renderlo completo rispettando rigidamente i vincoli

  • renderlo  “bello” seguendo i desiderata della scuola.

Gestendole separatamente se ne affronta la somma, mentre affrontandole insieme il prodotto.

In tal modo il programma si preoccupa prima di generare un orario completo e rispettoso dei vincoli ,il "primo orario", successivamente di ottimizzarlo seguendo i desiderata della scuola.
Fare le due cose insieme  è quanto è costretto a fare un buon “orarista” che non ha sua disposizione la potenza di calcolo di un PC e, da quanto detto da clienti che usavano altri programmi, sembrerebbe che sia la strategia usata dalla maggioranza (tutti?) dei programmi della concorrenzai.  
Il seguirla, da solo,  potrebbe spiegare la loro inefficienza e lentezza.

​​

ORARIO non è stato progettato solo come un programma per aiutare l’utente a fare l'orario, ma  anche con l'ambizione per cui, una volta immessi i dati, l'orario che lui genera sia pubblicabile con nessuno o pochissimi ritocchi.


Al riguardo si ricorda un episodio avvenuto nel 2014, quando il professore Luigi Ingrosso, preside del liceo San Francesco d'Assisi di Roma,  provò ORARIO  per un ITI di cui era reggente.

Il preside terminata la prova disse "Basta con questi programmi che fanno solo una bozza (dell' orario) , d'ora in poi pubblicheremo l'orario così come lo ha generato il suo programma".
Disse ciò perché l'orario che aveva ottenuto era sensibilmente migliore di quello che avevano pubblicato sui cui la commissione orario aveva  lavorato per più di un mese per ritoccarlo avendo utilizzato un programma molto diffuso, specialmente al nord, che, però, aveva delle schermate esteticamente perfette.

In quella occasione fece acquistare il programma sia per l'ITI che per il suo liceo.

Da allora ORARIO è continuato a migliorare anche per la qualità dell'orario generato ma non solo.

La creazione di un orario completo e rispettoso dei vincoli: “il primo orario”

Nel seguito questo aspetto viene trattato con maggiori dettagli.

​​​​

 Il programma, prima di iniziare a generare l’orario, durante la verifica analizza i vincoli posti dall'utente.

Nei casi in cui ritiene che sia impossibile completarlo rispettando i vincoli o che, rispettandoli, possa generare un orario molto brutto od incompleto, invita l’utente a leggere il rapporto “Consigli vincoli”.
In quest'ultimo  indica, con toni diversi in base alla loro gravità, quali vincoli andrebbero rilassati.

​​

Il programma genera un orario rigidamente rispettoso dei vincoli. Dove altri programmi lasciavano anche 30 ore non messe il programma riusciva a completare l’orario. Alcuni programmi, a volte, riescono a completare l’orario non rispettando i vincoli.

Professori che avevano provato 4 o 5 programmi diversi per generare l’orario dicevano che ORARIO era di gran lunga il migliore, si ricorda di una professoressa che disse “è un altro mondo”.

​​

La ottimizzazione

Nel seguito questo aspetto viene trattato con maggiori dettagli.

I nuovi utenti affermano che l’orario ottimizzato che ha generato ORARIO è molto migliore di quello pubblicato dopo che, la commissione orario aveva speso anche un mese o più per migliorarlo.

Dato che non esiste uno standard dell’orario, scuole diverse danno maggiore o minore rilevanza ad aspetti diversi per cui si può valutare l’orario,​nel programma utilizzando dieci numeretti chiamati  “pesi dell’ottimizzazione” l’utente può indicare quali aspetti sono più rilevanti per la sua scuola in modo di non dover poi lavorare moltissimo a modificare l’orario generato.

 

Una cosa simile, ma per sei aspetti diversi per cui si può giudicare l’orario di un professore, si può fare, per lo più per eccezione, con le “Importanze dei professori” per indurre, il programma ad avere un comportamento per quello/i aspetto/i diverso/i  per un professore rispetto a quello tenuto con tutti gli altri.

Anche questa possibilità, se usata, può diminuire pesantemente i ritocchi finali.

Durante l’ottimizzazione in pochi minuti ORARIO ricava e analizza milioni di mosse rispettose dei vincoli molte delle quali muovono anche 8 professori in due classi. In un caso anche 11, ma è rarissimo.

Nei laboratori, specialmente se molto pieni, per spostare gruppi di più ore ORARIO considera spesso mosse che muovono anche 10 ore su due classi, il massimo che si è visto è 14 ma anche questo caso è raro anche se non rarissimo.

 
La velocità di ORARIO e le prove

Nel seguito questo aspetto viene trattato con maggiori dettagli

A parte la qualità dell’orario, la velocità del programma è molto importante per consentire di eseguire più prove ma anche perché l’utente acquisisca la sensibilità dell’importanza dei vincoli e ORARIO è molto più veloce degli orari della concorrenza.

​​

Un professore raccontava, recentemente, usando la versione 3a di ORARIO, che nel tempo che impiegava il programma che usava, uno dei più diffusi, a generare un orario,  con ORARIO ne aveva ottenuti e studiati 3 diversi.

Durante le prove, utilizzando il comando “Salva in altra directory” l’utente può, in pochi secondi, mantenendo tutti i dati del modello da cui è partito, crearne uno nuovo in cui il programma copia tutti i file necessari in un’altra cartella creando un nuovo modello e da quel momento lavora in quel modello.

Inoltre dato che, durante la generazione dell’orario, il programma ricorda l’ orario in diversi stadi di avanzamento (es. con le sole ore di indisponibilità dei professori che insegnano in altre scuole, con le sole ore dei laboratorio....l’ultimo su cui ha lavorato l’utente) si  può ripartire dallo stadio di avanzamento che si ritiene più utile conservando così i dati del modello da cui si è partiti ed evitando di ripetere il lavoro già fatto.

Per ottimizzare un ITI di 80 classi con 184 professori curriculari e 21 laboratori usando una CPU I9-14900KF  e un solo core ((ovvero una delle unità di calcolo indipendenti contenute all'interno del moderno chip CPU) ORARIO ha impiegato 161 secondi mentre su un portatile con un I7-1195G7 del 2021, progettato per la produttività quotidiana e l'autonomia, ha impiegato  274 secondi.

Durante questo tempo il programma ha ricavato e valutato, per 10 aspetti diversi, 65.8 milioni di mosse, ne ha eseguite 62448, spostando 206439 ore..(si veda dopo per maggiori dettagli).

Facendo un solo orario e utilizzando un solo core considerando che la CPU del I9-14900KF usato nella prova ha 24 core di cui 8 più veloci e 16 meno, il programma per ottimizzare un orario ha sfruttato solo 4.5% della potenza della stessa mentre sul I7 del portatile con solo 4 core  ne ha sfruttato  solo un po' più del 25%.

Durante l’ottimizzazione ORARIO fa pochissimo input/output.

Il calcolo parallelo

Nel seguito questo aspetto viene trattato con maggiori dettagli.

Che si sappia i programmi più diffusi per fare l’orario usano un solo core per generare un solo orario sfruttando così una piccola frazione della potenza della CPU, come fa la versione 3a di ORARIO.

​​​

Nella versione 3b vi è la possibilità di ottenere fino a un massimo di 64 orari diversi, utilizzando il “calcolo parallelo”, che consente, durante l’ottimizzazione, di ottimizzare più orari in parallelo, sfruttando tutti i core della CPU.

Usandolo, ORARIO, all’inizio dell’ottimizzazione, lancia un numero di orari eguale a quello dei core, poi quando un core termina un orario, ne inizia uno nuovo per tenere sempre occupati tutti i core sino a quando sono tutti terminati.

In questo modo, esplorando in maniera molto maggiore l’insieme delle soluzioni in molto meno tempo che generandoli separatamente e, scegliendo tra gli orari ottenuti il migliore, è possibile ottenere un orario sensibilmente migliore di quello "classico" generato con una sola CPU .

​​

 Sullo stesso PC ORARIO per ottenere 64 orari diversi, durante l'ottimizzazione, per lo stesso ITI con 80 classi ha impiegato 14 minuti  e 18 secondi .

Il numero di mosse trovate e analizzate nei diversi orari ottenuti, in questo caso sono oscillate tra i 60 e 124 milioni , il numero di mosse eseguite tra 60288-100214 e. in almeno un caso, il programma ha eseguito almeno una mossa che muoveva 14 ore.

 

Ottenendo 64 orari di un liceo di 61 classi e 114 professori e un laboratorio (la palestra), il programma ha impiegato solo 6 minuti e 36 secondi. Il minore tempo impiegato è legato in parte al numero minore di classi e dei laboratori e ad altri fattori legati all’architettura interna delle CPU. Per maggiori dettagli si veda nel seguito

​​

L'algoritmo, utilizzato per generare più orari in parallelo, nasce da un'idea per migliorare la ottimizzazione di un singolo orario; usandolo riesce a generare diverse soluzioni alternative , andando ben oltre la semplice “forza bruta”'.

​​

Generando 64 orari per studiarli tutti, singolarmente, si impiegherebbe tantissimo tempo.

Per ridurlo notevolmente ORARIO utilizza un algoritmo che si sviluppa in 3 fasi in ognuna delle quali aumentando il numero dei dati mostrati, l’utente può scartare gli orari che gli sembrano meno promettenti, ma senza cancellarli per eventuali ripensamenti risparmiando così  moltissimo tempo.

​​​
ORARIO può generare orari che accontentano i professori ma che sono anche didattici

Negli anni l’algoritmo dell’ ottimizzazione ha continuato a migliorare ed esplorando in maniera più intelligente l’insieme delle soluzioni e anche grazie a un tipo di mossa, che ha solo una valenza didattica, fatta durante l’ottimizzazione, molte scuole riescono anche con le versioni precedenti alla 3b a ottenere un orario che accontenti sia i professori ma che è anche didattico e si ritiene che ciò sia di estrema importanza per le scuole.

Nella versione 3b, generando in poco tempo molti orari diversi anche 64, esplorando così in maniera molto maggiore l’insieme delle soluzioni, questa possibilità è ulteriormente migliorata. 

I ritocchi all’orario

Per fare i “ritocchi” all’orario il programma usa due algoritmi diversi.

  •  Il primo “Alloca/Dealloca” sfrutta i tasti del mouse come una matita e una gomma, ha moltissime possibilità, di cui gli utenti spesso non si accorgono anche se basterebbe fare clic sul pulsante “Help” per utilizzarlo molto meglio.

  •  Il secondo “Muovi/Riempi”  è più innovativo.
    L’utente scelto un professore  e vedendone l’orario se fa clic su un’ora allocata, il programma capisce che vuole vedere le mosse che spostano quella ora, se invece lo fa su un’ora in cui non insegna capisce che vuole riempirla.
    In entrambi i casi ORARIO in qualche secondo ricava da 0 a 1200 mosse rispettose dei vincoli, le valuta, le ordina dalla migliore alla peggiore e le mostra sullo schermo partendo dalla migliore (volendo possono essere scritte in un file che ORARIO apre con il BloccoNote di WINDOWS) e, guardando le prime l’utente può fare eseguire la mossa che gli piace di più.
    Facendo invece clic, tenendo il tasto “control” abbassato, nel caso in cui faccia clic su un’ora allocata ORARIO chiede in quale giorno l’utente desideri porla, se invece fa clic su un' ora vuota chiede da quale giorno desidera spostarla.

Per altri dettagli si veda nel seguito.

Le palestre e i danni delle ore bloccate

In molte scuole, per evitare che in palestra vi siano nella stessa ora e giorno classi con una differenza di anni di corso elevata (es 1° e 4° o 1° e 5°..) l’orario delle palestre viene fatto prima dai professori di scienze motorie, che molto spesso non fanno parte della commissione orario ,e queste ore vengono inserite nell 'orario vuoto prima dell'inizio della generazione  dell’orario bloccandole.

Così facendo però si riduce in maniera enorme l’insieme delle soluzioni  ed è molto probabile che l’orario generato sia estremamente “brutto”.

Per impedire che ciò accada usando ORARIO, per le palestre, oltre a indicare il numero dei professori presenti in palestra nelle stesse ore, occorre specificare anche la "massima differenza di anni di corso delle classi che possono essere presenti nella stessa ora e giorno in palestra".

​​​

E’ molto istruttivo un episodio avvenuto in una scuola cliente di 49 classi e 90 professori nel 2019.

 L' utente avendo bloccato l’orario delle palestre, anche ponendo al massimo il peso “eliminazione delle ore buche” e al minimo tutti gli altri pesi l’orario ottenuto aveva un numero enorme di buche (240).

Studiando l’orario della palestra, l’autore ricavò i due parametri (numero professori presenti in palestra, e la massima differenza di anni di corso delle classi presenti ..), vi erano al massimo 3 professori in palestra e la differenza di anni di corso massima era 2  al massimo nella stessa ora e giorno vi era una 1a con una 3a od una 2a con una 4a.

Inserendo una palestra con questi due parametri e riottenendo l’orario il numero delle ore buche si ridusse di un fattore 6, a 40, in questo modo poterono poi aumentare anche gli altri pesi dell'ottimizzazione. Quaranta ore buche con 90 professori sono veramente poche per le sostituzioni.

L’autore, successivamente, usando il calcolo combinatorio, ricavò che bloccando 98 ore dei  professori di scienze motorie si riduceva l’insieme delle soluzioni di un fattore dell’ordine di  10⁵⁰   e ciò spiegava ampiamente  l'enorme numero delle buche.

​​

Discutendo delle palestre vi era una scuola cliente che, usando un centro sportivo esterno poteva inviarvi in ore e giorni diversi un numero di classi diverse e l’utente  era costretto, per queste classi, a bloccare l’orario di quella palestra con i danni che si è appena visto.

Per eliminare questo problema si fece una modifica a ORARIO per cui nelle palestre si potesse avere non solo, come era nelle versioni precedenti, la possibilità di non utilizzarla in alcune ore, ma di poter anche indicare quanti professori potessero andare in palestra in ore diverse. Così facendo l'orario migliorò sensibilmente.

Si scoprì, poi, che un’altra scuola cliente aveva un problema simile.   

​​​​​
 L’arrivo di un professore che insegna in un'altra scuola.

Se, come spesso accade, un professore che insegna in un' altra scuola, non può essere disponibile come si era ipotizzato e se l'utente non desidera modificare molto l'orario già pubblicato, può bloccare l'orario delle classi dove non insegna il nuovo professore arrivato, e, modificati i suoi  dati (indisponibiltà e giorno libero)  chiedere a ORARIO di riottenere l'orario completo e ottimizzarlo lavorando solo sulle classi non bloccate.

Il compito in classe,

L’utente  può specificare, per ogni professore e classe ove insegna, non solo quante ore consecutive devono essere assegnate almeno una volta alla settimana per il compito, ma anche quale deve essere l’ultima ora in cui può iniziare il compito.

Quest’ultimo dato è utile, per i compiti impegnativi, per impedire che inizino quando gli alunni sono già stanchi.

Un compito può durare anche solo un'ora, nel caso il programma è obbligato almeno una volta alla settimana, per quel professore e classe ad allocare almeno un'ora che inizi non oltre l'ultima ora valida per il compito in classe.
Quest'ultima possibilità è molto utile per i professori che insegnano sempre un ora in una classe.

Le classi articolate

ORARIO intende per classi articolate, classi in cui una buona percentuale delle ore  insegnate vengono svolte in parallelo da professori che insegnano discipline diverse avendo le due classi specializzazioni differenti, mentre  le due classi si uniscono per le materie che hanno in comune attraverso tanti abbinamenti composti da un professore e le due classi.

Per queste ultime inserendo i dati del professore si dirà che insegna in una delle due, non importa quale, l'altra verrà aggiunta con l'abbinamento.
Quando si inseriscono i dati di un professore la somma delle ore che insegna in ogni classe deve essere eguale alle ore di lezione che svolge nella scuola.
In un caso abbastanza raro potrebbe accadere che il professore, in una delle due classi insegni altre ore con una delle due per cui, quando si inseriscono i dati di quel professore si dovrà inserire la classe ove fa più ore mentre l'abbinamento verrà fatto per il numero delle ore  in cui insegna nelle due classi.

Per i casi delle classi bilingue in cui una parte degli alunni di un classe segue una lingua diversa e si sposta in un’altra classe basta fare un abbinamento con i due professori e le due classi e la problematica è molto meno impegnativa per ORARIO.
Nel  caso che vi siano due lettori si diminuirà il numero di ore nel primo abbinamento e se ne aggiungerà un altro con i due professori, i due lettori e  le due classi e in modo analogo se di lettori ce ne fosse uno solo poi potrebbero esserci altre combinazioni con tre abbinamenti se i due lettori non hanno mai ore in comune.
Poi esistono altre combinazioni che si possono risolvere o con gli abbinamenti.

​​
Gestisce più classi che aule

Il programma ricava le associazioni classi aule e serve per le poche scuole che hanno più classi che aule. 


Eventualmente, per rimediare alla carenza di aule, si può anche fare in modo che 6 gruppi di classi, facendo l’orario in 5 giorni, non vadano a scuola in giorni diversi della settimana, il 1° gruppo il lunedì, il 2° il martedì... e che 5 di questi gruppi cambino l’aula una sola volta alla settimana mentre un gruppo usi sempre la stessa aula.
In quest'ultimo modo se N è il numero di aule si possono avere N/6 (approssimato per difetto) classi in più.

​​

La generazione dei consigli di classe

ORARIO oltre a chiedere il numero di classi che si vorrebbe avere in parallelo nei consigli di classe che non hanno professori in comune, per i consigli meno importanti permette di escludere alcuni professori dal parallelismo .
Il programma mostra le n-uple delle classi che non hanno professori in comune non considerando quelli esclusi e, per ogni classe, tutte quelle che non hanno professori in comune, al solito, non considerando quelli esclusi dal parallelismo

La sicurezza dei dati

I dati di un modello sono salvati in queste occasioni:

  • Durante il salvataggio ciclico (l'intervallo tra un salvataggio e il successivo viene definito dall'utente)

  • Con il comando "Salva" del menù "File"

  • Con il comando "Salva in un'altra directory (cartella)" del menu "File" per "congelare"  un modello e crearne uno nuovo inizialmente con gli stessi dati ma su cui saranno salvate tutte le modifiche successive. Funziona  come "salva con nome" solo che invece di operare su un file lo fa su una cartella dove ORARIO salva solo i file necessari.

  • Durante la chiusura di un modello salva:

    • le ultime modifiche della sessione nella cartella del modello,

    • in una cartella che fa parte di un gruppo di 26 cartelle che usa in maniera ciclica, 

    • chiede di salvare anche su una pen-drive. 

  • Durante l'esecuzione, ogni venti minuti di attività, crea un "checkpoint"  (un salvataggio ciclico ma su una cartella diversa del gruppo delle 26 cartelle) in modo da consentire all'utente, nell'eventualità che avesse fatto qualche errore, di non perdere troppo tempo a correggerlo, ma di ripartire da una situazione intermedia e così se si dovesse spegnere il PC.

Durante l’eventuale ripartenza dai punti di ripristino, il programma li mostrerà in maniera ordinata partendo dall’ultimo modello salvato, ma li copierà in un nuovo modello per evitare la perdita dei vecchi dati nel caso in cui l'utente, inavvertitamente, avesse ripristinato una sessione diversa da quella che immaginava.​

Colloquia con i registri elettronici

ORARIO colloquia con sette registri elettronici diversi creando per ognuno un file diverso, normalmente è un file csv (Excel).

Utilizzare ORARIO è molto facile

Molti oraristi, abituati a utilizzare programmi estremamente complessi da usare, hanno timore di cambiare programma che usano che hanno impiegato anni per imparare a utilizzarlo.

ORARIO non è complesso ma ha moltissime possibilità e, spesso, avendo gli utenti ottenuto un orario molto migliore delle aspettative, credono di saperlo usare senza utilizzare parti molto importanti che potrebbero aiutarli a risparmiare  molto tempo.

ORARIO è pienissimo di aiuti, qui se ne citano solo alcuni ma nel menu Help del programma, scegliendo la voce "Particolarità Interfaccia" vi è una lunga sequenza di  aiuti e di piccole cose che possono aiutare l'utente.

  • Un aiuto molto originale: nella schermata principale, in base alla situazione, il programma mostra un messaggio che guida l'utente sui passi da compiere. Ogni volta che l'indicazione cambia, l'utente viene avvisato da due brevi beep: il primo un istante prima della modifica e il secondo subito dopo."

 

​Posizionandosi su un campo (casella): 

  • battendo il tasto F1 il programma apre il documento del  Help in cui si spiega a cosa serve il dato da inserire, dando eventualmente anche consigli. ORARIO fa ciò dappertutto anche nelle opzioni di stampa.​

  • nelle schermate dove l'utente deve inserire più dati nella/e righe di dettaglio sono scritte informazioni utili sul dato da inserire anche se non quante se ne possono avere con il tasto F1.

  •  se la base del rettangolino  del  campo è più spessa e scura (nella terminologia di orario  si usa dire che è "cliccabile"), oltre a potere inserire il dato da tastiera, il campo si comporta come un "menu a tendina" ma un po' meglio;
    facendo clic con il tasto sinistro del mouse si apre una finestra con tutti i dati tra cui l'utente può scegliere, ma i dati non  sono incolonnati, se fossero tanti  si perderebbe  tempo con la barra di scorrimento, ma affiancandoli eventualmente su più righe  l’utente può scegliere  più velocemente  il dato (es. in base al caso i nomi dei professori, delle classi, i giorni liberi, i numeri compresi in un intervallo...)
    infine inserito il dato ORARIO sposta i cursori del mouse e della tastiera sulla casella successiva.​
    L'uso dei "campi ​​​​​cliccabili" è estremamente diffuso nel programma, ogni volta in cui ORARIO ma anche CATTEDRE sanno quali sono i dati tra cui può scegliere l'utente e ciò lo aiuta molto.

  • per inserire i nomi dei professori l’utente può anche batterne i primi caratteri e, quando i professori il cui nome inizia con gli stessi caratteri sono meno di 11  ORARIO apre, accanto al campo una finestra con i loro nomi e l’utente può sceglierlo con un clic.
    Volendo, molti preferiscono non spostare le mani dalla tastiera, l’utente può aggiungere qualche altro carattere sino a quando vi è un solo  professore il cui nome inizia con i caratteri digitati.

  • ORARIO non fa distinzione tra maiuscole e minuscole, a esempio avendo  inserito un professore con nome  “Pippo” ,   poi si può fare riferimento al professore battendo “PiPpo” o “pippo”...    Inoltre, se gli si dovesse cambiare nome, basta farlo nella voce “Modifica” del menu “Professori ” . 

Nelle schermate in cui l'utente deve inserire più dati:

  • vi è sempre il pulsante Help, premendolo apre l'Help su documento ove descrive la schermata, spesso vi sono immagini..

  • muovendo il mouse sia sulle caselle che sui pulsanti, compare un breve aiuto su una o due righe di dettaglio posizionate sopra i pulsanti.

Nella gran parte delle schermate in cui si inseriscono o modificano i dati della scuola vi sono due o tre pulsanti

  • "Velociz.Inser"  (Velocizza l'inserimento) premendolo porta al documento del Help ove vengono descritti i "trucchi"  per inserire i dati di quella schermata più velocemente

  • "Tutti i dati" premendolo ORARIO apre con il BloccoNote di Windows un file dove sono scritti tutti i dati inseriti.
    Si  potrebbe anche uscire dalla finestra e andando al menu "Rapporti" per vederlo, ma così è più veloce per l'utente.

  • "Esegui e copia" serve per potere utilizzare  una parte  dati che vi sono sulla schermata per inserire la prossima "entità" (professore, abbinamento, gruppo di laboratorio).
    Ad esempio per i professori, inserendo uno dopo l'altro professori che hanno dati simili (es. stesse materie del biennio)  cliccando il tasto il programma controlla tutti i dati della schermata, secondo i casi li inserisce  o modifica nella descrizione della scuola (Esegui) e poi cancellando il nome del professore  li lascia sullo schermo (Copia) in questo modo l'utente modificherà per il nuovo professore solo i dati diversi.

​​​

Nei menu:

  • ogni menu ha la voce Help, Esiste pure un menu Help.

  • muovendo il mouse nelle sue voci, nella linea di dettaglio, in fondo alla schermata, appare una riga di spiegazioni.

​​

Aprendo il programma

  • compare una schermata “Lo sapevate che…..”  in cui, in base alle esperienze dell’autore nei contatti avuti con gli utenti, vengono date spiegazioni e consigli sulle possibilità del programma spesso non utilizzate da molti utenti.

  • volendo aprire un modello, gli ultimi eventuali quattro su cui si è lavorato, si possono aprire direttamente dal menu "File" e sono mostrati in ordine di ultimo utilizzo. 

Se si volesse aprire un modello usato meno recentemente, sempre nel menu "File" con la voce "Modello preesistente" vi sono tre modi diversi per farlo.

  •  Scriverne il nome del modello nel campo 

  • Fare clic sul pulsante "sfoglia" . Se il nome del modello non contiene un percorso (path) si deve cercare nella cartella dove sono installati i programmi (normalmente "C:/ORARIO"), altrimenti cercare la cartella che ha lo stesso percorso.

  • Dato che il campo in cui si deve inserire il nome del modello è cliccabile (la base del rettangolino è più spessa e nera), fare clic al suo interno.
    Nella finestra che si aprirà vi saranno i nomi degli ultimi modelli (max. 40) su cui si è lavorato ordinati in ordine di ultimo utilizzo. 
    Muovendo il mouse sul nome di un modello, nelle due righe di dettaglio, in basso, vi saranno informazioni utili per individuarlo meglio  (data e ora di inizio e fine dell'ultima sessione, il numero delle classi, professori....  In più facendo clic con il tasto destro è possibile vedere il file di note del modello dove l'utente potrebbe avere scritto delle informazioni per individuarlo meglio. Usando il tasto sinistro si sceglie il modello da aprire.

 

  • Una cosa simile accade se si vuole ripristinare i dati di una sessione o checkpoint.

​​

  • ORARIO è estremamente attento nella ricerca di possibili errori commessi dall’utente.
    La segnalazione è, normalmente, immediata. Inoltre  durante  l'inserimento o modifica dei dati il programma posiziona il cursore del mouse e quello della tastiera sul campo in errore. Sempre nell'inserimento/modifica dei dati, quando l'utente cambia riga,  il programma controlla tutti i campi della riga che si sta per lasciare e anche quelli delle righe precedenti per evitare che siano in contrasto con quelli della riga che sta lasciando.
    Poi durante la "verifica" , ORARIO, lavorando sui tutti i dati del modello, cerca di individuare altri errori  e dà segnalazioni di casi inusuali .

​​​

  • Per l'inserimento dei dati nelle schermate delle classi, professori, abbinamenti e laboratori, è fortemente consigliato inserire tutti i dati della prima riga della schermata, poi quelli della seconda ecc. la stessa cosa vale per la modifica. Questo modo di procedere comporta dei vantaggi:

    • il primo è che il programma, man mano che si cambia linea può fare controlli accurati sui dati immessi ed eventuali errori possono essere rilevati immediatamente

    • il poter recuperare, senza ribatterla una riga inserita non troppo tempo prima oltre ad altri vantaggi.  

    • In alcuni  casi , il programma suggerirà i dati sottostanti sfruttando quelli delle righe precedenti.

ORARIO ha oltre 1700 finestre e, la gran parte di queste, servono ad avvisare l’utente di possibili errori, suggerimenti o richieste di attenzione in cui il programma spiegando qualche cosa chiede all'utente se vuole proseguire. 


La filosofia con cui è stato scritto ORARIO è che l’utente possa sbagliare ma il programma non debba permetterlo.

​​​

Quando ORARIO si accorge che l'utente sta facendo qualche azione "inusuale" lo avvisa, se è anche "pericolosa" ma che potrebbe essere fatta oltre ad avvisarlo gli chiede se è sicuro, e in alcune occasioni anche due volte. 
In ogni caso vi sono i "checkpoint" per cui, partendo dall'ultimo, l'utente  perderebbe al più gli ultimi 20 minuti di lavoro.

​​​​

I Rapporti 

Vi sono oltre una ventina di rapporti che si possono o stampare o fare scrivere in formato TXT o CSV questi ultimi due vengono aperti direttamente dal programma usando rispettivamente Il BLOCCONOTE di WINDOWS (NOTEPAD) con EXCEL o un programma equivalente. 
Se i rapporti riguardano professori o classi si possono selezionare secondo i casi quali professori o classi includere nel rapporto e volendo ricordare la selezione se si pensa di riutilizzarla anche successivamente. 
Poi vi sono, in base al rapporto, diverse opzioni, il rapporto che ne ha di più è quello del tabellone dei professori che  ha 12 opzioni diverse. 

ORARIO genera i file HTML per il sito della scuola
Dato che il sito della scuola è un biglietto da visita della stessa, si è posta molta cura affinché le schermate siano molto belle ed eleganti. 
Si possono usare i colori diversi per evidenziare i nomi delle materie. Oltre all’orario delle classi, professori e laboratori, l’utente può scegliere di avere la tabellina dell’ orario (inizio e fine) delle lezioni e quella dei ricevimenti in cui  per i professori che insegnano in altre scuole viene scritto oltre al giorno anche in quali settimane del mese ricevono.

​​​

L'assistenza

La assistenza viene data direttamente dall’autore e a settembre si può chiamare sino alle 24 visto che avendo una casa moto grande l’ufficio si trova a casa.
Inoltre, volendo provare l’orario, per rendere più semplice la prova, l’autore può fare una introduzione in teleassistenza della durata di circa due ore, che aiuterà a velocizzare la prova. Infine, chi lo proverà potrà chiamare anche più volte al giorno se incontrasse difficoltà.


R I A S S U M E N D O


I motivi principali per cui conviene passare a usare ORARIO sono:

  •  per la scuole potere avere un orario che accontenti i professori e che sia anche didattico è  il motivo fondamentale.
    Le scuole esistono per educare al meglio gli alunni ma se anche i professori sono contenti possono svolgere il loro lavoro con più serenità e meglio.

​​

  • Potere fare partire più velocemente la scuola con un orario definitivo.

​​

  • I professori che fanno l’orario potrebbero lavorare molto meno per ottenere un orario definitivo.  


La versione 3b per ora funziona solo con WINDOWS 7 o successivi. Se fosse necessario occorrerebbe contattare l’autore che potrebbe fare delle modifiche per le versioni precedenti di WINDOWS . 
In ogni caso si consiglia di passare a WINDOWS 11 che è più sicuro per tutti i programmi e, colloquiando con la CPU può anche migliorarne le performance.

Approfondimenti  Orario
Gli eventi che hanno poi permesso la creazione di ORARIO


Essendo ORARIO un programma scientifico, fa parte della branca “Programmazione matematica” della “Ricerca operativa” ed essendo l’ autore un ingegnere nucleare che ha fatto per più anni il ricercatore, ha scelto di trattarlo in maniera scientifica, invece di cercare di emulare quanto fa un buon “orarista”, ottenendo così dei risultati molto migliori.
Per avere più informazioni al riguardo si consiglia di leggere la pagina “introduzione” del sito.

  • L’autore,  per 17 anni ha lavorato alla Sperry Univac poi dopo l’unione con la Burroughs  rinominata Unisys (allora. tra imprese informatiche. la numero due al mondo per fatturato) anche a Londra e negli Stati Uniti, interessandosi per alcuni anni a trovare errori nel sistema operativo dei mainframe (calcolatori enormi e costosissimi anche 50 miliardi di lire degli anni 80)  ed era considerato uno dei migliori sistemisti della ditta in Europa) per cui le sue conoscenze informatiche lo hanno molto aiutato a scrivere un programma così complesso velocissimo e solido.

  • L’autore ha scritto diversi programmi scientifici, il primo durante una tesi di fisica teorica durata un anno e mezzo presso il centro di ricerca del CNEN di Frascati sui gas ionizzati (i plasmi), un altro al centro Euratom  di Ispra, e due lavorando al CISE per l’Enel Nucleare per la centrale nucleare di Caorso e altri 2 per una società di ingegneria. 

  • il primo, al CISE, calcolando la durata di una carica di combustibile di un reattore nucleare , su richiesta dell’Enel per potere fare delle simulazioni, riduceva di 450 volte il tempo di esecuzione, rispetto ad un altro programma, probabilmente della General Electric, ottenendo gli stessi risultati. 

  • L’altro programma, allora sembrava immenso,16000 righe di codifica (ORARIO ne ha circa 170000) e raccontava un suo compagno del politecnico che lavorava alla centrale di Caorso ormai chiusa, fu poi venduto dall’Enel all’ente omologo giapponese e, dopo 20 anni era ancora molto utilizzato e apprezzato in Enel.

  • Poi altri due per uno studio di ingegneria, di cui uno di “Programmazione matematica” per un “project financing” per l’ "Acquedotto Pugliese”. 

La verifica dei dati

Dopo aver inserito tutti i dati, l’utente chiede al programma di fare la “verifica” dei dati. 

Durante la verifica, impiega qualche secondo, ORARIO prima di generare l’orario, oltre a controllare che non vi siano incongruenze tra i dati inseriti, anche utilizzando una piccola ridondanza dei medesimi e altre amenità, cerca di capire se i vincoli posti dall’utente gli consentiranno di fare un orario completo e, se è sicuro che sia impossibile, avvisa l’utente e gli spiega, nel rapporto "Consigli vincoli", il motivo e l'utente deve seguire i suoi consigli.

Dato che non è sempre possibile predire dai dati inseriti la impossibilità del completamento dell’orario, rispettando i vincoli, se ORARIO si accorge che l’utente ha usato vincoli pesanti lo invita a studiare il rapporto “Consigli vincoli” dove dà delle indicazioni, con toni diversi in funzione della loro pesantezza .


In quest’ultimo caso, l’utente può o non seguire i suoi consigli, ma, se poi ottiene un orario incompleto o non molto bello sa almeno cosa deve cambiare e avrà solo perso del tempo, ma non troppo, perché il programma è estremamente veloce. 
Ripartirà da un orario vuoto o quasi ma con le indisponibilità dei professori che insegnano anche in altre scuole (le ore “O” come occupate) , rilasserà il/i vincolo/i e chiederà al programma di rifare l'orario. Il tutto in pochi minuti.


Volendo, l'utente potrebbe anche cambiare un vincolo quando il programma lo avvisa che non riesce a completare l'orario e poi dirgli di continuare, ma, partendo da un orario vuoto può consentire al programma di fare un orario migliore e/o completo, mentre continuando, le allocazioni precedenti al suo cambiamento erano state fatte non considerando il/i vincoli modificati.
Comunque se i vincoli non fossero molto pesanti potrebbe essere poco importante.


Infine, dato che il programma è estremamente veloce, ottenuto un orario senza modificare i vincoli ,“salvando con nome" i dati del modello, in un  nuovo modello (voce "Salva in altra directory" menu "File") partendo da un orario con le sole ore "O" ( quello in cui ha indicato le ore in cui i professori che insegnano in altre scuole) ,  può provare a rilassare qualche vincolo e ottenere un nuovo orario. Poi, per fare prima, confrontando le statistiche dell'orario dei due modelli, potrà decidere quale scegliere. Farlo potrebbe anche accrescere la sua sensibilità nel giudicare i danni che i vincoli provocano alla qualità dell'orario.

 

La creazione di un orario completo 
ORARIO, a differenza di quanto sembra facciano i programmi più diffusi, crea l’orario in due fasi. 
Nella prima genera un orario molto brutto (è molto importante sia tale, per motivi matematici,)  ‘il primo orario”  e poi lo ottimizza.
Questo comportamento è molto importante anche perché così facendo il programma può affrontare separatamente e molto meglio, le due grandi complessità: generare un orario completo rigidamente rispettoso dei vincoli e renderlo molto “bello”. 
Inoltre, ricordando gli orari in diverse fasi dell’esecuzione, consente all’utente di ripartire da una di queste senza dovere ripetere quanto già fatto in precedenza.


Una delle più importanti qualità del programma è la sua capacità di generare un orario completo e rispettoso dei vincoli. 
Molti nuovi clienti raccontavano che il programma che utilizzavano gli lasciavano molte ore non messe mentre ORARIO aveva completato l’orario. 

La complessità di una scuola incide essenzialmente sulla completezza dell'orario.
Spesso le scuole si lamentano di avere vincoli molto pesanti ma in realtà è solo perché il programma che usano non è in grado di affrontarli.

 

Una scuola molto complessa è il Regina Margherita di Palermo che nei primi anni del 2000 aveva oltre 100 classi disposte su sei plessi e molti professori che insegnavano su 3 ma anche 4 plessi diversi, usano il programma ORARIO dal 1997. ​

Un altro caso che può sembrare molto complesso fu quello di una scuola di Grosseto. Vi erano tre gruppi di classi, uno nel primo plesso  faceva lezioni di 60 minuti in sei giorni alla settimana, un secondo gruppo, nello stesso plesso, le classi facevano  lezioni di 50 minuti in 5  giorni alla settimana ma non il sabato.
Vi era poi un terzo gruppo di classi che dal lunedì al venerdì stava nel secondo plesso e che il sabato occupava le aule lasciate libere dal secondo gruppo di classi nel primo. 
Potrebbe sembrare complicato ma in realtà è semplicissimo se svolto con tre plessi  e facendo cambiare plesso alle classi del terzo gruppo il sabato. 
ORARIO gestisce anche classi che cambiano plesso nei giorni della settimana così come anche la doppia campanella e volendo (è capitato solo una volta) una tripla campanella. 

Stupì la domanda fatta, recentemente, da un professore in cui chiedeva se ORARIO gestisse gli ITP, in fondo usava uno dei tre programmi della concorrenza più  diffusi.
ORARIO consente che vadano, nelle stesse ore nello stesso laboratorio un gruppo composto da 1 a 6 professori insieme a 1 sino a 6 classi, anche se normalmente il gruppo è composto da 1 o 2 professori e una classe. 
Si ricorda di un istituto d’arte che aveva nello stesso stanzone 4 professori e 4 classi, inoltre, ORARIO ha resistito in maniera eccellente ai folli tempi della autonomia.


Al riguardo vi era un liceo che voleva che tutti gli alunni delle prime classi, per un’ora alla settimana potessero scambiarsi i professori e così per quelli delle seconde.
Così, avendo nove sezioni, fecero due abbinamenti in cui per un’ora nove professori e nove classi stavano in compresenza. 
Nove è il numero massimo di professori e classi che gestisce ORARIO in un abbinamento anche se, normalmente in una compresenza ve ne sono molte di meno  ma quando vi erano le squadre di educazione fisica maschili e femminili, nelle scuole con molte classi capitavano compresenze in palestra anche con sette  professori e professoresse.

I due grandi algoritmi usati per generare un orario completo
Per completare un orario il programma, schematizzando, usa due enormi algoritmi. 
Il primo, quello “predittivo” cerca di capire quale è la coppia “professore-classe” più critica e dove (ora e giorno) è meglio allocarla ai fini della completezza dell’orario.
Per dare una idea della complessità dell’algoritmo, solo per decidere dove porre la coppia il programma usa oltre 3000 linee di codifica.
Ciò fatto ricalcola, per tutti i professori e classi coinvolti direttamente od indirettamente nella allocazione, una grande quantità di variabili che gli servono per eseguire la prossima allocazione e ripete queste operazioni sino al completamento dell’orario. 
Negli anni l’algoritmo è migliorato a tal punto che, se l’orario non è molto complesso, riesce da solo a completare l’orario in pochi secondi, un sogno avverato.


L’algoritmo "correttivo", interviene se, durante il ricalcolo delle variabili, ORARIO si accorge che non riesce ad allocare un professore in una classe o che in una classe un’ora non può essere allocata da nessun professore. 
In questi casi il programma prova a eseguire sino a 17 algoritmi diversi per cercare di risolvere il problema e, se non vi riuscisse, avvisa l’utente chiedendogli se vuole provarci lui o se vuole sospendere ed eventualmente riprendere le allocazioni. o, infine, se vuole che programma continui. 
In questo ultimo caso alla fine della allocazione ORARIO aumenta di un gradino il livello di accanimento da usare per completare l’orario, ed esegue un’ultima prova, se il livello di accanimento fosse già il massimo prima di riprovare cerca di fare qualche decina di migliaia di spostamenti, nella speranza che in una situazione diversa possa riuscire e riprova. 
Se il programma non riuscisse a completare l’orario, l’utente facendosi aiutare dal rapporto “Consigli vincoli” deve rilassare qualche vincolo (magari cambiare un giorno libero), comunque è un caso molto raro, moltissime scuole clienti negano di avere avuto casi in cui il programma non gli completasse l’orario.

L’ ottimizzazione dell’orario


La definizione di “un orario bello” purtroppo non è univoca, “alii alia volunt”. 
Al riguardo, schematizzando, vi sono due scuole di pensiero:

  •  La prima, è la più seguita, consiste nell’ accontentare i professori in modo che, essendo contenti, lavorino meglio. Tra l’altro chi fa l’orario deve anche vivere in pace.

  • La seconda è che la missione delle scuole è quella di educare al meglio gli alunni per cui l’orario deve essere didattico. A esempio, non si dovrebbe porre in un giorno tutte materie pesanti per gli alunni e in altri tutte materie leggere...

In tal modo occorre che l’utente, per l’ottimizzazione possa indicare, quali sono le sue priorità per i vari aspetti per cui si può giudicare l’orario e che il programma li rispetti senza fare peggiorare mai troppo anche quelli giudicati meno importanti.

​​

I pesi dell’ottimizzazione
Per indirizzare il programma a generare un orario come lo desidera la scuola, l’utente deve modificare  i “pesi dell’ottimizzazione”  che sono dei numeri che servono a dare maggiore o minore rilevanza a ognuno di dieci aspetti per cui si può valutare un orario.
Nella immagine qui sotto il significato preciso di ogni aspetto  può non essere molto chiaro, ma, nel programma, come accade in tutte le occasioni in cui  l’utente deve inserire un dato, posizionandosi nella casella ove deve inserirlo, battendo il tasto F1 ORARIO apre una finestra con il documento dell’Help in cui vi sono  spiegazioni dettagliate sul dato da inserire. 
Purtroppo la gran parte degli utenti lavora sui portatili il cui schermo non consente di di inserire molte informazioni se non rimpiccolendo in maniera eccessiva i caratteri.​​​​​​​​​​​​​​​​​​​​​​​​​​

PesiOttimizzazione.png

 

I pesi dell’ottimizzazione hanno una valenza solo in quanto confrontati rispetto alla media di tutti.

Pertanto, moltiplicandoli tutti per 2 si otterrebbe lo stesso orario.

​​​

Usando un linguaggio matematico, ORARIO ottimizza una funzione obiettivo che è la sommatoria pesata di 10 funzioni ognuna delle quali ottimizza un aspetto per cui si può giudicare l’orario.

Aumentando o diminuendo ognuno dei pesi rispetto alla loro media farà sì che l’aspetto di cui si è modificato il peso, contribuirà in maniera maggiore o minore alla formazione dell’ottimo.

Moltiplicando tutti i pesi per lo stesso numero (diverso da zero) l’ottimo cadrà nella stessa posizione.

La taratura del programma

 E' facoltativa però è utile per indirizzare il programma a generare un orario personalizzato.
Ad esempio utilizzando i pesi della figura (v.sopra) aumentando il terzo e il settimo peso si potrebbe avere un orario più didattico.

Naturalmente, come tutte le prove, va fatta generando un unico orario, l'"orario classico" , senza il calcolo parallelo (quando ORARIO chiede quanti orari deve generare rispondere 1)

​​

Fatta l'ottimizzazione si può studiare l'orario con il rapporto "Statistiche dell'orario" o guardandolo.
Poi vedendo che qualche aspetto è trascurato, chiudendo il programma e ripartendo dal "primo orario" aumentando i pesi  degli aspetti più trascurati, ripetere l'ottimizzazione.
 

Poi, invece di studiare l’orario (occorre più tempo) l'utente può confrontare le statistiche dei due orari, infine per affinare i pesi può ripetere questa operazione anche più volte ma normalmente basta due o tre ottimizzazioni a volte nessuna.

Si badi è importante ripartire dal "primo orario", un orario pessimo, perché altrimenti l'orario generato non rifletterebbe i nuovi pesi. 

Normalmente bastano due o tre tentativi per ottenere quanto si vuole.

Operando in questo modo l'utente potrà tarare l’orario in modo che dovrà ,poi, ritoccarlo molto meno.

 

Così, ad esempio, se dovesse capitare che l’orario avesse pochi buchi, e i buchi sono spesso utili per le sostituzioni, ripartendo sempre dal “primo orario” diminuendo il peso della “eliminazione dei buchi “riotterrà un orario con più buchi in funzione della entità della diminuzione del peso modificato.

Tra l’altro non è raro che qualche utente che non sapendo che esistono i "pesi dell’ottimizzazione" si lamenti per questo motivo.

 

Le importanze dei professori 

Dato che non tutti i professori possono volere le stesse cose, per tutti gli aspetti che li riguardano, ORARIO consente, durante l’ottimizzazione, di trattare in maniera diversa uno o più professori rispetto a quanto non faccia per tutti gli altri , per alcuni aspetti che li riguardano.
Ciò è possibile grazie a dei parametri associati a ogni professore chiamati "importanze" (durante l'inserimento dei dati dei professori sono suggeriti eguali per tutti e l'utente li modificherà solo per eccezione).

Aumentando una "importanza" di un professore è come se si fosse aumentato solo per lui il peso dell'ottimizzazione corrispondente alla all'aspetto collegato a quella “importanza”.


Ad esempio , se, fissato  il peso dell' "eliminazione delle ore buche"  che va bene per tutta la scuola,  l'utente desiderasse che il programma si sforzi maggiormente a eliminare i buchi di uno o più professori durante l'ottimizzazione, potrebbe aumentare, solo per loro,  la "importanza dell'eliminazione dei buchi"  e non  dovrà perdere tempo a modificargli l'orario dopo l'ottimizzazione per eliminargli qualche buco.

Viceversa, è un caso abbastanza raro, ma non troppo, se il professore volesse aver qualche buco in più l'utente potrebbe diminuirne l'importanza.
Un altro esempio: potrebbe capitare che professore che fa anche la libera professione e che non si assenta nei giorni in cui fa più ore, potrebbe chiedere di avere un orario in cui insegna molte ore in alcuni giorni e poche in altri.
Se, come si è appena detto, è una persona affidabile  per lui l’utente potrebbe diminuire l’importanza della “Distribuzione uniforme del numero di lezione nei giorni della settimana”.

Cosa fa ORARIO durante l'ottimizzazione

Durante l’ottimizzazione ORARIO, considerando anche i "pesi dell’ ottimizzazione" e le "importanze dei professori" cerca di migliorare le situazioni peggiori per cui ad esempio, la valutazione dell’eliminazione di una ora buca, varia in funzione di quante ore buche ha il professore così, se la prima ora buca di un professore valesse 1 la seconda varrebbe 2 la terza 3 ..

Ciò accade anche gli altri aspetti, e in questa maniera l’orario diventa più armonioso.

​​

Durante l’ottimizzazione il programma considera 12 tipi di mosse diverse a volte intrecciate tra di loro.

Le più complesse di queste possono estendersi su due classi.

Sempre durante l’ottimizzazione sono abbastanza frequenti le mosse che spostano su due classi anche 8 professori.

Una volta si è visto ORARIO spostarne anche 11 professori in una mossa, ma e rarissimo così come è un po’ meno raro che ORARIO muova 14 ore in una mossa.

Il potere fare mosse così complesse insieme ad altri accorgimenti fa sì che il programma, esplorando in maniera intelligente e maggiore l’insieme delle soluzioni, ottenga risultati nettamente migliori di quanto facciano i principali programmi della concorrenza, tutti?

Tra i tipi di mosse che ORARIO fa ve ne è una che è molto cara all’autore perché non cambiando l’ora di ingresso o di uscita o le buche dei professori coinvolti può migliorare la didatticità dell’orario anche se, non molto, se il peso dell’ottimizzazione degli aspetti didattici fossero tenuti molto bassi rispetto a quelli più elevati.

L’insieme delle soluzioni


L’ insieme delle soluzioni di un orario di una scuola è enorme, è facile dimostrare (facendo delle ipotesi plausibili )che in una scuola di 36 classi, partendo da un orario vuoto facendo l’orario di due professori di religione e quindi ponendo una sola ora per ogni classe, si potrebbero ottenere 4 10⁷⁵ orari diversi. Il numero preciso non è interessante, quello che importa è il suo ordine di grandezza e anche da dire che i professori di religione, insegnando in 18 classi sono quelli che hanno di gran lunga più possibilità di avere orari diversi.                                                                                                                                                                                      
Tornando alla dimensione dell’insieme delle soluzioni di un orario si sa solo che è enorme.
Per cui poterlo esplorare in maniera intelligente è estremamente importante per l’ottimizzazione ed è una cosa che già fa la versione 3a di ORARIO. 

Inoltre esplorando in maniera maggiore l’insieme delle soluzioni con il calcolo parallelo  si può ancora di più abolire quella dualità schematizzata poco sopra (orari che accontentano solo i professori o didattici) e ottenere orari che siano belli sia per i professori e didattici per gli studenti.

Una breve introduzione sulle cpu moderne


I ‘core’ sono delle cpu all’interno del chip, ultimamente, il chip viene chiamato CPU mentre quelle che una volta venivano chiamate CPU al suo interno vengono chiamati "core")


I GHZ indicano quante volte, in un secondo un core potrebbe esegue un’istruzione elementare se avesse a disposizione tutti i dati di cui ha bisogno, un "ciclo" è il tempo necessario per fare una istruzione elementare  e si misura in nano secondi ad esempio un core con una velocita di 5GHZ esegue un ciclo ogni  0.2 nanosecondi ( miliardesimi di secondo).
I core all’interno della CPU,a loro volta possono essere più o meno veloci, i P-core sono più veloci mentre gli  E-core lo sono un po’ meno (spesso un terzo meno).


Il più grosso problema che hanno i core è quello di leggere o scrivere i dati nella memoria (RAM), che è molto più lenta.
Per rimediare a questo problema la cpu ha nel suo interno  diverse gerarchie  L1,L2,L3 di memorie estremamente veloci che si chiamano  “cache” dove vengono  mantenuti i frammenti di memoria ( 64 byte) dei dati usati  più frequentemente recentemente. 
Le cache a loro volta hanno diverse   velocità e dimensioni

 le più veloci, le L1 contengono meno dati ma per accedervi un core impiega circa 4 cicli e ve ne è una per ogni core . 

le L2  meno veloci ma più grandi, per accedervi il core impiega circa 12  cicli, normalmente ve ne è una per ogni P-core, mentre,  spesso, 4 E-core condividono la stessa L2.

La cache L3  è ancora più lenta della L2 (40-60 cicli) ma anche molto più capiente ed è condivisa da tutti i core

La lentezza della RAM , la enorme memoria esterna alla cpu, è il vero problema della  velocità dei core che quando non trovano un dato od una istruzione in una cache (memory miss) devono attendere anche 200-400 cicli prima di continuare.                                   
Dato che le CPU si possono riscaldare molto, quelle moderne (più o meno dal 2003), hanno un meccanismo di autoprotezione, per cui la CPU, accorgendosi che la temperatura aumenta rallentano la sua velocità (Thermal Throttling). 
Quest’ultimo fenomeno è molto più comune nei portatili, che avendo le griglie di aerazione nella parte inferiore hanno più problemi. 


In un caso, scostando un portatile da una parete di pochi centimetri (aveva la griglia  di areazione proprio vicino alla parete), impiegò il 14% di tempo in meno. 
Inoltre, è bene far pulire le ventole e il radiatore da un tecnico  ogni 6-12 mesi eventualmente cambiando la pasta termica. I segnali di allarme sono le ventole rumorose e il riscaldamento della scocca o tastiera.

Il calcolo parallelo


Benché  la versione 3a di ORARIO  esplorasse in modo molto raffinato l’insieme delle soluzioni  dalla versione 3b il programma può  farlo ancora meglio sfruttando  appieno la potenza  di calcolo usando tutti i core di una CPU.
Dalla versione 3b si può chiedere a ORARIO di fare più orari diversi in parallelo, al massimo 64 utilizzando un core per ogni orario in esecuzione ed, appena finisce l’ottimizzazione di un orario, il programma ne fa partire un altro in questo modo,  generando più orari in parallelo, esplorando maggiormente l’insieme delle soluzioni, sfruttando l’intera potenza di calcolo e non una piccola frazione, delle capacità di calcolo del pc, si può ottenere un orario  ancora migliore  scegliendolo  tra quelli generati. 

L’algoritmo scelto per generare orari diversi
L’algoritmo utilizzato per ottenere orari diversi è nato da un’idea per migliorare l’orario “classico”.  
Si era pensato che modificando certe scelte fatte dal programma nelle prime iterazioni, circa il 15% di tutte, l’ottimizzazione potesse migliorare utilizzando i numeri pseudorandom (casuali).
Poi provando sulle prime scuole vi era un buon miglioramento ma su altre peggiorava, mentre cambiando la sequenza dei numeri pseudorandom accadeva l’opposto.  
Dopo aver lavorato per mesi per cercare di diminuire le distanza trai due gruppi e ottenendo piccoli miglioramenti si è pensato di usare il calcolo parallelo inizialmente  con le prime due sequenze e  generando solo due orari. poi aumentando il numero degli orari, si sono raggiunti risultati molto maggiori arrivando sino a 64 orari.
Pertanto si è sfruttato tutta la potenza delle CPU, non utilizzandone la forza bruta, ma in maniera mirata.


I risultati hanno eguagliato e in alcuni casi superato le aspettative, come d’altronde era facile prevedere anche ottimizzando solo 4 orari in parallelo è molto probabile che uno degli altri 3 sia migliore dell'orario “classico”  non generato in parallelo. Usando il calcolo parallelo Il primo degli orari generati è sempre quello “classico”.


Si è scelto 64 come numero massimo di orari che si possono generare in parallelo pensando che molte scuole o utenti spesso potrebbero non avere PC molto potenti o recenti.

 

Scegliere l'orario migliore di quelli generati
Per poter scegliere l’orario migliore di quelli generati ORARIO usa un algoritmo che si sviluppa in tre fasi in cui l’utente può scartare gli orari meno promettenti guardando nella prima fase a un insieme di dati più ridotto (18), nella seconda fase guardano insieme più ampio (le statistiche dell'orario ma senza dettagli) e, nella terza fase caricando, uno alla volta gli orari più promettenti rimasti di cui l’utente è in dubbio su quale sia il migliore può vederne l’orario e/o le statistiche con i dettagli. 
Gli orari scartati non vengono cancellati e tutte le operazioni che compie l’utente possono essere fatte anche in ordine diverso, ripetute….  
Anche generando 64 orario, spesso, dai dati della seconda fase è possibile scegliere quale sia l’orario migliore.

I tempi di esecuzione
Considerando la velocità di ORARIO si possono ottenere 64 orari   in tempi ragionevoli minori di quelli impiegati per generare un unico orario da molti (tutti ?) i programmi più diffusi della concorrenza e, per almeno un paio di questi, anche in una piccola frazione del tempo impiegato da questi ultimi .
ORARIO utilizzando un PC con una cpu I9-14900KF  impiega per ottimizzare l’orario di  ITI di 80 classi e 21 laboratori  usando 16 Core poco meno di 17 minuti con 24 core poco più 14 minuti, mentre per un liceo scientifico con 61 classi usando 24 core poco più 6 minuti e mezzo. 

Usando altri programmi, generando 64 orari uno alla volta a parte i tempi molto maggiori per ottenerli, per confrontarli tutti tra di loro potrebbe occorrere molto più tempo dato che il programma usato non potrebbe aiutarli.

 

Si consiglia l’uso del calcolo parallelo solo per l’orario definitivo anche peché, molto spesso, con l’arrivo dei professori che insegnano nelle altre scuole i vincoli peggiorano e di conseguenza anche l’orario e è imbarazzante avere pubblicato un orario provvisorio migliore e poi uno definitivo anche un poco peggiore.
Usando altri programmi dato che creano solo bozze, nel tempo che la commissione orario impiega a migliorarli sono già arrivati tutti i professori. 

Un esempio di un orario che accontenta i professori ed è didattico
Come si è già detto Il programma crea orari che accontentano i professori ma che sono anche didattici.

Mentre tutte le scuole che hanno provato ORARIO hanno detto che l’orario da lui generato  era molto migliore di quello pubblicato, recentemente, il Prof. Paoliello del Liceo Peano di Marsico Nuovo, che usava un programma molto diffuso in particolare nel meridione, provando la versione 3a ha anche dato qualche dato per il confronto. 
Provandolo sulla sede centrale di 20 classi e impostando i “pesi dell’ottimizzazione” “Eliminazione ore buche dei professori” e “Uniformità nelle classi, nei giorni settimana, del carico lezioni” entrambi eguali a 10 e gli altri pesi più bassi, quindi volendo ottenere un orario anche didattico, raccontava che:  

  • l’orario generato da ORARIO rispetto a quello pubblicato aveva 22 ore buche non ponibili a disposizione, in meno   

  • che quando aveva modificato la bozza che gli aveva generato il programma che usava, non era riuscito a impedire che in una classe, in un giorno vi fossero tutte materie pesanti per gli alunni, mentre ORARIO aveva risolto anche questo problema. 

  •  Infine, ha anche detto che nel tempo in cui il programma che usava avrebbe impiegato a generare un orario, con ORARIO era riuscito a fare tre prove modificando qualche parametro, generando 3 orari diversi e studiandoli. Probabilmente per studiarli velocemente avrà usato il rapporto “statistiche orario” chiedendo anche di avere dei dettagli.

Con la 3b grazie al calcolo parallelo naturalmente può ottenere un orario ancora migliore.

Cosa fa ORARIO durante un’ottimizzazione
Nella tabella 1 (v. sotto)  per 5 orari dei 64 generati di un ITI  di 80 classi, 21 laboratori e 184 professori di cui si  è  accennato in precedenza, sono  mostrati  alcuni dati estratti dalle ultime righe delle statistiche dell’orario. Per ricavare i 64 orari ORARIO ha impiegato 14:18 minuti e secondi.


Nello stesso PC , per ricavare l’orario “classico” usando un solo core.  ORARIO ha impiegato 2:41  minuti e  secondi (161 secondi) mentre ricavandolo insieme ad altri 23 orari (con tutti i 24 core attivi) ha impiegato  238  secondi circa il 48% di tempo in più. 
Ciò è legato all’essere la cache L3 (la più grande anche se la meno veloce delle cache) comune a tutti i core), nel primo caso e quasi a completa disposizione della dell’unico core che è attivo  mentre nel secondo caso, generando 24 orari in parallelo,  ognuno ne usa un ventiquattresimo e sono più comuni i casi in cui il core, non trovando il dato in nessuna cache (memory miss) debba aspettare  5-10 più tempo (dipende dalla velocità della RAM) di quanto impegnerebbe trovandolo nel L3. 


Quanto appena detto non considera i programmi che lavorano in sottofondo che normalmente non utilizzano molta cpu per cui il loro uso della cpu è trascurabile, tranne che nel caso in cui essendo stato il PC spento per lungo tempo, quando lo si riaccende WIDOWS  (Windows Modules Installer)  si affretta con priorità elevata ad aggiornare se stesso, a volte per più di un’ora impegnando anche il 90% della cpu.

I dati delle tabelle 1 e 2 sono, nell’ordine:  l’identificatore del orario, la durata dell’ ottimizzazione calcolata in minuti e secondi, il numero di mosse eseguite, il numero di mosse trovate e analizzate, quante ore (lezioni) sono state spostate durante l’esecuzione, il numero di volte in cui ORARIO ha esaminato le mosse di tutti i professori ed, infine, quante ore è riuscito a spostare nella mossa più complessa. 
Nella tabella 1 si nota che la “Durata della ottimizzazione” nei cinque orari mostrati possa variare anche di un fattore 2 e così pure per altri parametri mostrano la stessa variabilità. 
Accade ciò per via della problematica dell’orario, il fatto che sia solo circa di un fattore due e che il numero di “Mosse eseguite” prima che il programma non trovi più nessuna mossa che migliori l’orario  sia sempre elevato dimostra la solidità dell’algoritmo, altrimenti  vi sarebbero orari con pochissime mosse e altri con moltissime mosse di più.


Nelle tantissime prove fatte negli anni, si notava che a un peggioramento della qualità dell’orario spesso era accompagnata da una diminuzione del numero di mosse eseguite. 


E’ importare  notare l’enorme numero di “Mosse analizzate” in così poco  tempo da ORARIO negli orari mostrati, numero che oscilla tra i 60 ai 124 milioni considerando che per ognuna  ha dovuto ricavarla  in modo che rispetti i vincoli, che  nella loro valutazione analizzi dieci aspetti diversi e che le mosse possono coinvolgere spesso anche 8 professori su due classi.

Considerando che nell’orario dell'lTI nella settimana vi sono 2626 ore di lezione e che le “Ore spostate” durante l’ottimizzazione, nella tabella oscillano tra 206439 e 356721 dividendo per 2626 si ottiene che mediamente ogni ora dell’orario è stata spostata da 76.6 a 135.8 volte.


Dividendo il numero di “Ore spostate” per il numero di “Mosse eseguite” si può ricavare il numero di ore medie spostate da ogni mossa. 
Considerando il primo e l’ultimo orario della tabella si ricava che in media ogni mossa ha spostato da 3,3 a 3,6 ore per cui, è abbastanza probabile che almeno un terzo delle mosse  sposti 5 o più ore, l’ipotesi è anche avvalorata dall’ultimo dato che indica che durante l’ottimizzazione il programma ha fatto almeno una volta una mossa che sposta N ore , questo ultimo numero oscilla nella tabellina tra 11 e 14 in altri casi potrebbe anche essere eguale a 10. 


Le mosse che spostano  più di 8 ore sono utilizzate perlopiù nei laboratori quando ORARIO cerca di spostare gruppi con più di un’ora in classi che stanno  nello stesso laboratorio.


Nella Tabella  2 vi sono i dati analoghi a quelli della tabella 1 ma di un liceo scientifico con 61 classi, 1 laboratorio (la palestra) e 114 professori. Per ricavare i 64 orari ORARIO ha impiegato 6:36 minuti e secondi.

Con lo stesso PC , per ricavare l’orario “classico” usando un solo core  ORARIO ha impiegato 1:16   minuti, secondi (76 secondi) mentre ricavandolo in parallelo con altri 23 orari  102 secondi impiegando il 34% di tempo in più.  Nell’ITI per gli stessi dati la  differenza era del 48% .
Ciò si spiega con la maggiore quantità dei dati trattati nel ITI ( 80 classi e 21 laboratori l ITI e il liceo con 61 classi e una palestra) durante l’ottimizzazione che ha generato più  memory miss (v. sopra).

Infine non è escluso che l’algoritmo possa migliorare nel tempo, aggiungendo nuove statistiche.Infine non è escluso che l’algoritmo possa migliorare nel tempo, aggiungendo nuove statistiche.
Con la versione 3b, è stato faticoso, ma oltre ai miglioramenti ottenuti si sono aperti nuovi orizzonti e ci sono già tante idee.

Perché ORARIO è così veloce ?


Già negli anni ottanta, facendo auditing per i più grandi clienti della Sperry Univac (UNISYS), clienti che avevano installati calcolatori che costavano anche parecchi miliardi di lire e con decine o centinaia di programmatori, l’autore ha visto programmi che duravano tantissimo mentre avrebbero potuto impiegare molto meno.


La preoccupazione, già bassa allora, di scrivere programmi veloci  è molto calata quando i PC sono diventati molto più veloci ed, in confronto, estremamente meno costosi al punto che sono nati nuovi linguaggi che, diminuendo la complessità della programmazione, li rendevano meno o molto meno veloci.


Nei programmi scientifici che affrontano problematiche molto complesse la maggiore velocità è stata utilizzata per raggiungere nuove mete.
 

Come si è detto l’autore ha scritto diversi programmi scientifici, e questi ultimi, dovendo eseguire un gran numero di calcoli, obbligano chi li scrive a sforzarsi di cercare algoritmi molto veloci. 

Una volta utilizzando  l’algoritmo  “Branch and Bound” della “Ricerca operativa” insieme ad altri piccoli trucchi, l’autore scrisse un programmino era oltre mille volte più veloce del programma scritto da un programmatore del Italsider di Taranto reputato per la sua bravura.
Peccato che questo algoritmo non si possa utilizzare alla generazione di un orario.

  • La conoscenza dell’Assembler (è un linguaggio in cui ogni linea di codifica corrisponde a una istruzione del calcolatore) e dell’hardware ha aiutato moltissimo così come lo studio dei simbolici del sistema operativo dell’Exec8 (era l’analogo di Windows per i Mainframe dell’Unisys), molte idee sono derivate da quello studio.

  • Scrivere molta codifica (istruzioni), anche complessa, da usare solo poche volte, può rendere molto veloce l’esecuzione di altra codifica che si esegue migliaia o milioni di volte.

  • l'utilizzo del linguaggio Fortran (non è più lo “spaghetti code” del 1977) che è continuato a evolversi negli anni ed è ancora molto usato nei grandi progetti che usano  il calcolo scientifico, ha anche molto aiutato, inoltre è molto vicino all’hardware ed è in assoluto  il linguaggio che genera la codifica più veloce. 
    Altri linguaggi consentono di rendere più facile la programmazione ma a discapito della velocità.

 

 

Uno dei  programmi tra i più diffusi più lento della concorrenza 

Tra i principali programmi più diffusi della concorrenza ve ne è uno di cui per anni non si è mai riusciti a sapere dai suoi ex utenti quanto durasse una ottimizzazione.
Raccontavano che dopo averlo lasciato a lavorare per tutta la notte o più, lo sospendevano e, iniziando a ritoccare la bozza, per migliorarlo, trovavano anche mosse, le più banali (due professori che si scambiano le ore tra loro), che in tutto quel tempo il programma non era riuscito a eseguire. 


Recentemente, parlando con un professore di un liceo di una sessantina di classi che lo usava, diceva che era contento perché in due giorni quel programma gli aveva fatto l’orario.  
Andando poi sul sito della scuola guardando l’orario di poco più una ventina di professori ve ne erano uno con 5 ore buche molti con 4 e ancora di più con 3.
Considerando che per ottimizzare un liceo di 61 classi un portatile progettato per la produttività quotidiana e l'autonomia (cpu I7-1195G7 del 2021) ORARIO impiega 102 secondi e che il PC del professore fosse più di 3 volte più lento (dovrebbe essere estremamente vecchio), e che ORARIO usandolo  impiegherebbe 6 minuti  questo programma sarebbe 480 volte più lento di ORARIO eppure moltissime scuole lo usano e spesso non vogliono provare ORARIO probabilmente perché, essendo anche molto complesso, hanno paura a imparane uno nuovo . 
Poi, l’autore, pensando a un linguaggio non completamente interpretativo (sarebbe andata ancora peggio), che non fosse molto recente e che permettesse di creare facilmente schermate splendide ha pensato al linguaggio "Java". Colloquiando con un programma di intelligenza artificiale ha confermato che era molto probabile. 
Vi sono tre alternative: 

  •  usano un linguaggio ottimo per scrivere schermate su internet per un programma scientifico ma ha senso sacrificare la velocità in tal modo per la bellezza delle schermate ?

  • utilizzano un algoritmo pessimo 

  •  infine tutti e due le cose


Orario su un portatile con una cpu  I7-1195G7 del 2021 con soli 4 core per generare 64 orari di un liceo di 61 classi impiega  55:25 min:sec   meno di quanto ci impiegherebbero  sullo stesso PC la gran parte dei programmi più diffusi  della concorrenza per generarne uno solo. 


La gran parte dei programmi non genera più orari in parallelo anche per la molto più grande difficoltà che ciò comporta  il calcolo parallelo e spesso è utilizzato solo dai programmi  scientifici, del sistema operativo i compilatori e ultimamente dell’intelligenza artificiale.   


​Concludendo  ​

Se si è interessati a provare ORARIO  si può contattare direttamente l'autore al 348-3300.531 dalle 9 alle 13 e il pomeriggio sera dalle 16:30 alle 23:00 

Descrizione del programma CATTEDRE

l programma CATTEDRE aiuta l’utente a generare le cattedre dei professori in maniera veloce e controllata. L'interfaccia è analoga a quella di ORARIO per cui non si ripete quanto si scritto sopra.

Come si creano le cattedre dei professori

Per generare le cattedre l'utente deve fare le seguenti  azioni

Inserire i dati della classi od importarli da un modello generato con ORARIO l'anno precedente e modificarli,

Scegliere un "Piano di Studio" (PS) ,dargli un nome, eventualmente modificarlo aggiungendo od eliminando discipline e/o cambiandone il nome ed eventualmente il numero delle ore svolte negli anni di corso,

Associare ai PS tutte le classi che lo seguono.

Ripetere il punto 2 e 3 sino a quando tutte le classi sono associate ad un PS.

Definire le "classi di concorso" (CC) dandogli un nome e facendo clic sui nomi delle discipline che le compongono.

Inserire  i dati dei professori o eventualmente importarli dal modello generato da ORARIO

Per ogni CC assegnare  ai professori le discipline che insegnano in ogni classe 

I piani di studio

Cattedre contiene i piani di studio (PS) di tutte le scuole di ogni ordine e grado (sono 75) aggiornati all'inizio del 2017. Se uno dei piani di studio della sua scuola fosse cambiato, si prega di avvisare l'autore. In ogni caso è sempre possibile modificare un PS aggiungendo od eliminando discipline e/o modificando il nome delle discipline e/o il numero di ore di insegnamento nei vari anni di corso, sia per le ore di lezione che per quelle di compresenza.

Inserite le classi, l’utente sceglie i piani di studio, e indica per ognuno a quali sezioni e corsi si applica. Lo stesso PS può essere utilizzato, con delle modifiche (pulsante "Eseg. e copia"), per sezioni e corsi diversi (ad esempio la disciplina “Lingua straniera” potrebbe essere “Inglese” in un PS e “Tedesco” in un altro. L’utente può inserire sino a un massimo di 20 PS diversi.

L'insieme dei PS inseriti deve coprire tutte le sezioni e corsi, così ogni classe sarà collegata a un PS.

Le classi di concorso

Inseriti i PS l’utente creerà le "classi di concorso" (CC) indicando il nome della CC e selezionando le discipline che ne fanno parte. Si è fatta questa scelta per non dovere obbligare l’utente a comprare l’aggiornamento del programma ogni volta che il MIUR modifica le CC.
Inoltre inserire una "classe di concorso" è molto veloce, basta inserirne il nome (non necessariamente quello criptico del Miur) e fare clic col mouse sui nomi delle discipline che si possono insegnare nella CC.

 

L’utente inserirà o modificherà i professori

indicando a quale/i CC è abilitato (“quali”, nel caso sia abilitato in 2 CC, la prima è quella per cui è stato assunto) . e infine assegnerà le cattedre ai professori.

La Assegnazione delle cattedre

Le cattedre verranno assegnate per CC. Selezionata una CC il programma mostrerà una schermata con tutti i professori che insegnano in quella CC, con tutte le classi dove viene insegnata almeno una disciplina della CC e le discipline della CC.  

L’utente selezionerà il professore a cui vuole assegnare/deassegnare le cattedre e la/le classi e la/le discipline, infine farà clic sul pulsante “Assegna” o “Deassegna”. Il programma farà tutti i controlli e assegnerà le discipline per cui non ha incontrato errori.

Il potere assegnare più classi (selezione multipla) velocizza di molto l’assegnazione delle classi e così anche la particolarità per cui il programma, se si accorge che una disciplina non è insegnata in una classe o che è già stata assegnata a un altro professore, non la assegna, da una segnalazione di errore e continua ad assegnare le altre.

In questa schermata il programma fa un notevole uso dei colori che consentono all’utente di capire, dal colore di sfondo di una entità (professore, classe disciplina) se è assegnata ad altre entità selezionate.

 

Inoltre, muovendo il mouse su una entità, nella/e righe di dettaglio appariranno informazioni sulla assegnazioni della medesima. Si possono avere informazioni più dettagliate facendo clic con il tasto destro sul nome di un professore o di una classe.

 

Oltre a poter capire per ogni CC dai colori di sfondo dei nomi dei professori e delle classi se sono state assegnate tutte le ore, in qualsiasi momento, durante l’assegnazione delle cattedre è possibile chiedere al programma quale è la situazione delle assegnazioni di tutta la scuola, sia dei professori che delle classi, con più gradi di dettaglio.

Si possono anche fare assegnazioni per discipline (“discipline alternative”) non previste dal PS, ad esempio, per le attività alternative alla religione o per lingue diverse insegnate a gruppi di alunni presi da più classi.

Inoltre una disciplina può essere spezzata ed essere insegnata da due professori di CC diverse (es. “Storia” della disciplina “Storia e Filosofia” può essere insegnata nel triennio dei licei sia dai professori della CC “Storia e Filosofia” che da quelli di “Lettere”.

 

Si possono anche fare assegnazioni non previste dalla "classe di concorso"  ad esempio per i professori che pur non essendo abilitati a insegnare una particolare disciplina vengono comunque considerati idonei.

In questi tre ultimi casi le assegnazioni vengono fatte sfruttando, nella schermata, pulsanti diversi in maniera che il programma sappia che, anche se non è prevista dal PS è una scelta fatta consapevolmente dall'utente e, naturalmente, non da errore.

 

Durante i vari passaggi il programma controlla che tutto sia congruente e dà opportune segnalazioni di errore.

Terminata la assegnazione delle cattedre il programma fai controlli.

I Rapporti

Come in ORARIO tutti i rapporti possono essere stampati o scritti su un file che può essere di tipo testo (.TXT) o compatibile con EXCEL (.CSV).  Nel caso in cui siano scritti su un file, l'utente può vederli in  maniera automatica, senza uscire dal programma, in un'altra finestra  con il BLOCCONOTE ( che è un programma di WINDOWS) se scritto in formato testo o con EXCEL o programma compatibile se se scritto in CSV, 

Con i rapporti si possono vedere tutti i dati immessi, o solo alcuni e le cattedre in tre modalità diverse, per classi, per professori o per classi di concorso.

​​

Importazione ed esportazione dei dati

Da CATTEDRE si possono importare i dati delle classi e dei professori aggiungendo, modificando od eliminando le entità importate.

Terminata la assegnazione delle cattedre, da ORARIO, aprendo il modello con i dati generati da CATTEDRE, si possono  importare i dati delle cattedre. 

ORARIO cancella le classi e i professori non più presenti, cancella tutti gli abbinamenti e laboratori,  chiede i dati mancante per le nuove classi e professori,  ricava con l'aiuto dell'utente le materie abbreviate e l'utente deve solo inserire gli abbinamenti e i laboratori.

I Vantaggi dell'uso di CATTEDRE

Ricapitolando i vantaggi dell'uso del programma CATTEDRE sono

  • La velocità e semplicità con cui si possono assegnare le cattedre. 

  • I controlli fatti dal programma con i PS e quelli della completezza e congruità dell'assegnazione (tutti i professori devono avere assegnate le ore indicate e tutte le classi devono avere assegnate nelle discipline le ore indicate nel  PS  oltre, eventualmente quelle assegnate come alternative). 

  • Le varie stampe delle assegnazioni

  • L'importazione dei dati da ORARIO

  • La esportazione  dei dati  verso ORARIO che, oltre ad alleviare il lavoro di modifica dei dati, all'inizio dell'anno scolastico, elimina gli errori nel passaggio  dei dati tra chi fa le cattedre e l'orari.

Il programma CATTEDRE viene venduto insieme al programma ORARIO ed è compreso nell'aggiornamento.

bottom of page