Il coding

Il coding

Il coding

Quando parliamo di coding intendiamo quella disciplina che ha come base il pensiero computazionale, cioè tutti quei processi mentali che mirano alla risoluzione di problemi combinando metodi caratteristici e strumenti intellettuali. Aiutare i più giovani ad apprendere fin da subito le nozioni base della programmazione è fondamentale per lo sviluppo di un pensiero computazionale che potrà trasformarsi in futuro in competenze specifiche sempre più richieste dal mondo del lavoro.
Di seguito una serie di materaili Rai volti ad approfondire i vari aspetti del coding.


Toolbox 2- Coding
Il coding applica in modo intuitivo i principi base dell’informatica per comprendere e risolvere problemi e per realizzare idee. In questa puntata presentiamo il Coding agli insegnati delle scuole primarie e secondarie di primo e secondo grado.

INSEGNANTI


Pt 1 - Introduzione - Insegnanti
Il coding applica in modo intuitivo i principi base dell’informatica per comprendere e risolvere problemi e per realizzare idee. In questa puntata presentiamo il Coding agli insegnati delle scuole primarie e secondarie di primo e secondo grado.

Pt 2 - Comandi e Istruzione - Insegnanti
Che cos’è un’istruzione?  Molte attività che gli insegnanti propongono in classe sembrano istruzioni, ma siamo certi che lo siano davvero? In questa puntata individuiamo azioni elementari e proviamo a descriverle con istruzioni non ambigue. Il coding parte da qui.

Pt 3 - Sequenza
Le nostre azioni sono sempre sequenze di passi elementari. Il coding ci esercita a descrivere procedimenti complessi come sequenze di istruzioni talmente chiare che potrebbero essere eseguite da altri.

Pt 4 - Ripetizione
Quando un’operazione richiede di essere ripetuta più volte tendiamo ad ottimizzare impartendo l’istruzione una sola volta specificando quante volte debba essere ripetuta. In questa puntata proviamo a riconoscere le ripetizioni nelle attività che svolgiamo in classe.

Pt 5 - Se/altrimenti
“Se avete compreso la lezione proseguiamo, altrimenti fate delle domande”, sono tante le volte in cui il nostro comportamento dipende da una condizione che dobbiamo verificare. Questo è vero in informatica, ma anche nella vita e in classe.

Pt 6 - Finché/finché non
Cosa ha a che fare una calcolatrice meccanica di fine ‘800 con il Coding? Lo scopriamo in questa puntata, dove impareremo ad eseguire ripetutamente istruzioni finché non abbiamo raggiunto il nostro scopo.

Pt 7 - Procedure e funzioni
Se spieghiamo qualcosa di nuovo diamo un nome al concetto che abbiamo introdotto e da quel momento in poi vorremmo poterlo riusare senza doverlo rispiegare ogni volta. In informatica esistono le procedure, che possono essere descritte una sola volta e poi applicate ogni volta che servono. E a scuola?

Pt 8 - Parametri e Variabili
Se insegnate ai vostri alunni a disegnare un quadrato, vi aspettate che lo sappiano disegnare di qualsiasi dimensione, perché la lunghezza del lato è un parametro che specificate di volta in volta. In questa puntata scopriremo che parametri e variabili sono ovunque!

Pt 9 -Ricorsione
Quale processo applichiamo quando ci troviamo a dover mettere in ordine di altezza un gruppo di persone? La ricorsione! Senza la ricorsione, che ci aiuta a ridurre la dimensione del problema fino a trovare la soluzione, non funzionerebbero internet, i navigatori satellitari e gran parte delle cose che utilizziamo quotidianamente.

Pt 9- Debugging
Ci sono due ottime ragioni per guardare attentamente il codice: fare debugging, per trovare e correggere errori di programmazione, e riusarlo, per fare innovazione partendo da ciò che già esiste. Guardare il codice di un programma è un po’ come guardare il ragionamento che ha fatto chi lo ha scritto. Il debugging e il riuso sono il tema dell’ultima tappa di questo avventuroso viaggio nel Coding a scuola con Alessandro Bogliolo.


STUDENTI

Pt 1 - Introduzione - Studenti
Avete mai pensato seriamente di creare un nuovo videogioco o di realizzare un’idea? Il coding vi offre gli strumenti per farlo. Vediamo come usarlo in classe con i vostri insegnanti.

Pt 2 - Comandi e Istruzione
Un viaggio alla scoperta delle azioni elementari che eseguiamo ogni giorno, a casa e a scuola, e delle istruzioni che le descrivono.

Pt 3 - Sequenza
Se consideriamo ogni istruzione come un mattone, mettendole insieme nel giusto ordine possiamo anche costruirci una casa! Da qui partiamo per avventurarci con giochi di carte e gite turistiche nel mondo delle istruzioni in sequenza.

Pt 4 - Ripetizione
Quando camminiamo ripetiamo tante volte gli stessi passi. Ma anche cantando, disegnando, e in tante attività quotidiane ripetiamo più volte le stesse azioni. I computer in questo sono bravissimi, perché sono veloci e non si annoiano. Per fargli ripetere più volte la stessa cosa usiamo un’istruzione speciale.

Pt 5 - Se/altrimenti
Le nostre azioni dipendono da situazioni esterne che dobbiamo verificare. Un esempio? “Se piove andiamo al cinema, altrimenti andiamo a fare una passeggiata”. Se/Altrimenti viene applicato anche in classe e in informatica.

Pt 6 - Finché/finché non
Quante sillabe ci sono nel verso di una poesia? Contare sembra un’operazione elementare, ma richiede la capacità di eseguire una ripetizione condizionata. Vediamo di cosa si tratta.

Pt 7 - Procedure e funzioni
Cosa intende l’insegnante quando vi chiede di leggere una frase? Si riferisce a un’azione che vi ha spiegato una volta per tutte e che ora sapete svolgere quando vi viene richiesto. Anche i computer funzionano così: se definiamo una procedura la eseguono ogni volta che glielo chiediamo senza bisogno che gliela rispieghiamo.

Pt 8 - Parametri e Variabili
Chi sa disegnare un quadrato di 4 quadretti lo sa disegnare anche di 5, o di 6. Questo perché la procedura per disegnare il quadrato è sempre la stessa. Quello che cambia è il parametro che descrive la lunghezza del lato.

Pt 9 - Ricorsione
Guardando un albero spoglio ci accorgiamo che ogni suo ramo assomiglia a un albero più piccolo. In natura questa è una struttura auto-simile, che si ritrova anche in molti problemi. Vediamo come sfruttarla proprio per risolvere problemi apparentemente complessi.

Pt 10 - Debugging
Ci sono due ottime ragioni per guardare attentamente il codice: fare debugging, per trovare e correggere errori di programmazione, e riusarlo, per fare innovazione partendo da ciò che già esiste. Guardare il codice di un programma è un po’ come guardare il ragionamento che ha fatto chi lo ha scritto.


Toolbox 3- Coding
Toolbox3 si è occupato di coding; insegnanti ed alunni iniziano giocando insieme con noti strumenti di coding e finiscono per familiarizzare con i principali elementi della programmazione applicandoli in classe durante le normali attività didattiche.

 Pt 1 - Il duello
Due giocatori si muovono su una scacchiera come robot, esecutori ideali delle istruzioni impartite dalle rispettive squadre. Vince la squadra che porta il proprio robot nella casella occupata dall'avversario. Le strategie di gioco, implementate con le regole del coding, devono adattarsi alla sorte e ai tranelli disposti sulla scacchiera dai game master. Chi vincerà il duello? Principi di coding utilizzati: istruzione elementare non ambigua, repertorio di istruzioni, separazione di ruoli tra programmatore e esecutore, esecuzione in sequenza.

Pt 2 - Cody Word
25 lettere sparse su una scacchiera nascondono parole che le due squadre devono ricomporre guidando i propri robot. Le lettere usate vengono eliminate dalla scacchiera, aumentando le opportunità di movimento libero e riducendo il numero di possibili parole. Vincerà la squadra che utilizzerà il maggior numero di lettere per formare parole di cui sa fare l'analisi grammaticale. Principi di coding utilizzati: esecuzione in sequenza, punto di vista soggettivo dell'esecutore, cifrario a percorso.

Pt 3 - Cody Mat
Quando sulla scacchiera si dispongono numeri e operazioni matematiche, ogni percorso crea un'espressione aritmetica che ogni robot ricostruisce e risolve, guidato dalla propria squadra. Così ad una sequenza di istruzioni di movimento corrisponde un numero, che è il risultato dell'espressione. Solo codificando correttamente il percorso e prevedendo il risultato dell'espressione corrispondente le squadre guadagnano punti. Principi di coding utilizzati: esecuzione in sequenza, punto di vista soggettivo dell'esecutore, cifrario a percorso, simulazione e previsione del risultato.

Pt 4 - Cody Word Puzzle
Una scacchiera vuota, una lavagna piena di parole e una sequenza di istruzioni prestabilita. Sono questi gli elementi che i game master affidano alle squadre, che devono disporre sulla scacchiera il maggior numero possibile di parole lungo i percorsi stabiliti dalla sequenza di istruzioni. Un gioco ad incastro che diventa più difficile ad ogni turno. Principi di coding utilizzati: interpretazione del codice scritto da altri.

Pt 5 - La conquista
Le pedine si muovono eseguendo le istruzioni delle squadre. Al passaggio di ogni pedina la casella assume il colore della squadra, anche se era già stata visitata dalla pedina della squadra avversaria. Il gioco termina quando tutte le caselle sono state visitate almeno una volta, e a quel punto si contano le caselle di ogni colore, per determinare la squadre vincitrice. Principi di coding utilizzati: esecuzione di istruzioni elementari, esecuzione condizionata.

Pt 6 - Competence Cody Games
Il coding è il motore del gioco che conduce le pedine verso il target prestabilito, ma le sfide da affrontare lungo il percorso mettono in campo tutte le competenze disciplinari. Non a caso, il gioco è stato concepito da cento insegnanti riuniti a Urbino durante una Summer School. A moltiplicare i gradi di libertà in mano alle squadre c'è la la possibilità di utilizzare le istruzioni per spostare il target anziché la propria pedina. Principi di coding utilizzati: esecuzione in sequenza, selezione, condizioni.

Pt 7 - Il serpente
I due robot che si muovono sulla scacchiera sono le teste di due serpenti che lasciano dietro di sé code più lunghe ad ogni passo. Così le caselle sulle quali un robot è già passato restano occupate dalla coda e non sono più praticabili. Quando uno dei due robot resta bloccato su una casella senza caselle libere su cui andare, il gioco termina e l'avversario si aggiudica la partita. Principi di coding utilizzati: esecuzione condizionata, ripetizione.

Pt 8 - La mossa universale
In questa puntata sono i code master a scrivere il codice della mossa universale che il robot dovrà eseguire ripetutamente per esplorare la scacchiera alla ricerca del target. Alle squadre resta un compito non meno arduo: prevedere l'esito dell'esecuzione e modificare il terreno di gioco per consentire al robot di raggiungere il target. Principi di coding: ripetizione condizionata, selezione, debugging.

Toolbox 4
Toolbox4 un programma dedicato agli insegnanti per applicare metodologie da utilizzare nelle normali attività didattiche e laboratoriali: dieci puntate sono dedicate al coding e ai linguaggi di programmazione partendo dall'uso degli algoritmi; sette puntate saranno dedicate al coding e ad esempi di applicazioni; otto puntate saranno dedicate alla robotica e a esperienze laboratoriali sviluppate in scuole secondarie di primo e secondo grado.

ROBOTICA

Pt 1 - Che cosa è un robot, storia e futuro
In questa prima puntata scopriremo la storia, il presente e il futuro dei robot, tra scienza e fantascienza. Utilizzando una affascinante metafora biologica, poi, analizzeremo le parti costituenti di ogni robot, scoprendo somiglianze impressionanti con gli organismi viventi prodotto della natura.

Pt 2 - Il software, programmare i robot
In questa seconda puntata scopriremo come si programma un robot, imparando a scrivere e caricare le prime semplici istruzioni robotiche.

Pt 3 - I sensori, i sensi dei robot
Oggi i sensori permettono di raccogliere ogni tipo di informazione dall'ambiente: umidità, luminosità, temperatura, rumore, presenza di ostacoli e molto altro. Facendo un parallelismo tra Tecnologia e Biologia, possiamo dire che i sensori dei robot rappresentano sono paragonabili ai sensi degli organismi viventi. In questa puntata impareremo a programmare alcuni semplici sensori in modo semplice e divertente.

Pt 4 - Gli attuatori, i muscoli dei robot
I robot si muovono e per farlo usano muscoli tecnologici, ovvero gli attuatori, tipicamente rappresentati dai motori elettrici. In questa puntata impareremo che anche questi componenti possono essere programmati per essere attivati in funzione della situazione che devono affrontare, esattamente come succede per i muscoli in biologia. Con la programmazione è possibile scegliere anche la velocità e il verso con cui questi muscoli si muovono. Scopriamo come farlo in modo semplice e divertente.

Pt 5 - Se/allora, il motore della robotica
Come gli esseri viventi, anche i robot leggono i dati ambientali attraverso i sensi (sensori) e poi tramite gli attuatori agiscono sull'ambiente esterno in funzione dei dati raccolti. La logica che scopriremo oggi si chiama "Se/Allora" e governa sia il mondo biologico che quello tecnologico. Ad esempio: SE noi sentiamo freddo alle mani ALLORA mettiamo in moto i muscoli per sfregarle tra di loro. I robot sono in grado di fare lo stesso attraverso la programmazione dei sensori e degli attuatori utilizzando la logica Se/Allora. In questa puntata ci divertiremo a costruire semplici situazioni robotiche basate su tale logica.

Pt 6 - Programmiamo il nostro primo robot
Finalmente dopo tanta teoria e molte prove pratiche dedicate ai singoli componenti, in questa puntata impareremo a programmare il nostro primo vero robot. Si tratta di una piattaforma robotica ludica e facilmente programmabile con un foglio di carta e semplici pennarelli colorati. Partiremo con l'osservazione del nostro piccolo amico per riconoscerne le parti fondamentali, in particolare i sensori e i motori e poi passeremo a programmarlo per fargli svolgere semplici ma divertenti esercizi robotici.

Pt 7 - Costruiamo il nostro primo robot
Progettare e poi costruire un robot è davvero un'attività educativa divertente, ricca di spunti didattici: la mente e la mano lavorano insieme e guidano l'apprendimento che, obbligatoriamente, passa dall'esperienza, dai tentativi e dall'errore, come prevede ogni corretto approccio scientifico e laboratoriale. La progettazione e la costruzione di un robot e poi la sua programmazione per svolgere uno specifico compito sono tutte attività che aiutano gli studenti e i professori ad affrontare problemi complessi che richiedono conoscenze e competenze trasversali: meccanica, geometria, logica, elettronica e informatica.

Pt 8 - Robotica industriale e robotica umanoide
Per concludere il nostro viaggio nell'affascinante mondo della robotica faremo la conoscenza di due robot che diventeranno il simbolo della Quarta rivoluzione industriale che dal 2010 sta ridisegnando il mondo in cui viviamo e in particolare quello del lavoro. Nella prima parte della puntata impareremo a utilizzare e programmare un braccio robotico industriale, robot perfettamente programmati per affiancare gli umani nelle fabbriche, ma anche nelle piccole botteghe artigiane. Nella seconda parte della puntata incontreremo un robot umanoide che impareremo a programmare per fargli ripetere azioni semplici e complesse, per intrattenerci e divertirci.

Il DIGITALE

Pt 1 - Le scelte
Iniziamo l'avventura nel mondo della rappresentazioni digitali indovinando in quale mano sia nascosto un gessetto. Scopriremo che per esprimere la scelta ci basterà un "bit" e che di fronte a scelte ben più complesse ci basterà usare più bit in sequenza.

Pt 2 - Le quantità
Spesso conosciamo il mondo che ci circonda attraverso i numeri. Ogni volta che usiamo un numero, anche solo per decidere a che ora incontrarci, diamo una rappresentazione digitale della realtà.

Pt 3 - La narrazione
Avete mai provato a raccontare una storia senza usare le parole? Noi ci proveremo in classe, ma solo per comprendere l'importanza del linguaggio e scoprirne la natura intrinsecamente digitale.

Pt 4 - Le immagini
E' possibile dettare un'immagine? Ci riusciremo solo dopo aver stabilito un codice che ci permetta di trasformarla in una sequenza di simboli, da dire ad uno ad uno.

Pt 5 - La musica
Le note musicali sono una convenzione. Il suono del LA centrale, utilizzato per accordare gli strumenti, è addirittura fissato per legge. Scopriremo che tutto questo ha a che fare con il digitale.

Pt 6 - I video 
In questa puntata affrontiamo una sfida molto ardua: descrivere un video in modo tanto accurato e rigoroso da poterlo dettare e riprodurre su carta. Il risultato sarà sorprendentemente semplice.

Pt 7 - Ridondanza
QUETSA FRASE E' SBAGILATA, ma non ci facciamo troppo caso e riusciamo a leggerla comunque. Il merito è della ridondanza, che aiuta noi e i computer a correggere gli errori. Vediamo come.

ALGORITMI

Pt 1 - Addizione
Avreste mai pensato che anche per calcolare la somma di due numeri in colonna servisse un algoritmo? Alessandro Bogliolo vi invita a prendere carta e penna e a seguirlo alla scoperta de "GLI ALGORITMI DI OGNI GIORNO".

Pt 2 - Moltiplicazione 
I numeri sono infiniti, eppure ci basta studiare le tabelline dall'uno al dieci per imparare a fare qualsiasi moltiplicazione. Non c'è alcun trucco, ma un solido algoritmo che tutti impariamo a scuola.

Pt 3 - Ordinamento per selezione
Cosa succede se le pagine di un articolo di Alan Turing appena uscite dalla stampante volano al vento? Si può usare un algoritmo di ordinamento per selezione per rimetterle in ordine!

Pt 4 - Ricerca dicotomica
Da che pagina partite per cercare una parola nel vocabolario? Provate a partire da metà e l'algoritmo di ricerca dicotomica vi porterà nel più breve tempo possibile alla parola che cercate.

Pt 5 - Ordinamento per inserimento
Ci sono casi in cui dobbiamo mettere in ordine cose che non abbiamo ancora e si presentano ad una ad una. La soluzione è inserirle nella posizione giusta, ma dobbiamo trovarla e assicurarci che ci sia spazio, a meno di non usare una lista.

Pt 6 - Alberi binari
Se dovessimo immaginare una cosa semplice da trovare non penseremmo certo ad una foglia nella chioma di un albero. Eppure gli alberi sono strutture nelle quali ci si muove agilmente alla ricerca di ciò che cerchiamo.

Pt 7 - Cammini minimi
Come facciamo a trovare la strada più breve per raggiungere un luogo? Possiamo usare un navigatore o fare di testa nostra, ma non possiamo rinunciare ad usare un algoritmo.

Pt 8 - L'algoritmo della rete
Le informazioni in Internet passano di nodo in nodo per permetterci di comunicare con chi vogliamo. Ma come fanno a trovare la strada? Chi conosce la struttura della rete? Tutti e nessuno.

Pt 9 - Divide et impera
Può una strategia politica aiutarci ad affrontare problemi di grandi dimensioni? Se la strategia è il "Divide et impera" possiamo applicarla per sviluppare algoritmi ricorsivi.

Pt 10 - Eulero e il commesso viaggiatore
Avrete senz'altro provato a disegnare una casetta stilizzata senza staccare la penna dal foglio, ma forse non sapete che se il disegno si complica il problema diventa tra i più difficili da risolvere, anche con un buon algoritmo


Programma il Futuro
Il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, ha avviato a partire dall’anno scolastico 2014-15 il progetto Programma il Futuro, in collaborazione con il MIUR – Ministero dell’Istruzione, Università e Ricerca. L’obiettivo è fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica. L’Italia è uno dei primi Paesi al mondo a sperimentare l’introduzione strutturale nelle scuole dei concetti di base dell’informatica attraverso la programmazione, usando strumenti di facile utilizzo e che non richiedono un’abilità avanzata nell’uso del computer. Il MIUR all’inizio di ogni anno scolastico invita le scuole alla partecipazione. Il progetto, coordinato da Enrico Nardelli, professore ordinario di Informatica presso l'Università “Tor Vergata” di Roma. è stato riconosciuto come iniziativa di eccellenza europea per l’educazione digitale nell’ambito degli European Digital Skills Awards 2016.
Ecco una serie di approfondimenti a riguardo:

Enrico Nardelli. Programma il futuro. Informatica nelle scuole

L`informatica come materia didattica sin dalla scuola primaria

Alla scoperta dell`informatica