Introduzione al pensiero computazionale
Progetto Coding
6 bambini su 10 faranno lavori che oggi non esistono!
Compito del nostro Istituto è prepararli ad affrontare il “loro” futuro e quindi sviluppare in loro competenze nuove e diverse da quelle che servivano a noi quando eravamo piccoli.
La Fondazione Cristo Re propone il Coding a tutti gli iscritti al doposcuola della Scuola Primaria e Secondaria di Primo Grado senza costi aggiuntivi per le famiglie. Il progetto è gestito in collaborazione con Docendum, partner di Digiconsum, associazione di promozione sociale riconosciuta dalla Regione Lazio (iscrizione n. 1791 con atto 05452 del 05/05/2015) che fa parte della Coalizione nazionale per le competenze digitali dell’AgID (Agenzia per l’Italia Digitale – Presidenza del Consiglio dei Ministri).
Cos’è il Coding
Nel mondo odierno i computer sono ovunque e costituiscono un potente strumento di aiuto per le persone. Per essere culturalmente preparato a qualunque carriera uno studente vorrà intraprendere in futuro è indispensabile possedere una comprensione dei concetti di base dell’informatica.
Il “Coding” – traducibile in italiano come “programmazione” e definibile in maniera più appropriata come “Introduzione al pensiero computazionale” – si è pienamente affermato in questi anni a livello mondiale per la sua efficacia, ormai universalmente riconosciuta, nel trasmettere ai ragazzi competenze di problem solving, creatività e lavoro di gruppo.
I corsi di coding non vanno confusi con gli attuali corsi d’informatica per ragazzi. La rivoluzionaria differenza è che, invece di insegnare ai nostri ragazzi ad essere dei semplici fruitori di programmi (es. Word e Excel), viene offerta loro la straordinaria esperienza di creare personalmente qualcosa, sviluppando il ragionamento, la fantasia e le personali abilità.
Programma
Viene proposto un metodo formativo innovativo per l’apprendimento del Coding. Gli iscritti vengono introdotti al pensiero computazionale attraverso l’immedesimazione nel linguaggio universale della programmazione visuale a blocchi, utilizzata oggi nelle migliori università (p.es. Berkeley, Harvard).
Con l’alternarsi della formazione analitica e di simulazioni pratiche, i ragazzi riusciranno a modulare e variare le tecniche di apprendimento, in modo da interiorizzare la materia e sedimentare le conoscenze e impareranno ad utilizzare e padroneggiare la piattaforma che il MIUR ha messo a disposizione nell’ambito del progetto “Programma il Futuro”, completandola con altre piattaforme note a livello mondiale tra cui, ad esempio, Scratch, realizzata dal M.I.T. di Boston. Verrà introdotto il software Tinkercad, per il design e la stampa in 3D, e verranno insegnati i primi rudimenti di robotica con Dash&Dot. Nel corso dell’anno ci riserviamo di introdurre ulteriori novità didattiche che abbiano lo scopo di stimolare l’apprendimento e di far sedimentare le conoscenze acquisite.

a.s. 2019-2020
OBIETTIVI DIDATTICI 1° bimestre
Lo studente sarà in grado di applicare i principi basilari del Coding per formulare un ordine in modo chiaro, sintetico e inequivocabile.
FINALITÀ 1° bimestre
Quali sono i principi di base che il bambino deve acquisire per cominciare a sviluppare un pensiero computazionale attivo?
1) Le macchine servono a svolgere compiti ben precisi
2) Io posso programmare le macchine affinché svolgano questi compiti
3) Per farlo, devo conoscere bene la lingua delle macchine
4) La lingua delle macchine è diversa dalla lingua che uso tutti i giorni
5) La lingua che le macchine sono in grado di comprendere è composta da istruzioni chiare, sintetiche e inequivocabili
OBIETTIVI DIDATTICI 2° bimestre
Lo studente sarà in grado di utilizzare i comandi “avanti”, “destra” e “sinistra” per far spostare un avatar.
FINALITÀ 2° bimestre
Ora la macchina “aspetta” in silenzio le prime istruzioni da parte del bambino. Quali sono i comandi più semplici da impartire a un computer?
Ecco alcuni principi elementari per guidare passo dopo passo il bambino nella creazione del suo primo programma.
6) Le macchine possono essere programmate per muoversi nello spazio e raggiungere una determinata meta
7) Per ordinare a una macchina di muoversi e raggiungere una meta devo sapermi orientare nello spazio fisico
8) Per orientarmi nello spazio fisico devo almeno essere in grado di distinguere tra avanti, destra e sinistra
9) Posso programmare una macchina per farla andare avanti e per farla girare a destra o a sinistra
Lo studente sarà in grado di elaborare un set minimo di istruzioni per far spostare un avatar da un punto all’altro, secondo la logica della “strada più breve”.
FINALITÀ
Ora il bambino sa come far muovere un avatar attraverso una serie di istruzioni elementari: può farlo andare avanti, girare a destra o a sinistra, e ha capito come guidarlo per raggiungere un punto ben preciso dello spazio ma ciò non garantisce in modo definitivo l’acquisizione del senso di orientamento. Per consolidare questa capacità – e verificarne il livello di padronanza e autonomia – è necessario guidarlo verso un ulteriore sforzo di astrazione e aiutarlo a metabolizzare i seguenti principi.
10) Posso programmare una macchina per fare in modo che si sposti da un punto a un altro seguendo la strada più breve
11) Per programmare in modo efficiente il movimento di una macchina nelle quattro direzioni devo formulare istruzioni chiare, precise e inequivocabili
12) Le mie istruzioni sono tanto più precise quanto più risultano comprensibili anche per qualcuno/qualcosa che è diverso da me e che si trova in luogo diverso da dove mi trovo io
13) Devo evitare di fornire alla macchina più istruzioni di quelle che servono per seguire la strada più breve e raggiungere la meta finale
Lo studente sarà in grado di creare un algoritmo per guidare il movimento di un avatar e per gestire in modo logico e sintetico la ripetizione ciclica di istruzioni.
FINALITÀ
La capacità di “sintesi” è importante per un bambino. Quasi imprescindibile per la sua evoluzione cognitiva e per il percorso di apprendimento tra i vari rami del sapere. Specialmente in relazione a quelle discipline scientifiche e non, dove sarà molto utile individuare e seguire “la via più breve” e con il numero minimo di passaggi.
Introdurre il concetto di “algoritmo” rappresenta un’ottima strategia didattica per sviluppare questa particolare abilità. E ciò può essere fatto in modo semplice e intuitivo attraverso la condivisione dei seguenti principi generali:
14) Le macchine possono eseguire sequenze di istruzioni
15) Posso programmare una macchina anche attraverso una sequenza complessa di istruzioni
16) In ogni caso, le macchine possono eseguire solamente istruzioni che hanno un inizio e una fine
17) In queste sequenze, l’ordine delle azioni non è mai casuale, ma segue una logica
18) Le azioni uguali che si ripetono possono essere sintetizzate in un’unica azione equivalente
Algoritmi e sintesi. Ecco i punti di riferimento essenziali per avventurarsi in modo rigoroso all’interno dell’universo dell’Informatica.
In termini operativi, si tratta di insegnare allo studente a formulare “sequenze logiche” di istruzioni da impartire alla macchina, cercando di evitare inutili ripetizioni e blocchi di codice superflui. Solamente così egli sarà in grado di integrare il concetto di “istruzione” all’interno di un flusso di co- mandi orientati a un obiettivo, nel rispetto del criterio della “massima semplicità”.
Ben oltre la mera enunciazione teorica, l’esercizio e la pratica con i frammenti di codice possono svolgere un ruolo fondamentale nel favorire l’acquisizione di questi elementi cognitivi e agevolarne l’applicazione concreta da parte del bambino nei diversi ambiti della vita quotidiana: dal modo in cui organizza la sua giornata al metodo di studio e di ripasso, dalla “pianificazione” delle attività di gioco alla gestione del proprio tempo
Lo studente sarà in grado di utilizzare il blocco “ciclo continuo” per creare algoritmi finalizzati a guidare il movimento di un avatar.
FINALITÀ
La definizione di “algoritmo” ci ha permesso di aiutare lo studente a metabolizzare il concetto di sintesi e ad apprezzarne gli effetti sulla scrittura del codice.
Nello svolgimento degli esercizi, lo studente ha potuto verificare in prima persona come questa sintesi si è tradotta concretamente in una riduzione del numero di righe in cui si articola il programma. E tale riduzione rappresenta l’effetto diretto delle azioni che il bambino ha opportunamente effettuato andando a raggruppare (o sintetizzare) le azioni uguali nel blocco “Ciclo”.
Ma un programma deve poter gestire anche la ripetizione di interi blocchi di istruzioni non uguali. Infatti, maggiore è il livello di articolazione e di complessità delle attività che desideriamo far svolgere a un computer e a un avatar virtuale, maggiore diventa la probabilità che alcune sequenze di comandi possano ripresentarsi con regolarità. In tal senso, il blocco “ciclo” si rivela insufficiente – poiché relegato alla mera ripetizione di azioni uguali – e necessita di un’integrazione rilevante.
Ecco perché, per completare il quadro e fornire ai nostri studenti gli strumenti necessari per avventurarsi progressivamente nell’universo elementare del Coding, è fondamentale condividere con loro i seguenti principi pratici.
19) Posso creare programmi per il controllo di una macchina che contengono intere sequenze di azioni che si ripetono
20) Se queste sequenze si ripetono con regolarità e ciclica- mente posso raggrupparle e sintetizzarle in un unico comando equivalente, il “ciclo continuo”
21) Un “ciclo continuo” che esprime la ripetizione di una sequenza di azioni può contenere ulteriori e più piccoli “cicli” o “cicli continui” di azioni o di intere sequenze
22) Quanto più riesco a sintetizzare una lista di istruzioni mediante “cicli” o “cicli continui”, tanto più il mio pro- gramma sarà leggero ed efficiente
23) Se il mio programma è leggero ed efficiente il mio computer è più “contento” perché può risparmiare tempo ed energia per raggiungere il risultato finale
Questo elenco ordinato di proposizioni rappresenta la sequenza di idee che dovrebbe orientare ogni buon informatico che si occupa di programmazione. E, nel caso specifico del bambino, implica sempre una buona comprensione concettuale e applicativa della logica su cui si basa il ciclo continuo (o “loop”)
Lo studente sarà in grado di completare alcuni disegni di forme geometriche mediante algoritmi che richiedono la gestione del colore, del numero di pixel, della posizione e degli angoli.
FINALITÀ 1° quadrimestre
Lo studente deve comprendere le direzioni in cui può e deve spostare il pennello. Inoltre, è importante che sia in grado di quantificare questo spostamento in relazione a un’unità di misura determinata, che nel caso della grafica digitale è rappresentato dal puntino luminoso, il pixel.
Si tratta dunque di fissare alcuni principi generali che consentano un’interpretazione operativa del modo in cui una macchina rappresenta e simula lo spazio.
24) Posso riprodurre un’ampia varietà di figure spaziali mediante una macchina
25) Le macchine rappresentano lo spazio attraverso una fitta griglia di puntini luminosi, i pixel
26) Se voglio disegnare una figura geometrica con il computer devo utilizzare il linguaggio dei pixel
27) Una figura geometrica digitale è il risultato di 3 tipi di in- formazioni: il numero di pixel, la loro posizione e il loro colore
28) Per creare una figura al computer devo formulare istruzioni ben precise in modo tale da produrre una serie di spostamenti in relazione a questi 3 tipi di informazioni
29) Le istruzioni per generare una figura geometrica al computer devono contenere informazioni sugli angoli
30)Gli angoli sono il prodotto di una rotazione attorno a un punto centrale di riferimento
31) Posso determinare in modo preciso la rotazione specificando il numero di gradi e la sua direzione
OBIETTIVI DIDATTICI 2° quadrimestre
Lo studente sarà in grado di utilizzare l’operatore “Se altrimenti ” per guidare le azioni del computer fino al raggiungimento di un risultato specifico.
FINALITÀ 2° quadrimestre
Qualsiasi informatico – anche alle prime armi – conosce bene l’operatore “Se altrimenti ” e le sue innumerevoli applicazione nell’ambito della programmazione. In particolare, sa che – a prescindere dal tipo di linguaggio utilizzato – attraverso questo schema di comandi è possibile gestire strutture logiche condizionali del tipo “SE si verifica una determinata condizione, allora esegui una certa azione; ALTRIMENTI (ossia, SE la condizione prevista non si verifica) esegui un’altra azione”.
Naturalmente, esistono molte variazioni su tema mediante le quali i vari linguaggi di programmazione esprimono uno schema del genere. Ma il significato profondo dell’operatore non cambia e conserva in modo trasversale la sua formidabile capacità di fornire alla macchina regole chiare e indubitabili per lo svolgimento delle sue attività.
Trasferire tutto ciò – sia concettualmente, sia in termini più applicativi – ai nostri studenti non è facile. E non si può risolvere nella mera enunciazione del meccanismo logico. Richiede, invece, contestualmente ai momenti esercitativi, la condivisione di una serie di principi essenziali.
32) Le macchine “pensano” e agiscono in modo sequenziale
33) Un programma può essere considerato come una concatenazione ordinata di istruzioni
34) Se voglio programmare una macchina per raggiungere
un risultato specifico devo fare in modo che l’ordine di alcune istruzioni e azioni sia basato sul principio di causa ed effetto
35) Per dire al computer che tra due azioni vale un rapporto di causa ed effetto posso utilizzare una regola del tipo “SE si verifica una condizione (causa), allora fai questo (effetto)”
36) Una condizione può essere una semplice azione o il risultato di una serie di azioni
37) Posso dire al computer cosa fare nel caso in cui NON si verifica una condizione (causa) mediante il comando “ALTRIMENTI”
38) Un programma ben formulato deve essere composto da istruzioni e regole che consentono alla macchina di “sapere” sempre cosa fare, senza lasciare nulla al caso
Imparare a utilizzare l’operatore “Se altrimenti ” per costruire strutture condizionali è molto importante per lo sviluppo delle capacità logiche dell’alunno. Poiché equivale ad acquisire la capacità di configurare mentalmente situazioni o scenari alternativi, da cui possono derivare diversi risultati. Inoltre, gli consente di rappresentare in modo rigoroso le operazioni di un computer in termini di sequenze concatenate di cause ed effetti, in relazione a una meta finale da raggiungere
Calendario
CLASSE | Giorno | Orario |
---|---|---|
Scuola Primaria | ||
Classi I (I Quadrimestre) | Venerdì | 14.30 - 15.30 | 16.00 - 17.00 |
Classi II (I Quadrimestre) | Lunedì | 14.30 - 15.30 | 16.00 - 17.00 |
Classe III (II Quadrimestre) | Martedì | 14.30 - 15.30 | 16.00 - 17.00 |
Classi IV (II Quadrimestre) | Martedì | 14.30 - 15.30 | 16.00 - 17.00 |
Classe V (II Quadrimestre) | Giovedì | 16.00 - 17.00 |
Scuola Secondaria di Primo Grado | ||
Tutte le Classi (I e II Quadrimestre) | Giovedì* | 15:00 - 16:00 |
