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