Blog

Pubblicato in: Pensiero computazionale

Sulla definizione di Pensiero Computazionale

Annunci
Pubblicato in: Pensiero computazionale, Scratch

La Scratch Conference ad Amsterdam…. ci sta!

Dopo un breve ma intenso tour dell’Olanda in solitaria, ho partecipato alla Scratch Conference insieme agli amici di CoderDojo Bologna.

Cercherò di raccogliere qui alcune impressioni, in particolare sui temi di cui mi sono occupato un po’ per diletto e un po’ perché ci credo: il passaggio dalla programmazione a blocchi a quella testuale e gli aspetti “umani” del pensiero computazionale. Per una panoramica più generale, potete vedere ad esempio questo articolo di CoderDojo Bologna e le impressioni della nostra cara mentor-maestra LIMda, oltre a ciò che ha colpito di più i membri dello Scratch team.

Tra le cose che mi hanno colpito ci sono sicuramente lo sviluppo di Snap! (cugino di Scratch che vive a Berkeley) e il promettente GP, che possono davvero aspirare a diventare linguaggi di programmazione general purpose, utilizzabili per moltissimi scopi e non solo da studenti, ma anche da professionisti.
Ho adorato in particolare la transizione dai blocchi al codice testuale, che diventa immediata tramite GP, e in generale la possibilità di inserire i blocchi iniziando a digitare il testo, ricevendo un popup con i suggerimenti (come nei classici IDE), per velocizzare l’inserimento di blocchi che già si conoscono, senza perdere però la possibilità di esplorare le categorie alla scoperta di nuovi blocchi.  

Oltre agli aspetti informatici e didattici in senso stretto, quello che mi ha colpito è l’interesse di molti agli aspetti “umani” e “sociali” che l’insegnamento dell’informatica e della programmazione possono avere. Anche il tema della conferenza è un chiaro segnale in questa direzione (potete vedere qui i video di molti degli interventi principali).
Non a caso anche nel mio talk ho invitato tutti a “pensare come un informatico, non come un computer”, ovvero, in estrema sintesi, a non trascurare la componente umana nell’insegnamento e a sfruttare le pratiche e le prospettive del pensiero computazionale per affrontare le sfide della vita, oltre a quelle lavorative.

Doveroso partire dal keynote di Mitch Resnick, che si chiede: perché Scratch? Egli vede Scratch come un mezzo, non un fine. Programmare con un linguaggio di questo tipo, permette, tra le altre cose di:

  • sviluppare la voce, ovvero esprimere se stessi, trovare nuovi modi di condividere le proprie idee;
  • sviluppare il proprio modo di pensare: essere coinvolti, progettare, sviluppare nuove strategie di risoluzione dei problemi, dare un senso alle cose che ci circondano avendone una migliore comprensione; e ancora: imparare a correggere gli errori, a collaborare, a procedere per tentativi e raffinamenti successivi, ad essere tolleranti all’ambiguità;
  • sviluppare la propria identità: l’immagine che si ha di sé nel mondo, il sentirsi membro attivo, creatore, per contribuire all’evoluzione della società digitale (così come un tempo la capacità o meno di scrivere distingueva chi subiva la società da chi aiutava a cambiarla).

A seguire, con meticolosità che definirei svizzera, il Prof. Beat Döbeli Honegger ha descritto 1001 (in binario, per fortuna) motivi per insegnare Informatica a scuola. Egli ha ricordato per esempio che:

  • l’informatica ci apre nuovi mondi, perché impariamo a parlare nuovi linguaggi (come imparare nuove lingue ci apre a nuovi luoghi e nuove culture);
  • l’informatica ci aiuta ad imparare le altre scienze;
  • l’informatica aiuta a pensare e a discutere di intelligenza, vita, mente, pensiero;
  • l’informatica può migliorare le nostre abilità di problem solving;
  • l’informatica ci aiuta a capire il mondo digitale che ci circonda (così come studiare le altre materie per capire la realtà in cui viviamo);
  • studiare informatica aumenta il proprio senso di autoefficacia, di empowerment, dovuto tra le altre cose all’approccio diverso, meno trasmissivo e più esplorativo e al fatto che è il risultato stesso del progetto, verificabile e tangibile (funziona o no?) a dare una valutazione – piuttosto che l’insegnante.

Con uno stile molto diverso, dolce e fiabesco, preannunciato dalle sue scarpe a forma di coniglietti, ha parlato di questo anche l’affascinante scrittrice Linda Liukas. Con la scusa di raccontare favole, riesce ad avvicinare le bambine e i bambini ai concetti fondamentali del pensiero computazionale, e lo fa cercando di trasmettere loro la gioia che sta dietro all’informatica.
Secondo Linda ci sono due tipi di gioia, di piacere che si prova programmando:

  • una gioia intrinseca, astratta, che prova chi ama l’astrazione e trova bello il fatto stesso di scrivere codice
  • la gioa che si prova giocando con il codice (facendo confusione, pasticciando, facendo haking)

Se la prima può affascinare qualcuno, la seconda è di certo quella da trasmettere perché, secondo molti, è proprio così che impariamo.
E il “gioco” di cui parla Linda va ben oltre i videogiochi. Nel gioco infatti non ci sono solo risultati, meccaniche, competizione. C’è anche socializzazione, realazione con l’altro, gioco di squadra, immersione, scoperta, personalizzazione, fuga dalla realtà e dallo stress…

Programmare non è pensare come un computer. I linguaggi di programmazione sono scritti da un essere umano per un altro essere umano: in origine i computer erano coloro che facevano i calcoli, i contabili. Dunque la componente umana è fondamentale, e gli insegnanti possono influenzare radicalmente i loro studenti.

Tutto questo è ben riassunto nel finale di conferenza di certo non accademico proposto dal mitico Mitch: cantare tutti insieme “I’d like to teach the world to code”.

I’d like to teach the world to code
And think creatively
Make art and stories come alive
While learning joyfully
I’d like to teach the world to Scratch
Imagine Program Share
Give feedback, comments, loves, and tips
Show others that you care
I’d like to teach the world to code
It’s everybody’s right
It helps you think and share your thoughts
Like learning how to write
Design, debug, remix with friends
The learning never ends
It’s time to code
Scratch on