Il Coding a scuola

coding scuola primaria e secondariaUn concetto strettamente connesso al pensiero computazionale è quello di programmazione o coding. La programmazione è il processo che parte dalla formulazione di un problema e giunge alla creazione di programmi eseguibili al computer in grado di risolverlo.
Nella programmazione, tutte le operazioni che contraddistinguono il pensiero computazionale (ad esempio l'analisi, la scomposizione e l'astrazione di pattern, cioè schemi di progettazione) vengono tradotte in algoritmi, cioè sequenze di azioni, con l'utilizzo di un linguaggio di programmazione. In termini semplici, il coding comprende quei linguaggi con i quali si può istruire il computer a svolgere determinati compiti attraverso la scrittura di una sequenza di operazioni.
Il testo scritto con questi linguaggi è chiamato «codice sorgente»: quando si programma, le sequenze di operazioni vengono scritte in un codice che il computer sa interpretare. Come ogni altro linguaggio, anche quelli di programmazione possiedono una grammatica e un vocabolario che vanno appresi se vogliamo capire e farci capire dai computer.
Lo scopo della programmazione è trovare una sequenza di istruzioni che renda automatica l'esecuzione di un compito o la soluzione di un problema: riprendendo l'esempio precedente, è un po' quello che accade quando, dopo aver trovato la strategia migliore per cucinare una torta, scriviamo con precisione la sequenza delle azioni da compiere in modo che si potrà eseguire il procedimento in modo corretto ed efficiente, pur mantenendo la possibilità di ottimizzare questa strategia in futuro.
Nel momento in cui iniziamo a programmare, tiriamo fuori la curiosità, alleniamo lo spirito di analisi e usiamo la logica nel cercare le soluzioni più efficaci per risolvere nuove sfide. Creiamo inoltre nuovi ambienti e prodotti digitali (un videogioco, un'opera d'arte digitale, una presentazione interattiva, ecc.) che, oltre a essere «prodotti», sono anche strumenti per pensare e per costruire nuove conoscenze. Se i programmatori si possono considerare gli architetti dell'era digitale, imparare a programmare significa diventare capaci di ricostruire il mondo.

Il pensiero computazionale

pensiero computazionale scuolaOgni giorno i computer, gli smartphone e i tablet ci aiutano a risolvere «problemi» piccoli e grandi: prenotare il biglietto per uno spettacolo, mettersi in contatto con qualcuno che si trova dall'altra parte del mondo, scrivere testi, creare video.
Tuttavia, è necessario che prima qualcuno abbia definito questi problemi e le strade più efficaci per poterli risolvere. Questo lavoro, il più delle volte a noi invisibile, è svolto dai programmatori e dagli ingegneri che si avvalgono di una «grammatica mentale» per affrontare i problemi, il pensiero computazionale, e di linguaggi specifici, i linguaggi di programmazione.
Il pensiero computazionale permette di definire che tipo di problema abbiamo di fronte e quindi di sviluppare possibili strategie di risoluzione, presentandole in modalità comprensibili sia dall'uomo che dai calcolatori elettronici. Questo tipo di pensiero si basa su alcuni principi fondamentali tra i quali:

  • la scomposizione di un problema complesso in sottoproblemi o unità più piccole e quindi più facili da gestire;
  • l'individuazione di pattern (schemi) comuni alla base di molti problemi ma formulati in maniera differente;
  • l'astrazione e la generalizzazione, i processi con cui una soluzione o alcuni suoi elementi possono essere generalizzati rispetto a una situazione specifica e quindi applicati per risolvere altri problemi;
  • gli algoritmi, cioè sequenze ordinate di operazioni che costituiscono il «libretto di istruzioni» per risolvere un problema.
    A prima vista può sembrare che tali principi hanno a che fare con il funzionamento di un cervello elettronico ma non ci riguardano più di tanto.

Eppure, basta poco per trovare esempi di pensiero computazionale nella vita quotidiana. Ad esempio, se vogliamo cucinare una torta per la prima volta, per non commettere errori probabilmente cercheremo sullo smartphone o sul computer la ricetta che contiene, oltre all'elenco degli ingredienti, la sequenza ordinata delle operazioni da compiere per risolvere il nostro «problema» gastronomico.
Un altro esempio, utile per capire il concetto di scomposizione: vi sarà capitato di prendere parte a un lavoro di gruppo per raggiungere un obiettivo, magari un problema troppo grande da risolvere tutto insieme, ma che è diventato affrontabile con la sua scomposizione in step progressivi da risolvere in sequenza o in sottoproblemi affrontati da diverse persone. Gli esempi potrebbero essere tanti: preparare una ricerca per la scuola, realizzare uno spettacolo, organizzare una festa di compleanno.
Questi sono casi di astrazione e generalizzazione. Il riconoscimento dei pattern, o schemi, è l'operazione che compiamo quando rileviamo uno schema simile o delle regolarità in situazioni diverse tra loro: se in un problema di matematica è dato un triangolo rettangolo del quale è richiesta la misura di un lato conoscendo gli altri due, sappiamo di dover applicare il teorema di Pitagora. Il riconoscimento dei pattern consente di ridurre la varietà dei problemi a un numero gestibile di situazioni e di applicare quindi per ciascuna di esse una o più strategie definite.

Sottocategorie

corso scratch scuola primaria secondariaQuesto corso è dedicato a Scratch, un ambiente di programmazione creato all'interno del MIT (Massachusetts Institute of Technology), uno dei più importanti centri di ricerca del mondo. Nello specifico, Scratch è stato creato grazie al lavoro del Lifelong Kindergarten Group dei Media Lab del MIT, gruppo di ricerca guidato dal prof. Mitchel Resnick, che si occupa di come le persone possono apprendere, progettare e creare grazie anche alle nuove tecnologie.
Scratch è stato progettato nel 2006 per l'insegnamento della programmazione tramite primitive visive, è adatto a studenti, insegnanti e genitori ed utilizzabile per progetti pedagogici e di intrattenimento che spaziano dalla matematica alla scienza, consentendo la realizzazione di simulazioni, animazioni, musica e semplici giochi.

Si può scaricare Scratch gratuitamente dal sito del MIT oppure utilizzarlo online come web app.