Di seguito il video di promozione del progetto via code.org:
Il MIUR - Ministero dell'Istruzione, dell'Università e della Ricerca ed AICA - Associazione Italiana per l'Informatica ed il Calcolo Automatico promuovono, a partire dal 2001, la partecipazione degli studenti della scuola secondaria superiore alle Olimpiadi Italiane di Informatica.
Tutte le informazioni e la storia della manifestazione si trovano qui.
Quali concetti matematici possono trovarsi nella programmazione di giochi interattivi?
Partiamo da alcuni esempi. Un gioco molto diffuso tra gli adolescenti, per il quale sono pronti a inviare sms a emittenti televisive che lo propongono nei sottotitoli dei videoclip musicali, è quello della "affinità di coppia". Si tratta di inserire il proprio nome insieme a quello del proprio amato o amata per ottenere dal programma risposte sul livello di affinità di coppia e consigli che vanno da «lascia perdere» a «siete fatti l'uno per l'altra!». Nel programmarlo i ragazzi si rendono conto che il programma esegue una semplice operazione sulle stringhe dei nomi (potrebbe anche semplicemente sommarne le lunghezze) ottenendo un numero n, e restituisce un valore v di ingresso a una tabella di possibili risposte mediante l'operazione di resto della divisione intera n mod v. Si tratta in effetti di una semplice applicazione di concetti di algebra modulare che permette di ampliare le competenze matematiche degli studenti.
Un'applicazione della trigonometria è presente invece nei giochi in cui siano richieste rotazioni di linee, utili per esempio a dare l’impressione di girare una lancetta su una ruota. Per dare l’idea del movimento occorre programmare, a ogni frazione di secondo dipendente dalla velocità desiderata, il disegno di un segmento in posizioni circolari successive.
Tale disegno nella maggior parte dei linguaggi di programmazione si ottiene con un'istruzione del tipo Line(xc,yc,xd,yd), dove (xc,yc) indicano le coordinate del primo estremo (coincidente in questo caso con il centro della ruota e fisso) e (xd,yd) le coordinate del secondo estremo in movimento. Per ottenere l'animazione del segmento occorre incrementare ripetutamente l'angolo al centro α (eventualmente dopo averlo convertito in radianti) applicando le formule
xd = xc+l*cos α e yd = yc + l*sin α, dove l é la lunghezza indicativa del segmento-lancetta.
Infine semplici utilizzi degli angoli di riflessione sono presenti in tutti i giochi di rimbalzo con racchetta e palline, dal Tennis a Bricks. La pallina viene diretta diagonalmente attraverso la combinazione dei due moti orizzontali e verticali e inverte la direzione a contatto con la racchetta.
Un esempio di programmazione in Visual Basic per la realizzazione di Bricks sviluppato da un ragazzo dell'ITC "Vittorio Emanuele II" di Perugia puoi trovarlo qui. A questo link, invece, un altro esempio di programmazione Visual Basic per sviluppare l'orologio di Windows.
Quale valore culturale è possibile riconoscere a tale approccio didattico? La storia dell’informatica e della programmazione è parte più generale della storia ricerca e dello sforzo dell’uomo di conoscere e riprodurre i propri processi mentali e la propria "intelligenza". Studiarne le applicazioni può portare gli studenti a risalire e a riconoscere questi percorsi, dallo sforzo di riprodurre la genialità dei campioni di scacchi a quello di simulare il "buon senso" dell’uomo comune (si veda Eliza di Weinzenbaum di cui le attuali applicazioni maggiordomo, quali Siri, sono eredi). Lo sforzo finale resta quello di indagare noi stessi e la nostra dimensione umana perché "software is about humanities", cioè il software riguarda l’area umanistica. immagine banner: shutterstock.com immagine box: http://research.microsoft.com/en-us/projects/kodu/