Quanto è importante insegnare ai nostri figli la programmazione dei computer?
Se penso alla mia storia personale, posso sicuramente affermare che la
programmazione, ovvero l’abilità di scrivere codice per i calcolatori elettronici, ha segnato un importante punto di svolta nella mia vita. Quando mi sono avviato su questo percorso, alla metà degli anni ’70, non esistevano ancora i personal computer, ma grazie alla mia insistenza ed alla lungimiranza dei miei genitori ebbi in regalo una
calcolatrice programmabile. Anche se oggi la considereremmo poco più di un giocattolo, per l’epoca non era solo un prodotto discretamente costoso, ma una
macchina delle meraviglie assolutamente straordinaria: consentiva di sperimentare concretamente come una
mattoncino di plastica e silicio potesse essere in grado di risolvere i problemi più disparati. Così come
esaltante era lo spirito che trasmetteva, al punto che la ridottissima capacità di memoria – solo 255 istruzioni – era per me una sfida a trovare la strada più efficiente per raggiungere il risultato voluto, piuttosto che essere vissuta come una limitazione.
Quella calcolatrice è stata il punto di partenza della mia carriera di programmatore prima, e di sistemista informatico poi: mi ha messo nella condizione di potere acquisire abilità sconosciute, aprendo i miei orizzonti ad un mondo completamente nuovo.
E’ quindi facile intuire la mia risposta alla domanda di partenza. In un mondo che cambia giorno per giorno sotto i nostri occhi, l’acquisizione delle abilità di base della programmazione è un elemento importante del processo formativo, non per esse in quanto tali, pur essendo certamente di innegabile utilità, ma soprattutto per l’abito mentale che stimolano ad acquisire. E’ indubbio, infatti, che l’esperienza della programmazione stimoli fortemente la creatività, il pensiero razionale e critico, così come le tecniche di soluzione dei problemi. Sono tutti strumenti necessari per scrivere un programma, metterlo in esecuzione e raggiungere il risultato voluto. Allo stesso tempo, però, sono abilità essenziali nel mondo di oggi, anche per chi non ha intenzione di lavorare nel comparto informatico: rimarranno un elemento prezioso del bagaglio esperienziale di ogni individuo, qualunque sia l’attività lavorativa che i piccoli cittadini dell’Italia di domani decideranno di affrontare. Senza trascurare il fatto che è un percorso in grado di trasportare i nostri ragazzi dalla condizione di fruitori passivi di una tecnologia tutto sommato aliena, nella schiera di chi è in grado di piegare la tecnologia ai propri scopi.
In definitiva non è nulla di diverso da quello che la scuola fa quotidianamente con le abilità classiche: tutti noi abbiamo imparato a scuola a scrivere testi o sviluppare calcoli matematici. Se pochi hanno scelto di diventare scrittori, poeti o ingegneri, tutti gli altri fanno un buon uso delle abilità acquisite nella vita di tutti i giorni. La programmazione è da considerare una nuova abilità di base, che in un mondo che sta cambiando con una velocità sempre crescente è da affiancare rapidamente a quelle tradizionali, visto che ve ne ne sarà sempre più bisogno.
E’ un messaggio presente anche nel documento programmatico governativo La buona scuola, che dedica una intera sezione alla questione, Come sollecitiamo i ragazzi ad essere produttori digitali, introducendo l’argomento così:
Pensare in termini computazionali significa applicare la logica per capire, controllare, sviluppare contenuti e metodi per risolvere i problemi e cogliere le opportunità che la società già oggi ci offre.Serve quindi un piano nazionale che consenta di introdurre il coding (la programmazione) nella scuola italiana.
Mentre sono del tutto d’accordo con le linee di principio, ho serie riserve sull’uso del termine
coding. A parte i problemi legati all’invasione della terminologia anglosassone nella lingua italiana, l’uso della parola
coding è del tutto fuorviante.
In informatica questo termine indica il processo di scrittura delle istruzioni che consentono al computer di eseguire il programma, un lavoro tutto sommato banale. Le abilità da sviluppare sono tutte a monte di questo processo: analisi del problema, determinazione delle strategie per affrontarlo, metodi operativi per tradurre il programma in azioni, ricerca delle anomalie. Sono tutte sintetizzate in quel processo, definito pensiero
pensiero computazionale, e che è molto meglio rappresentato dal nostrano termine
programmazione, più che dal più esotico – ma improprio –
coding.
D’altro canto, se oggi la programmazione è diventato un argomento di grande interesse è anche grazie alle evoluzioni che hanno
liberato l’attività creativa dalla tediosa fase della codifica. L’uso didattico della programmazione, infatti, non è cosa nuova. Già negli anni ’60 al MIT, il famosissimo Massachusetts Institute of Technology, fu realizzato il
LOGO, un linguaggio grafico che è stato per lunghissimo tempo lo strumento principale per la didattica della programmazione. La sua peculiarità era quella di controllare i movimenti di una
tartaruga sullo schermo grafico, ed utilizzarla per disegnare delle figure.
Un programma in Logo
Per usarlo è però necessario conoscere le regole del linguaggio e la sua sintassi. Anche la manciata di istruzioni necessarie a disegnare questa stella sono tutt’altro che comprensibili e intuitive. La fase di codifica sottrae inutilmente risorse al processo cognitivo vero e proprio.
Ma con l’evoluzione della tecnologia e l’avvento di macchine sempre più veloci e performanti hanno portato i suoi benefici anche in questo settore. Il Logo si è evoluto verso una reincarnazione che non richiedesse più l’uso di un linguaggio specifico, ma che consentisse la scrittura di programmi collegando l’un l’altro dei blocchi funzionali, alla stregua di una versione informatica delle costruzioni fatte con i ben noti mattoncini danesi.
Il risultato di questa processo evolutivo si chiama
scratch, ed è diventato molto più di un semplice strumento di programmazione, dando vita ad una vera e propria comunità online.
L’ambiente di Scratch ed il programma della stella
La programmazione per blocchi di scratch rende la scrittura dei programmi molto più semplice e comprensibile di logo. I due esempi utilizzano lo stesso percorso logico, ed è facile confrontare l’immediatezza della grafica dei blocchi con l’astrusità del linguaggio formale. E’ quindi lo strumento ideale per avvicinarsi alla programmazione senza essere distratti dalla necessità di acquisire competenza accessorie del tutto inutili al processo formativo.
L’esperienza di scratch ha dato vita ad una intera famiglia di sistemi di programmazione a blocchi, come
Snap!, una evoluzione a cura dell’Università della California – Berkeley, o
Blockly, di Google. Quest’ultimo è alla base non solo di applicazioni web come
code.org, una grande risorsa per muovere i primi passi nel mondo della programmazione, ma è anche il cuore di
app inventor, che consente di usare i mattoncini di codice per scrivere applicazioni per i cellulari android.
Avvicinare i propri figli alla programmazione è quindi molto facile. Non sono richieste né apparecchiature speciali né competenze particolari. Il software è progettato per essere eseguito direttamente dal browser, cosa che lo rende fruibile indipendentemente dalla tipologia di dispositivo: che sia un tablet o un pc o un mac non fa differenza alcuna. Siti come code.org portano gli allievi ad esplorare passo per passo questo meraviglioso mondo: basta seguire le istruzioni ed avere un briciolo di buona volontà per avviarsi in questa avventura.
Non mancano iniziative di volontariato, la più importante delle quali è sicuramente CoderDojo, un movimento no-profit nato in Irlanda per promuovere le attività di programmazione. Presente in tantissime località del nostro paese organizza periodicamente degli eventi, che possono essere consultati sul sito italiano,
coderdojoitalia.org.
Quand’è che la scuola italiana imboccherà questa strada? Il paragone con realtà straniere ci fa comprendere quanto indietro siamo su questo punto e l’
iniziativa della BBC ne è un esempio lampante. In effetti sul territorio nazionale già esistono scuole che hanno compreso l’importanza di avviare i propri alunni alla programmazione, ma è un fenomeno a macchia di leopardo. I princìpi enunciati ne
la buona scuola richiedono comunque investimenti non indifferenti, sia in termini di risorse informatiche, sia in termini di formazione dei docenti. Richiedono soprattutto un’apertura mentale che, se è relativamente comune nei docenti, lo è spesso molto meno nell’apparato burocratico. E’ per questo che credo sia importante che si crei una coscienza comune sull’importanza di attività di questo tipo, per stimolare le singole scuole ad agire nell’ambito della propria autonomia ad attivarsi sull’argomento con progetti specifici.
Consentitemi in ultimo di provare a sfatare un mito: informatica e programmazione non sono, come spesso si crede, attività solo per maschi. La storia dell’informatica è stata scritta anche da tante scienziate di grande valore. Ne cito giusto tre: Ada Lovelace, che nella prima metà del 1800 è stata la prima persona a concretizzare il concetto di programma, Grace Hopper, che ha avuto un contribuito fondamentale alla definizione del concetto di linguaggio di programmazione, e Margaret Hamilton, capo dello sviluppo del software di navigazione del progetto Apollo, che ha portato il genere umano a raggiungere il nostro satellite naturale.
La foto del titolo è di ScratchEd Team
1 commento
Pingback: Il favoloso mondo del signor Bit - Osservatore Lucano