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...