martedì 7 settembre 2010

L'orario scolastico - FET: un'esempio, l'inserimento dei vincoli di tempo

Ok, sono ripetitivo ma riprendo l'esempio sul funzionamento di FET che ho preparato e che è scaricabile cliccando sul seguente link:
per parlarvi dei vincoli di tempo in FET.

Dopo aver visto nei precedenti articoli come inserire i dati principali e le attività, vediamo ora come inserire in FET i vincoli di tempo. Premetto che non starò a descrivere ogni possibile schermata e ogni possibile vincolo per tre motivi:
  1. sono molte e finirei di scrivere l'articolo per il 2055;
  2. sono simili tra loro, quindi quel che conta è capire il meccanismo;
  3. spesso con una nuova versione di FET vengono forniti nuovi vincoli da poter utilizzare
Se una volta avviato FET si clicca su "Tempo" si apre la scheda relativa hai vincoli di tempo.

Se si clicca su "Tutti" si apre una finestra che ci permette di visionare, modificare e/o eliminare tutti i vincoli di tempo.

sulla sinistra è possibile vedere la lista di tutti i vincoli di tempo inseriti, sulla destra le caratteristiche del vincolo evidenziato nella colonna di sinistra. In questo caso di tratta del vincolo che impone che una certa attività relativa a lettere deve svolgersi in quattro giorni distinti. Se si clicca sul vincolo evidenziato si apre la finestra relativa al vincolo dal quale è possibile modificare il vincolo stesso, finestra a cui si accede anche dagli altri pulsanti della scheda "Tempo" che ora andremo a descrivere.

Se dalla scheda "Tempo" si clicca su "Interruzione" si apre una finestra, che non ho riportato, dalla quale è possibile inserire, visionare, modificare e/o eliminare un vincolo che ci dice quali sono le ore nel piano orario nel quale non c'è lezione. Ad esempio se avete un orario dalle 8.00 alle 16.00 potreste mettere un' interruzione per consentire la pausa pranzo dalle 13.00 alle 14.00. Se da questa finestra si clicca su "Aggiungi" si apre la seguente finestra:

dalla quale è possibile aggiungere le ore di interruzione cliccandoci sopra. Come scritto sulla finestra le ore di interruzione non sono considerate ore di buco. La voce peso percentuale indica quanto deve essere rispettato questo vincolo, in questa finestra non può essere modificata.

Se dalla scheda "Tempo" si clicca su insegnanti si apre un menù che ci permette di inserire vincoli di tempo relativi agli insegnanti.

Se fate attenzione noterete che le voci del menù si ripetono due volte, una volta nella prima metà di sopra della lista, un'altra volta nella seconda metà di sotto (osservazione, in alcune versioni di FET i due vincoli simili sono contigui nella lista). Avrete già capito la differenza: la prima metà di vincoli è relativa ad un singolo insegnate, la seconda metà è relativa a tutti gli insegnanti. Posso imporre, ad esempio, il numero massimo di ore al giorno docente per docente, oppure per tutti i docenti. Diciamo che se si ha un vincolo uguale per tutti i docenti conviene utilizzare i vincoli relativi a tutti gli insegnanti, altrimenti, se per ogni insegnante ho necessità diverse, devo usare i vincoli relativi al singolo insegnate. E se il vincolo vale per tutti tranne che per uno? Dipende. I vincoli funzionano secondo la funzione logica dell'AND, cioè valgono contemporaneamente. Allora supponiamo, sempre relativamente al vincolo sul numero massimo di ore al giorno per insegnante, che tutti i professori tranne uno debbano fare al massimo 5 ore in un giorno e uno solo al massimo 4. In questo caso nessun problema, metto il vincolo delle 5 ore per tutti gli insegnanti e aggiungo quello delle quattro per il singolo insegnante. I due vincoli non sono in conflitto, e per il docente in questione vince il più stringente, cioè quello delle quattro ore. Problemi sorgono quando invece vorremmo che tutti facessero 4 ore al massimo, ad eccezione di uno con cinque ore. In questo caso se metto il vincolo delle quattro ore per tutti gli insegnanti e quello delle cinque per il singolo insegnante,  comunque, anche per questo rimarrebbe più stringente quello delle quattro ore. Quindi nulla da fare, si è costretti a mettere un vincolo ad personam per tutti i docenti. Mettiamola così,  come vincolo valido per tutti i docenti si deve mettere quello meno stringente, per i singoli docenti possiamo essere stringenti quanto vogliamo.

Non sto a leggere tutta la lista dei vincoli, anche perché dal nome già mi sembrano abbastanza chiari. Alcuni vincoli della lista hanno un lucchetto e se ci cliccate sopra vi viene detto che sono vincoli non perfettamente ottimizzati, che rallentano molto il calcolo e che alcune volte rendono impossibile la generazione dell'orario e vi viene consigliato di utilizzarli con cautela. Possono essere attivati cliccando su "Opzioni" nel menù sotto la barra della finestra e poi selezionando "Avanzate".

Per ognuno dei vincoli della lista se si clicca sul vincolo si apre una finestra che permette di visionare, aggiungere, modificare ed eliminare un vincolo di quel tipo. Come al solito queste finestre hanno sulla sinistra la lista di vincoli, sulla destra il riepilogo del vincolo selezionato nella lista dei vincoli e poi una serie di filtri per selezionare i vincoli di un determinato professore e/o di determinate materie e/o di determinati studenti e/o con determinata chiave.

Ad esempio se dalla lista dei vincoli si clicca su "Ore non disponibili di un insegnante" si apre la seguente finestra:

Se poi clicco su modifica mentre è selezionato il vincolo per il professore di Educazione Fisica delle sezioni B e C si apre la seguente finestra, dalla quale possibile modificare il vincolo (quella per aggiungerli è uguale):

Le "x" indicano le ore nel quale il professore non può fare lezione.

Di seguito è riporta la finestra relativa al "Numero massimo di giorni a settimana per insegnante".

In questo caso stiamo imponendo che il professore di Inglese della sezione A faccia al più tre giorni di lezione.

Una piccola osservazione, non vorrei generare confusione. In (A) è il nome che io nell'esempio ho dato al dicente, il fatto che poi l'insegnante insegni effettivamente Inglese nella sezione A esce fuori dall'inserimento delle attività.

Tutti gli altri vincoli per insegnanti hanno schermate simili, ad eccezione di:  "Un insegnante fa lezione in un intervallo orario massimo n  giorni a settimana", qui riportata

Si tratta di un vincolo utile e interessante per far in modo che i docenti abbiano qualche giorno nel quale escono presto o entrano tardi. Nella scheda mostrata stiamo imponendo che In (B-C) faccia lezione al più tre volte a settimana dalle 13.00 alle 14.00 (orario di fine lezione), cioè gli garantiamo che almeno due volte a settimana non fa l'ultima ora.

Un altra osservazione, prima di chiudere con i vincoli per i docenti. Se invece di selezionare il vincolo per il singolo docente avessimo selezionato il vincolo per tutti i docenti nelle finestre di inserimento non ci sarebbe stata la possibilità di scegliere il docente.

Se della scheda "Tempo" si clicca su "Studenti" si apre un menù a tendina con tutti i vincoli di tempo per gli studenti.

Non sto qui a descriverli in quanto valgono considerazioni del tutto analoghe a quelle per i vincoli di tempo degli insegnati. Le schermate e le finestre sono molto simili.

Se della scheda "Tempo" si clicca su "Attività" si apre un menù a tendina con tutti i vincoli di tempo per le attività.

Se si clicca su una qualsiasi delle voci del menù si apre la consueta finestra divisa in due colonne: nella colonna di sinistra sono riportati tutti i vincoli di quel tipo, in quella di destra le informazioni relative al vincolo selezionato nella colonna di sinistra e una serie di filtri che ci permettono di fare delle ricerche tra i vincoli inseriti. Sono inoltre presenti dei pulsanti che ci permettono di aggiungere, modificare e eliminare i vincoli.

I primi tre vincoli ci permettono di imporre che una determinata attività debba avvenire in determinate ore della settimana. La seguente finestra è relativa all'inserimento del vincolo "Una subattività ha un ora di inizio preferenziale".

Tramite il filtro, o scorrendole, possiamo scegliere un'attività alla quale imporre a che ora e in che giorno iniziare.

La finestra successiva e relativa all'aggiunta del vincolo "Una subattività con id cade in un insieme di ore preferenziali".

Tramite il filtro, o scorrendole si sceglie l'attività; poi si selezionano le ore della settimana in cui può cadere. E' ovvio che se la subattività dura due ore e noi lasciamo una sola ora a disposizione l'orario non può esistere. Viceversa, se diamo più ore della durata dell'attività, magari anche in più giorni, stiamo dicendo al software che può scegliere quando piazzare una determinata attività tra una serie di ore lecite.

La finestra seguente è relativa alla modifica di un vincolo del tipo "Le subattività di una selezione iniziano in un insieme di ore" preferenziali".

In questo caso stiamo imponendo, con peso del 99% che le ore di matematica devono iniziare nelle prime quattro ore della giornata. Un modo per spingere verso l'alto matematica.

Ricapitolando, tutti questi primi vincoli di tempo delle attività permettono di forzare una o più subattività ad iniziare o a cadere in determinate ore. Se ad esempio volete imporre che una certa lezione avvenga un certo giorno in una certa ora questi sono i vincoli che fanno per voi.

La finestra seguente è relativa ad un vincolo del tipo "Numero minimo di giorni tra un insieme di subattività"

In questo caso, ad esempio, stiamo imponendo che le due ore di spagnolo in 2C siano distanziate da almeno un giorno. Molti di questi vincoli possono anche essere inseriti direttamente in fase di inserimento delle attività. Se si mette al vincolo un peso inferiore al 100% si può imporre, nel caso le due attività capitino nello stesso giorno, che debbano essere consecutive.

Le finestre di questo tipo sono divise in due colonne: nella colonna di sinistra sono riportate tutte le attività, in quella di destra le attività del vincolo che stiamo mettendo.

La finestra seguente è relativa al vincolo "Una subattività conclude la giornata degli studenti"

Come si nota il meccanismo di inserimento è sempre lo stesso.

Il vincolo nell'immagine successiva, "Un insieme di attività inizia alla stesso ora (giorno + ora)" permette di imporre che una o più attività avvengano nelle stesse ore.

Il vincolo "Un insieme di sub(attività) non sono concomitanti" ci dice che due attività non devono avvenire contemporaneamente. Nell'esempio l'ho usato per far in modo che se due classi fanno Educazione Fisica contemporaneamente siano due classi parallele, cioè due prime, o due seconde, o due terze.

Il sistema funziona, anche se ad onor del vero la finestra precedente è inutile, perché essendo attività relative allo stesso docente, il professore di Educazione Fisica delle sezioni B e C, è chiaro che non possono avvenire contemporaneamente. Diciamo che ha senso inserire vincoli del genere solo relativamente a docenti diversi. Ad esempio avrebbe avuto senso, e nell'esempio c'è, il vincolo che impone che le due attività di Educazione Fisica della 2B non siano concomitanti con quelle della 3A perché hanno un docente diverso. Purtroppo, per garantire che le ore di Educazione Fisica di classi non parallele non siano concomitanti è necessario inserire un vincolo per ogni coppia di classi non parallele.

Di vincoli di tempo sulle attività ce ne sono anche altri, ma io mi fermo qui perché lo scopo di questo articolo è far capire il meccanismo di inserimento dei vincoli, non descriverli tutti.

Concludiamo la descrizione della scheda relativa ai vincoli di tempo cliccando su "Avanzate".

Dal menù a tendina che si apre è possibile scegliere due opzioni: "Distribuisci le subattività uniformemente nella settimana" e "Rimuovi i vincoli ridondanti". Si tratta di due funzioni delicate da usare con cautela, la seconda permette di eliminare i vincoli inutili, di troppo. Se si clicca sulla prima voce si apre, invece, la seguente finestra:

che permette di distanziare nella settimana in modo uniforme le attività suddivise in due o tre subattività. Io di solito inserisco questi vincoli in fase di inserimento delle singole attività, ma se volete farlo a posteriori potete farlo da qui.

Con questo ho concluso questo lungo articolo sui vincoli di tempo in FET, spero vi sia stato utile, e vi invito a lasciare qualche commento.

Per maggiori informazioni su FET cliccate su questi questi due siti:

LEGGI TUTTO...

lunedì 6 settembre 2010

Per il corso di formazione che inizia lunedì 6 settembre 2010 sulle LIM alla Cecilio Secondo

Anno nuovo corsi nuovi.

Vorrei dare il benvenuto a tutti i corsisti che avranno la sfortuna di seguire il minicorso sulle LIM della Smart Technologies (http://smarttech.com/). che terrò da lunedì 6 settembre 2010 presso la Scuola Media Statale Gaio Cecilio Secondo di Roma.

Il corso si dovrebbe articolare in un totale di dieci ore così suddivise
  • 1,5 ore: dettagli tecnici, definizioni, collegamenti, accensione... tutto quello che serve sapere da quando si entra in classe con il portatile in spalla a quando è tutto acceso e funzionante. Vivamente consigliato un cuscino da data la noia dell'argomento
  • 1,5 ore: Smart Board Tools, ovvero come riprendere, fotografare, ombreggiare, etc... lo schemo
  • 1,5 ore: il livello di inchiostro... scarabocchiamo - e non solo - il Desktop
  • 1,5 ore: il software autore Smart Notebook, ovvero come usare la LIM  per fare lezioni
  • 1,5 ore: la galleria di learning object di Smart Notebook
  • 1 ora: Lesson Activity Toolkit, uno strumento per preparare test ed esercizi di Smart Notebook
  • 1,5 ore: a voi la lavagna, fatene quel che volete. Esercitatevi, divertitevi, sperimentate.
 Cliccando sul seguente collegamento:
http://ilmondodellascuola.blogspot.com/search/label/LIM
potete trovare tutto il materiale che ho preparato e/o trovato sulle LIM, a partire dalla presentazione iniziale.
Se volete potete anche utilizzare la casella di ricerca in fondo alla barra di sinistra.

Se avete dubbi o domande sul corso o sugli argomenti del corso, se volete approfondire o condividere qualcosa sulle LIM lasciate un commento.

LEGGI TUTTO...

venerdì 3 settembre 2010

L'orario scolastico - Tecniche di sopravvivenza

Ovvero consigli utili su come sopravvivere alla redazione dell'orario scolastico, quando il primo giorno di scuola si avvicina e tu proprio non sai dove sbattere la testa.

Manca poco, l'anno scolastico è alle porte e tu ancora non hai pronto l'orario. Cominci a dormire male la notte, senti che i destini di una scuola intera sono sulle tue spalle. Già immagini l'inizio della scuola e decine di professori sperduti che non sanno in che classe andare. Classi scoperte, classi con più professori, ragazzi in giro per la scuola... l'anarchia. E solo perché tu, TU non sei riuscito a fare l'orario.

Ecco perché ho deciso di dare qualche consiglio, forse utile, forse inutile, su come muoversi nella ricerca dell'orario. Magari avete già un bel software (tipo FET), ma proprio non sapete da che parte iniziare.

No panic, ecco a voi le 10 regole di plastica (l'oro costa troppo).

Osservazione: queste dieci regole sono frutto della mia esperienza, non hanno valore assoluto, è il mio modo di procedere, dettato da un'esperienza triennale (non è proprio tanto) nel fare orari scolastici con FET. Sono opinabili e sicuramente migliorabili.

  1. Prima di tutto fate chiarezza sugli abbinamenti classi - docenti. Un bel foglio nel quale avete tutti i docenti e tutte le classi in cui devono fare lezione vi sarà utile;
  2. Tra i prof. mettete in evidenza quelli che completano l'orario in altre scuole, e, se già disponibile, segnatevi i giorni o le ore in cui sono disponibili. Se così non è chiamate le altre scuole e mettetevi d'accordo;
  3. Fatevi una bella lista con tutti i vincoli;
  4. Cominciate ad inserire i dati nel vostro software a partire dalla struttura della scuola, classi, aule, plessi, ore giornaliere, giorni a settimana, buchi necessari per lo spostamento;
  5. Inserire i docenti, magari non più di 5 per volta;
  6. Assegnate le attività a quei 5 docenti;
  7. Mettete i vincoli relativi a quei 5 docenti;
  8. Generate l'orario;
  9. Se viene generato senza problemi ripete i punti 6-7-8-9 fino ad inserire tutti i docenti, altrimenti cercate di individuare il/i docenti che non permettono la generazione dell'orario;
  10. Dopo che avete generato un orario discreto con tutti i docenti concentratevi sui desiderata dei professori: più sono soddisfatti e felici è meglio andrà l'anno scolastico per tutti.
Vorrei far chiarezza sui punti dal 5 al 9. Sembra quasi che io consigli fare l'orario in modo incrementale: sistemo 5 professori alla volta fissando ogni volta l'orario per quei professori. Prima 5, poi altri 5 etc.... No, non è questo il mio consiglio. Generare l'orario in modo incrementale sarebbe un fallimento in partenza; si arriverebbe agli ultimi professori senza alcuna speranza, o quasi, di riuscire a piazzare le loro attività. Il mio consiglio, invece, è di generare un orario di prova ogni volta che si inseriscono un tot di professori. Un orario pieno di buchi perché abbiamo inserito solo alcuni docenti, un orario che butterò subito dopo. E allora perché generarlo? Beh, per assicurarmi di non aver commesso errori nell'inserimento dei dati e per vedere eventuali criticità. Magari aggiungo un professore e da quel momento la generazione dell'orario diviene molto più lenta, uno spunto per chiedermi se i vincoli su quel docente non siano troppo stringenti. Meglio lavorare 5 professori alla volta piuttosto che inserirne 70 per poi rendersi conto qualcosa non va. E' chiaro, a questo punto, che ogni volta che generate un nuovo orario buttate quello vecchio, e lo generate per tutti i professori inseriti fino a quel momento.

Spero che questi consigli vi siano utili. Che ne pensate? Ovviamente se avete altre strategie siete invitati a discuterne.

LEGGI TUTTO...

mercoledì 25 agosto 2010

L'orario scolastico - FET: un esempio, attività e subattività

Riprendo l'esempio sul funzionamento di FET che ho preparato e che è scaricabile cliccando sul seguente link:
In questo articolo voglio parlare di attività e subattività, ovvero le ore di lezione che il software dovrà assegnare.

Dopo aver spiegato come inserire i dati principali e prima di discutere di come inserire i vincoli mi sembra opportuno parlare di attività e subattività. Attività e subattività sono le ore di lezione che il software dovrà piazzare per trovare l'orario, cioè quando si deve svolgere una determinata lezione.


Dalla scheda Dati, che ho riportato qui sopra, se si clicca su Attività si apre la seguente finestra:

Nella colonna di sinistra è riportato l'elenco (numerato in ordine crescente di inserimento) di tutte le attività e subattività fin qui inserito, nella colonna di destra è possibile vedere un riepilogo dei dati dell'attività selezionata nelle colonna di sinistra e, mediante i campi filtro, è possibile visualizzare invece che tutte le attività, le attività di un determinato insegnante, o di un determinato gruppo di studenti, o quelle relative ad una determinata materia o ad una determinata chiave. I filtri possono anche essere utilizzati contemporaneamente. 

Ok, direte voi, ma esattamente cosa sono le attività? e le subattività? Perché nella colonna di sinistra alcune righe sono rientrate rispetto ad altre? Per comprendere clicchiamo sul pulsante Aggiungi, si apre la seguente finestra:

Un'attività sarà tenuta da uno o più docenti (in caso di copresenze) selezionabili dalla lista insegnanti, riguarderà una data materia, la dovranno seguire una o più classi, selezionabili dalla lista studenti, avrà eventuali chiavi di attività e potrà essere suddivisa in una o più subattività. Spieghiamo questo concetto. Supponiamo che il piano di studi preveda che una determinata classe faccia sei ore a settimana con il professore di matematica. Posso immaginare l'insieme delle sei ore come un'unica attività suddivisa in sei subattività. Non solo, ma posso imporre la durata delle subattività, e allora preferisco fare cinque subattività di cui una di durata due ore e le altre di durata un'ora così da permettere eventuali compiti in classe. Non solo, ma posso anche vincolare quanti giorni far passare da una attività all'altra, così da garantire un orario uniforme spalmato su tutta la settimana, così come, al contrario, potrei permettere che le subattività si svolgano nello stesso giorno. 

Certo, avrei anche potuto definire sei attività di durata un'ora, ma sarebbe stato molto più inefficiente. 

Un'osservazione importante. Supponiamo che stiamo parlando del professore di lettere che fa 10 ore in una determinata classe (senza contare le copresenze). Potrei introdurre un'attività composta da 9 subattività, 8 di un'ora e una di due ore per i compiti in classe. E magari vorrei anche che le 9 subattività fossero spalmate nella settimana introducendo un vincolo sui giorni minimi delle subattività. Beh, se mettete a questo vincolo il 100% di peso, cioè imponete che debba essere rispettato senza se e senza ma, il software ci dirà che abbiamo sbagliato ad inserire i dati. Perché? Se la settimana dura cinque giorni come posso suddividere un'attività in 8 giorni distinti? Certo, potrei anche mettere un peso non del 100%, magari 95%. Forse funzionerebbe, ma è sconsigliato lo stesso, fareste lavorare l'algoritmo per cercare una soluzione che non può esistere; alla fine rinuncerebbe a soddisfare il vincolo, ma dopo tanti, tanti, tanti calcoli inutili. Io faccio così, suddivido le ore di italiano in due attività, una da 5 subattività (con 4 subattività da un'ora e una da due ore) e un'altra attività da 4 subattività da un'ora. In tutto 10 ore. Le subattività delle singole attività le vincolo ad essere in giorni distinti, ma nulla vieta che una subattività della seconda attività capiti nello stesso giorno di una subattività della prima. Non so se è la soluzione migliore, ma è la mia.

In linea di principio potrei anche definire attività senza studenti, o senza professori. Per esempio è quello che in questo caso faccio con le Disponibilità: sono attività che alcuni docenti devono svolgere ma che non coinvolgono alcun gruppo di studenti.

Ora è anche possibile comprendere perché alcune righe della lista delle attività hanno un rientro: per distinguere fra loro le varie attività dalle varie subattività si è deciso che solo la prima subattività di un'attività è incolonnata a sinistra, tutte le altre hanno un piccolo rientro.

Dalla lista delle attività, se si clicca su Modifica, è possibile modificare l'attività precedentemente inserita e selezionata in quel momento. Si apre la seguente finestra:

molto simile a quella che permette di aggiungere le attività. L'unico dato che non può essere modificato è il numero di subattività nei quali è suddivisa l'attività. Per modificare quello l'attività va eliminata e ricreata ex novo. Per eliminare un'attività è sufficiente cliccare su elimina dalla finestra Lista delle attività: l'attività corrente (cioè selezionata nella colonna di sinistra) verrà eliminata.

Per concludere l'articolo vediamo che succede se si clicca su subattività dalla scheda Dati. Si apre la seguente finiestra:

dalla quale è possibile selezionare e modificare una singola subattività. Se si clicca su modifica si apre la seguente finestra:

dalla quale è possibile modificare alcune caratteristiche della singola subattività. Non può essere eliminata ma può essere disattivata, in questo caso FET non cercherà di allocarla durante la generazione dell'orario.

Concluderei con una cosa che avevo già descritto nell'articolo precedente: se dalla scheda Dati si clicca su Avanzate e poi su Statistica attività è possibile fare un riepilogo di tutte le ore e le attività assegnate, o meglio, impostate come dati. Perché ovviamente ancora nulla è stato assegnato, per ora stiamo ancora inserendo i dati. Ovviamente durata e numero delle attività non sempre coincidono perché alcune attività potrebbero durare più di un'ora.



LEGGI TUTTO...

mercoledì 7 luglio 2010

Come farai l'orario scolastico?

Se ti va di discutere su questo argomento lascia un commento.



LEGGI TUTTO...

Risultato del sondaggio: pensate che le LIM, Lavagne Interattive Multimediali, siano veramente utili?

Direi che la maggioranza ritiene che le LIM siano utili solo se installate in classe e se usate ogni giorno.

Non posso che essere d'accordo!!!


Che ne pensate? Come? Non vi tornano le percentuali? Chiedete a googlo come calcola i risultati dei sondaggi!!!

LEGGI TUTTO...

giovedì 1 luglio 2010

L'orario scolastico - FET: un esempio, l'inserimento dei dati principali

Per spiegare meglio il funzionamento di FET ho preparato un esempio scaricabile cliccando sul seguente link:
La versione di FET che ho usato è stata la 5.13.3, quindi l'esempio funzionerà sicuramente con quella e con tutte le successive.
E' mia intenzione nei prossimi articoli descrivere passo passo quello che ho fatto. In questo articolo indicherò come inserire i dati principali.

L'esempio, del tutto inventato, si riferisce ad una scuola media di tre sezioni su due sedi (A e B in Centrale, C in Succursale). Le lezioni si svolgono cinque giorni a settimana, sei ore al giorno, per un totale di 30 ore settimanali. Il piano di studi è relativo alla struttura in vigore fino al 2009. Sono presenti due ore di copresenza per ogni classe, e alcuni professori di lettere hanno tre ore settimanali di disponibilità.

Nella figura seguente potete vedere la schermata principale di FET. E' suddivisa in un menù superiore e in una serie di schede. Nell'immagine è selezionata la scheda File, dalla quale è possibile salvare il file con i dati inseriti o caricarne uno già creato. I dati sono salvati in formato xml, da File nella barra del menù è, inoltre, possibile esportare ed importare il file dati in formato testo scegliendo il separatore tra i dati, in questo modo è anche possibile importare i dati in Microsoft Excel.


In questo articolo analizzeremo la scheda Dati, grazie alla quale è possibile inserire i dati principali del nostro problema. I vincoli verranno invece inseriti nelle schede Tempo e Spazio


Se si clicca su Base compare un menù grazie al quale possiamo inserire il nome della scuola, alcuni commenti, il numero di giorni a settimana e le ore giornaliere. Possono essere immaginati orari su più settimane. Se i giorni non sono tutti sulle stesse ore, basterà inserire dei vincoli nelle apposite schede per specificare in quel determinato giorno quando si fa lezione.



Cliccando su Insegnati è possibile aggiungere/rimuovere/modificare gli insegnanti. L'esempio è stato immaginato con insegnanti che completano l'orario in altre scuole, o che hanno un orario parziale. Non ho usato nomi, bensì un codice che mi indica la materia insegnata e le classi/sezioni nelle quali il professore insegna. Ar (A-B-C) è il professore di Arte delle sezioni A, B, C. EF sta per Educazione Fisica, In per Inglese, Le per Lettere, Ma per Matematica, Mu per Musica, Re per Religione, Sp per Spagnolo, Te per Tecnologia. I professori di lettere sono di due tipi: Le (1x-2x) e Le (1x - 3x). I primi fanno 7 ore (cioè Italiano) in prima e 11 in seconda. Gli altri fanno 4 ore (Storia e Geografia) in prima, 11 in terza e hanno 3 ore di disponibilità.

Per comprendere il significato di Abilita/Disabilita tutte le attività legate all'insegnante selezionato è necessario introdurre il concetto di attività. Le attività possono essere viste come le lezioni che devono essere svolte, sono le entità che il software deve piazzare. Delle attività parlerò in uno dei prossimi articoli. In pratica questi due pulsanti permettono di trascurare tutte le attività legate a quel docente.

La finestra è formata da due colonne, in quella di destra è riportato l'elenco dei docenti, in quella di sinistra tutti i vincoli assegnati. Vedremo come aggiungere i vincoli in un altro articolo, nel file dati sono comunque già presenti.


Se dalla scheda Dati si clicca su Avanzate e poi su Statistica insegnanti è possibile vedere quante attività e quante ore fanno tutti i docenti. Appare subito chiaro quali sono i docenti che non fanno 18 ore nella scuola. Questi dati vengono aggiornati mano a mano che vengono inserite le attività. Dato che un'attività può anche durare due ore (magari per i compiti in classe) le due colonne non sempre coincidono.

Le statistiche aiutano anche nella ricerca di eventuali errori di inserimento.


Se dalla scheda Dati si clicca su Studenti è possibile inserire il numero di anni (ho messo 3 anni perché è una scuola media), il numero di gruppi per anni (ho messo le 3 sezioni), eventuali sottogruppi per classe (ad esempio ragazzi e ragazze). E' possibile anche inserire il numero di studenti o far generare le sezioni alla finestra Anni, ma io preferisco inserire questi dati manualmente. Il numero di alunni può essere utile se si devono gestire aule o attività con un numero massimo di studenti ammissibili. A me non è mai capitato.



Se dalla scheda Dati si clicca su Avanzate e poi su Statistica studenti è possibile vedere numero delle attività e durata totale delle lezioni settimanali per ogni gruppo di studenti. Utile per ricontrollare di non aver commesso errore.


Se dalla scheda Dati si clicca su Materie si apre una finestra che permette la  gestione delle materie. Le ricapitolo aggiungendo come informazione il numero di ore settimanali. Questo dato viene inserito collateralmente all'inserimento delle attività.

Ar: Arte, 2 ore
EF: Educazione Fisica, 2 ore
In: Inglese, 3 ore
It: Italiano, nelle prime, 7 ore
Le: Lettere, solo nelle seconde e nelle terze, 10 ore
Ma: Matematica e Scienze, 5 ore
Mu: Musica, nelle prime 2 ore, nelle seconde e nelle terze un'ora
Re: Religione, un'ora
SG: Storia e Geografia, nelle prime, 4 ore
Sp: Spagnolo, 2 ore
Te: Tecnologia, 2 ore
Ma/Te: Copresenza Matematica - Tecnologia, un'ora
Le/Mu: Copresenza Lettere - Musica, nelle seconde e nelle terze, un'ora
It/Ge: Copresenza Italiano - Geografia, nelle prime, un'ora
Dis: Disponibilità (lo so, non è una materia, ma mi serve per assegnarla ai docenti che ce l'hanno)


Se dalla scheda Dati si clicca su Avanzate e poi su Statistica attività è possibile fare un riepilogo di tutte le ore e le attività assegnate.



Se dalla scheda Dati si clicca su Spazio è possibile definire gli Edifici, in questo caso Centrale e Succursale, e le Aule.



Per quanto riguarda le aule è possibile inserire la capienza massima. Io ho creato un aula per ogni gruppo di studenti, con lo stesso nome. In pratica esiste un gruppo 1A di studenti e un'aula 1A, poi vincolerò gli studenti a fare quasi tutte le lezioni in quell'aula. Le aule possono avere nomi diversi dai gruppi di studenti e gli studenti possono anche spostarsi da un aula all'altra. FET è molto flessibile, funziona con la scuola italiana, ma anche con scuole di altri paesi e università. Per ogni aula devo anche indicare l'Edificio.

Ho definito anche le palestre PC1, PC2 e PS. Le prime due sono in centrale, la terza in succursale. Educazione Fisica sarà vincolata ad essere svolta in palestra. Definire due palestre in centrale, oltre ad essere una possibilità, quella scuola ha due palestre effettivamente, è un trucco per poter permettere a due gruppi di studenti di usare contemporaneamente la palestra. Con così poche classi non era necessario, ma per scuole molto grandi definire più palestre virtuali permette a più gruppi di studenti di usare la risorsa contemporaneamente.
Infine ho definito anche SPC e SPS, la sala professori in Centrale e Succursale, nelle quali farò svolgere le disponibilità. E' chiaro che i professori non saranno obbligati a stare nella sala professori, ma a me serviva definire un luogo dove mettere i professori durante queste ore.


A conclusione vorrei aggiungere che queste sono state le mie scelte, ma che magari era possibile fare anche scelte differenti. Se avreste operato scelte diverse condividetele, se volete, con un commento.

Per maggiori informazioni su FET:

Post Scrittum del giorno dopo.
Rileggendo l'articolo mi rendo conto di aver saltato nella scheda Dati i tre pulsanti Chiavi, Attività e Subattività. Di questi ultimi due ho già detto che parlerò in uno dei prossimi articoli. Invece Chiavi me lo sono proprio dimenticato. Il motivo è semplice, non l'ho mai usato. Se ci cliccate sopra si apre una finestra simile a quella che si apre cliccando su Materie. Le Chiavi sono informazioni aggiuntive e opzionali che possono essere utilizzate per caratterizzate delle attività. Citando dal sito di Marco Barsotti (http://ilpassodellupo.it.gg/):

Sono chiavi della materia, ad esempio, l'esercitazione, la lettura, il laboratorio, la teoria, la pratica ecc. Se una attività deve iniziare alla prima, terza o quinta ora, la proprietà dell'attività può definirsi dispari. Se una attività deve essere svolta di mattina piuttosto che di pomeriggio, la proprietà relativa potrebbe dirsi mattino.
L'uso di queste chiavi (proprietà o caratteristiche) dell'attività è strettamente legato ai vincoli, alla loro definizione e in particolare all'uso degli orari preferenziali.

LEGGI TUTTO...

venerdì 18 giugno 2010

L'orario scolastico - FET: Free Timetabling Software, un programma molto efficiente per trovare l'orario

Ho parlato tanto dell'orario scolastico, ma ancora non ho detto nulla su come fare a trovarlo. E' ora di cominciare ad affrontare questo problema.

Cominciamo col dire che io non lo faccio a mano, bensì uso un software. Mi piacerebbe saperlo fare a mano, ma quando mi hanno proposto la prima volta di fare un orario scolastico non sapevo da che parte iniziare, e la prima cosa che ho pensato è stata quella di cercare qualche software gratuito che potesse aiutarmi.

E l'ho trovato.

Il software si chiama FET: Free Timetabling Software. L'autore si chiama Liviu Lalescu, e cliccando sul seguente collegamento potete accedere alla pagina web del programma: http://lalescu.ro/liviu/fet/.

Come vedete la pagina è in inglese. Niente paura, il software è stato tradotto in italiano da Marco Barsotti, che gestisce anche un sito in italiano dedicato a FET: http://ilpassodellupo.it.gg/

Un software per fare l'orario deve avere due caratteristiche:
  1. un sistema efficiente per inserire le migliaia di vincoli necessari
  2. un buon algoritmo per la ricerca della soluzione
Direi che FET ha entrambe questa caratteristiche.
L'interfaccia è semplice e potente, permette con pochi click di inserire intere serie di vincoli e ll programma usa un algoritmo euristico, basato sullo scambio ricorsivo di attività per fare spazio a nuove attività.

FET ha varie caratteristiche che trovo molto interessanti:
  • E' gratuito ed è distribuito secondo i termini della licenza GNU GPL
  • E' multipiattaforma, per Windows viene fornito già compilato, per linux e Mac deve essere compilato
  • La generazione dell'orario può essere fatta in modo completamente automatico, ma è possibile anche piazzare attività manualmente
  • Permette di visualizzare l'orario durante la generazione
  • Permette, dopo aver trovato un orario, di sbloccare aolo alcune attività per cercare di piazzarle in modo più ottimale o secondo nuovi vincoli
  • Permette di inserire una quantità notevole di vincoli
  • E' in continua evoluzione: con scadenze ravvicinate escono nuove versioni, compatibili con le precedenti, ma che permettono di aggiungere nuove tipologie di vincoli
  • Contattando l'autore è possibile chiedere/consigliare nuova caratteristiche per il programma
  • Si può imporre quanto deve essere soddisfatto un vincolo, se al 100% oppure se può essere rilassato.
Non riporto qui tutti i vincoli supportati da FET, anche perché come ho detto se ne aggiungono sempre di nuovi. Per tutte le info ricordate questi due siti:
Nei prossimi articoli metterò un po' di screenshot e scriverò qualcosa su come si usa.

Qualcuno di voi già conosceva FET? Lo avete mai usato?

LEGGI TUTTO...

giovedì 10 giugno 2010

Dal sito della BBC

Se in Italia si stanno muovendo i primi passi nella produzione di learning objects e di giochi didattici, nell'ambito anglosassone si è già iniziato da qualche anno, e sono già a disposizione tutta una serie di interessanti CDD - Contenuti Didattici Digitali. Unico limite, che poi un limite non è, è necessaria una discreta conoscenza della lingua inglese.


Qualche tempo fa stavo cercando qualche gioco didattico sulle trasformazioni e mi sono imbattuto nell'oggetto che ho incorporato qui sopra. Mi sembrava ben fatto e ho deciso di esplorare un po' il sito. Con mia sorpresa ho scoperto che si trattava del sito della BBC (http://www.bbc.co.uk/)

Se cliccate su more e poi su Learning si accede alla sezione dedicata all'apprendimento: http://www.bbc.co.uk/learning/

Da qui è possibile accedere a tutta una serie di categorie:
Fermo restando che mi sembrano tutte interessanti e degne almeno di un'esplorazione (in Languages potete anche trovare un corso di italiano in inglese), io mi sono concentrato soprattutto sulla prima: Bitesize (http://www.bbc.co.uk/schools/bitesize/).

Anche in questo caso avete a disposizione varie categorie: KS1 (per bambini dai 5 ai 7 anni), KS2 (8-11 anni), KS3 (11-14 anni) e GCSE (14-17 anni). E non mancano altre categorie per gli ordini di studi delle varie nazioni che compongono il regno unito.

E per ogni categoria trovate varie materie, scientifiche e letterarie, lezioni, esercizi, test. Veramente tantissimo materiale. Complimenti. Mi sa che veramente noi italiani siamo un "po'" indietro.

Ora vi chiedo un aiutino. Cerco, quando possibile di essere preciso e di non scrivere castronerie, anzi, se l'ho fatto perdonatemi e correggetemi. Quindi cerco sempre di documentarmi un po'. Cosa vuol dire KS1, KS2... con un po' di impegno l'ho più o meno capito. Ma c'è una cosa che proprio non sono riuscito ad interpretare: cliccando su Bitesize TGAU (http://www.bbc.co.uk/cymru/tgau/) si finisce su una pagina di risorse didattiche per me incomprensibile. Con buona probabilità è tipo Gallese... ma proprio perché l'unica parola che ho compreso e Wales. Qualcuno può confermare questa mia ipotesi. Grazieeee!!!

LEGGI TUTTO...

lunedì 7 giugno 2010

L'orario scolastico - Un problema intelligente adatto all'intelligenza

Che titolo per un articolo!?!?
Il primo anno che ho fatto l'orario in una scuola tutti mi dicevano che non poteva esistere un software per trovare un buon orario scolastico, che non poteva esistere un software che tenesse conto di tutti i vincoli, che non poteva esistere un software che ragionasse come un essere umano e che tenesse conto di tutti i fattori in gioco. Beh, dopo un po' di anni ho scoperto che non avevano così tanto torto.

Però prima di continuare sgombriamo il campo da dubbi: io uso un software per trovare l'orario scolastico, a mano non saprei da che parte iniziare e, soprattutto, mi farebbe impazzire l'idea che qualche specifica o qualche vincoli cambi all'ultimo minuto - e capita, ve l'assicuro - così da obbligarmi a rifare parte o tutto l'orario il giorno prima dell'inizio dell'anno scolastico.

D'altra parte, prima di scrivere questi articoli, ed in particolare proprio questo, mi sono voluto un po' documentare. Abbiamo già detto che il problema della ricerca di un orario scolastico è un problema che appartiene alla classe dei problemi detti Problemi di Soddisfacimento di Vincoli o CSP. 

Purtroppo non esiste una tecnica che dato questo tipo di problemi trova una soluzione tramite un calcolo più o meno complicato. Esistono, viceversa, algoritmi ricorsivi per la ricerca della soluzione. Uno di questi è ad esempio l'algoritmo Backtracking. Si cominciano ad assegnare le variabili in gioco in modo più o meno casuale (oppure seguendo euristiche di qualche genere) in modo tale che rispettino tutti i vincoli finché non si arriva ad una variabile che non si riesce ad assegnare, perché a prescindere da quale valore le diamo un vincolo non viene soddisfatto. Allora si va all'ultima variabile assegnata e che non ha infranto vincoli e le si dà un altro valore sempre con la condizione che rispetti i vincoli e si continua la ricerca. Le scelte vengono immagazzinate in un albero che tiene conto di tutte le opzioni visitate.

Per come è fatto l'algoritmo è però possibile imboccare vie sbagliate che obbligano a risalire l'albero anche più volte. Per esempio se la prima variabile che si assegna la si assegna in modo tale che non esiste alcuna soluzione con quel valore (e io a priori non lo posso sapere) l'algoritmo dovrà fare molte esplorazioni e ricorsioni prima di arrivare alla conclusione che quell'assegnazione è sbagliata. So di non essere precisissimo, però come più volte ho accennato l'obiettivo di questi miei articoli è di far comprendere appieno le problematiche.

E qui il problema è grande: gli algoritmi che permettono di trovare l'orario scolastico sono ricorsivi, cioè devono fare tanti tentativi prima di trovare una soluzione ed il numero di tentativi cresce in modo esponenziale al crescere dei vincoli.

Ho trovato un esempio per farsi un'idea di quanto tempo potrebbe volerci per trovare un orario scolastico (http://it.wikibooks.org/wiki/Costruire_un_orario_scolastico):
Supponiamo di avere una scuola con 40 classi, e con 30 ore settimanali ciascuna, un programma per generare l’orario scolastico attraverso una tecnica ricorsiva dovrebbe esaminare ogni disposizione di 30 ore su 40 classi e su un buon comupter ci metterebbe circa 1000000000000000000000000000000000000000000 anni!!!

Ed eccoci arrivati alla conclusione da cui scaturisce il titolo dell'articolo: è dimostrato che le tecniche informatiche migliori per affrontare questo tipo di problemi sono tecniche che richiedono l'impiego dell'intelligenza artificiale, cioè tecniche che emulano le capacità di ragionamento e di sintesi del cervello umano.

Un po' di link per approfondire:
http://it.wikibooks.org/wiki/Costruire_un_orario_scolastico
http://it.wikipedia.org/wiki/Backtracking

LEGGI TUTTO...