top of page

Descrizione primo del corso extacurricolare: "Intelligenza artificiale"

​

Il corso si è composto di vari moduli così da consentire agli studenti un graduale progresso nella capacità di comprendere e utilizzare vari strumenti e metodologie inerenti alla disciplina dell'Intelligenza Artificiale.

 

Una lezione frontale dal taglio teorico ha fatto da introduzione alla nozione di Intelligenza Artificiale, intesa come la scienza che consente di progettare sistemi in grado di operare delle scelte coerenti con un criterio di utilità scelto in maniera razionale.

Come setting privilegiato per esporre le problematiche connesse a tale definizione si è scelto la teoria dei giochi. Infatti il popolare gioco del Tris rappresenta un esempio in cui un approccio razionale permette al giocatore di attuare una strategia perfetta, cioè che non porti mai alla sconfitta. Non a caso il Tris è stato il primo gioco della storia a essere giocato da un computer. Come esempio più complesso preso dalla teoria dei giochi è stato in scelto il Problema di Monty Hall. A differenza del Tris, la soluzione a tale famoso paradosso, oltre ad essere altamente controintuitiva, non offre la certezza di eliminare la sconfitta ma al più massimizza le possibilità di vittoria. Si passa pertanto da una strategia determinista a una probabilista. Infine, come ulteriore complicazione, si è illustrato il Paradosso di San Pietroburgo, particolare gioco d'azzardo per il quale un'applicazione diretta e ingenua di metodi di decisione probabilistici suggerisce una linea di condotta che nessuna persona ragionevole adotterebbe. Agli studenti viene mostrato come si renda pertanto necessario raffinare la strategia decisionale considerando il concetto di utilità marginale.

 

Dopo il modulo introduttivo teorico il taglio delle lezioni è divenuto pratico e interattivo. A tal fine si sono introdotti degli strumenti che insegnino agli studenti a ragionare in modo sistematico e creativo. Il primo di tali strumenti è stato Scratch, ambiente di programmazione che adotta un linguaggio di tipo grafico. L'alto valore didattico di tale ambiente consente anche a persone inesperte di linguaggi di programmazione di elaborare animazioni, giochi, storie interattive e l'utilizzo di concetti di calcolo matematico. La filosofia di Scratch prevede l'utilizzo di oggetti grafici (Sprite) su cui agisce un codice, il cui risultato viene visualizzato in un'apposita stage area.

La programmazione può essere suddivisa in blocchi di costruzione adattabili l'un l'altro così da risultare facilitata. In tal modo si stimola lo studente ad analizzare la problematica affrontata scomponendola nei suoi momenti costitutivi. Una volta superata questa prima fase, ogni studente, nella costruzione di codici via via più complessi, potrà giovarsi direttamente dei blocchi già costruiti. Per iniziare a prendere confidenza con Scratch gli studenti hanno realizzato delle animazioni con lo scopo principale di associare vari tipi di movimento ad uno Sprite. In seguito si è passati ad una fase che prediligesse una modalità interattiva di Scratch, proponendo ai ragazzi la realizzazione di un semplice gioco a quiz, con domande da rispondere da parte dell'utente e la possibilità di visualizzare alla fine il punteggio totalizzato.

 

Giunti a tal punto, il corso è entrato nella sua fase centrale, quella in cui gli studenti affrontano il problema di realizzare un un programma in grado di comandare in varie situazioni un piccolo robot chiamato Makeblock mBot Ranger. Tale robot è dotato una serie di sensori per poter interagire con l'ambiente esterno, tra i quali un sensore ad ultrasuoni, due sensori di luce, un sensore segui linea, un sensore di temperatura e un sensore di suono oltre a un insieme di luci disposte a cerchio e che possono assumere vari colori e a una serie di giroscopi. L'ambiente di programmazione in cui viene sviluppato su PC il codice per il ranger è chiamato mBlock3, basato su Scratch, quindi su di una programmazione a blocchi grafici. Vi è anche la possibilità che il codice venga sviluppato via tablet o smartphone tramite ambienti appositamente dedicati. In principio ai ragazzi sono stati elencati i vari sensori, indicato dove sono alloggiati nel ranger e descritte le loro funzioni. Come inizio gli studenti si sono divertiti ad inventare dei codici in grado di attivare/spegnere le luci a bordo del ranger secondo configurazioni geometriche e sequenze di colori via via più complesse. In seguito hanno elaborato prima dei blocchi di programmi in grado di far muovere il ranger (includendo anche l'uso dei giroscopi in dotazione in funzione antiribaltamento) o di attivarne i singoli sensori, poi dei codici progressivamente più complessi in grado di controllare l'azione combinata di movimento e di due o più sensori. Si è giunti così, come prodotto finale, ad un ranger in grado di seguire un percorso complesso tracciato in terra (tramite il sensore segui linea) evitando eventuali ostacoli incontrati (tramite il sensore ad ultrasuoni).

 

Come conclusione, una lezione è stata dedicata a cenni sulla programmazione di semplici applicazioni (con le quali eventualmente sia possibile comandare il ranger) per Android tramite l'ambiente di sviluppo App Inventor e l'app MIT AI2 Companion.

​

(a cura di Christian Scimiterna)

bottom of page