Coding e Pensiero computazionale

sono argomenti “caldi” nelle indicazioni didattiche di oggi1Si tratta solo di una moda, oppure l’introduzione di questi nuovi mondi del sapere è fondata su solide basi? L’introduzione, già a partire dalla scuola primaria, del pensiero computazionale come quarta abilità di base da insegnare (insieme a leggere, scrivere e far di conto) è ritenuta sempre più indispensabile. L’Italia non rappresenta un caso isolato: scelte analoghe sono state fatte (a volte alcuni anni prima rispetto al nostro paese) anche in molti altri paesi (Regno Unito, Stati Uniti, Australia, Nuova Zelanda, solo per citarne alcuni). Per prima cosa è bene soffermarsi sul significato di questi termini. Il pensiero computazionale può essere definitocome un “processo di formulazione di problemi e di soluzioni in una forma che sia eseguibile da un “agente che processa informazioni”. Si tratta di formalizzare un problema di modo che un qualche esecutore (la massaia che segue una ricetta, l’hobbista che monta il mobile prefabbricato, il computer che esegue le istruzioni scritte in un preciso linguaggio formale) possa trovare la soluzione al posto nostro. Non si tratta di “pensare come un computer”, frase che di per sè contiene una contraddizione, ma piuttosto di pensare come un Informatico per trovare strategie creative (tipiche di un pensiero umano) e innovative per la risoluzione di un problema, lasciando poi al computer il “noioso” compito di eseguire i passi che effettivamente porteranno alla soluzione desiderata. Lo strumento espressivo principale di un informatico è quello della programmazione (coding, in inglese). Tramite la traduzione degli algoritmi (le descrizioni dei passi necessari alla risoluzione di problemi, di cui abbiamo parlato poc’anzi) in un linguaggio di programmazione (cioè un linguaggio che, direttamente o indirettamente, è comprensibile ad un computer) l’informatico dà vita ad artefatti (virtuali) inediti che si occupano di realizzare un compito, risolvere un problema, fornire un servizio, ecc. A questo punto è normale chiedersi se imparare questa abilità (pensiero computazionale) e queste conoscenze e competenze (coding) sia davvero necessario per il più vasto pubblico possibile, o se invece non debba rimanere appannaggio di alcuni tecnici specializzati. L’informatica è pervasivamente presente nel mondo di oggi, in ogni ambito della nostra vita. Si parla infatti di “ubiquitous computing”. Dunque, conoscerne i concetti basilari è imprescindibile per la formazione personale. Così come a scuola si studiano le lingue, la matematica, la fisica, le arti per capire il mondo che ci circonda (e non necessariamente per diventare esperti di questo o quel settore), così deve essere ora per l’informatica, che è una scienza autonoma e dunque (sempre più) degna di un posto tra le discipline scolastiche.Sebbene non deve essere il solo obbiettivo, è giusto dare uno sguardo alle professioni del futuro. I dati parlano chiaro, sempre più professioni (dei più disparati settori: scientifico, umanistico, ecc) richiedono una competenza informatica che va ben al di là del semplice “uso” della tecnologia e i trend preannunciano una carenza di lavoratori con le competenze necessarie, negli anni a venire. Normale, se la maggioranza dei ragazzi non ha avuto modo di entrare in contatto con tali aspetti del sapere e dunque, eventualmente, appassionarvisi. Ma c’è di più. Imparare a programmare, a “pensare come un informatico”, è un ottimo modo per acquisire competenze trasversali quali problem-solving, ragionamento analitico e sistematico, precisione e cura per la forma, gestione della complessità di un problema, collaborazione. Per la natura stessa dell’Informatica, programmare e risolvere problemi computazionalmente aiuta a non essere spaventati dagli errori (i “bug” di cui i programmatore sono sempre a caccia), ma anzi a procedere per prove ed errori. Il feedback inoltre è imparziale ma motivante: se il programma non funziona, mi rendo conto che c’è qualcosa da migliorare e sono spronato a farlo. Gli studenti imparano a scomporre un problema che sembra insormontabile in sottoproblemi più facilmente risolubili; imparano a lavorare con problemi reali e non necessariamente costruiti ad arte per avere un risultato “pulito”, per ottenere un apprendimento autentico e per mettere in gioco, stimolare e valutare le loro competenze; imparano  inoltre a collaborare e a riutilizzare il lavoro di altri (senza paura di copiare ma sapendo di dover rispettare il diritto d’autore) per realizzare i propri progetti. Come è evidente, si tratta di skill di vita, che vanno ben al di là dell’informatica: sono la base per continuare a crescere e ad imparare3.

Costruire i propri programmi (videogiochi, storie, animazioni, simulazioni…) permette inoltre un uso attivo della tecnologia (contrapposto all’uso passivo, di solito l’unico a cui sono esposti bambini e ragazzi oggi), come strumento per esprimere la propria creatività. Così come, dopo aver imparato a leggere, impariamo a scrivere, per poter esprimere i nostri pensieri e dare forma a opere nuove, così possiamo fare quando da semplici utilizzatori diventiamo capaci di creare usando la tecnologia e l’informatica.


1 La Buona Scuola, Piano Nazionale Scuola Digitale

2Per una rassegna sulle possibili definizioni del pensiero computazionale si veda il Cap.1 della tesi di Michael Lodi: http://amslaurea.unibo.it/6730/

3http://www.scienzedellamente.it/articoli/approfondimenti/30-il-modello-delle-teorie-implicite-dellintelligenza-di-dweck.html