Questo programma è il risultato di anni di lavoro. Nato per avere un programma capace di girare su Linux per costruire un orario scolastico, inizialmente l'ho scritto in php, basando le ricerche su un database MYSQL (il programma si può ancora trovare in questo sito), ma esigeva qualche complicata - almeno per gli utenti Windows - operazione di installazione (un server Apache, il database MYSQL).
Per questo ho deciso di riscriverlo in java: è sufficiente installare java >=8 per usarlo in qualsiasi sistema operativo.
Il programma è open source, dunque trovate nell'archivio anche i codici sorgenti ( cartella \src; è stato scritto usando Netbeans), siete liberi di modificarli e ricompilare il programma.
È veloce (anche se meno della versione php), spero sia affidabile (siamo alla versione 0), è configurabile.
Potete stabilire quante ore al giorno l'insegnante può lavorare, se e in quali giorni può superare la restrizione, se deve avere 'doppiette' per il compito in classe e prima di quale ora le doppiette vanno collocate (non è bello fare scritti alla ultime ore!), se le lezioni non possono essere in giorni consecutivi, se alcune materie non possono stare nello stesso giorno (tipicamente religione ed educazione fisica, per evitare giorni in cui si concentrano ore 'leggere') e altro.
Ci sono due soli limiti importanti, che io sappia: 1) il programma non gestisce le compresenze (ho sempre insegnato nei licei e non so come funzioni la cosa; a un certo punto ho tentato di occuparmene ma ho lasciato perdere); 2) il programma è assolutamente obbediente: se avete posto delle restrizioni cercherà di rispettarle assolutamente (è importante, insomma, non chiedere l'impossibile). Non accade, come in alcune applicazioni che ho visto, che vi venga proposto un orario in cui alcune delle limitazioni imposte non siano rispettate e vi venga comunicato con un messaggio di warning. Se, ad esempio, non è possibile realizzare quanto da voi richiesto per inglese in 5A (esempio semplice di impossibilità - ma di una simile banalità orario_elettronico si renderebbe conto in una frazione di secondo -: inglese deve fare tre ore settimanali, non può avere più di un'ora al giorno e le tre ore non devono essere in giorni consecutivi, ma in questa classe l'insegnante di inglese è condiviso con altri istituti ed è disponibile solo lunedì, martedì e mercoledì: non si può proprio fare!) , il programma cercherà tutte le soluzioni che può figurarsi (e sono tante, può richiedere tempo!) e se non ne trova non assegnerà le ore di inglese nella 5A: starà a voi assegnarle manualmente e decidere quali restrizioni violare (nel nostro esempio potrete assegnare le ore di inglese nei tre giorni, violando la condizione della non consecutività, oppure dare una 'doppietta' il lunedì, utile per i compiti in classe, e un'ora il mercoledì. Sono scelte tutte possibili, ma non previste nelle istruzioni, e orario_elettronico non ci ficca il naso).
Ci sono parecchie utilità collaterali, esplorate il programma! Particolarmente utile è la pagina "quadro di controllo" dove potete vedere 'al volo' se l'orario è completo, se mancano ore e in quali classi, se alcune condizioni sono violate (vedi sopra), se ci sono errori gravi.
This program is the result of years of work. Born to have a program capable of running on Linux to build a school timetable, I initially wrote it in php, basing my searches on a MYSQL database (the program can still be found on my site https://www.alessandroxbrunelli.com ), but required some complicated - at least for Windows users - configuration (an Apache server, the MYSQL database).
For this reason I decided to rewrite it in java: it is sufficient to install java> = 8 to use it in any operating system.
The program is open source, so you can find the source codes in the archive (folder /src; it was written using Netbeans). Feel free to modify them and compile the program again.
Scaricate orario_elettronico-j.0
Download orario_elettronico-j.0
Prima di farlo vi chiedo di compilare un form; non che voglia sapere proprio chi siete (anche se non mi dispiacerebbe), per me potete anche chiamarvi xyz, ma mi serve per sapere quante persone lo hanno scaricato.
ALMENO IL CAMPO NOME NON PUÒ ESSERE VUOTO: SARESTE REINDIRIZZATI A QUESTA PAGINA!