Want to make creations as awesome as this one?

Transcript

Piccolo manuale di istruzioni per introdurre il Coding a scuola senza essere esperti

Antonella Iannascoli

+ info

Introduzione

Lo scopo è lo sviluppo del pensiero computazionale. La motivazione è legata principal-mente a due fatti: • oggi è diventato ineluttabile il rapporto quotidiano con i dispositivi digitali • già oggi e sempre più nel futuro ogni lavoro e professione avrà una sua controparte di-gitale.

Il coding incide su vari ambiti cognitivi:

• la realizzazione di un programma sviluppa la logica e l’abitudine al rigore • si impara la forma cioè il linguaggio • si acquisisce la capacità di astrarre • si sviluppano capacità di analisi e di sintesi per poter definire un algoritmo efficace • si sviluppa la capacità di dominare la complessità • si sviluppa la creatività

Alto è il valore pedagogico: fare esercizio di coding significa insegnare a individuare degli obiettivi e a pianificare strategie per raggiungerli.

Il linguaggio

Ogni disciplina ha un suo specifico linguaggio. Nel caso della computabilità, il linguaggio è il coding; esso va utilizzato conoscendone sintassi e semantica, per istruire la macchina attraverso una lingua che sia nota alla macchina. I termini non si possono usare a caso, così come non è possibile mutuare la termino-logia specifica di una disciplina in quella di un’altra. E’ quindi molto formativo focalizzare sull’importanza che ha un corretto uso delle strutture del linguaggio specifico.

Creatività

Ogni progetto è qualcosa che ancora non c’é. Non c’è ripetitività di azioni o riproduzione di prassi o con-tenuti. L’algoritmo non è qualcosa che esiste a priori e che si può “imparare”; piuttosto è una sfida ad usa-re le proprie conoscenze per esplorare ciò che già c’è e infine per evolvere in qualcosa di nuovo. L’obiettivo di trovare una soluzione originale, diventa lo stimolo per approfondire, procedere e creare una “invenzione”.

Dinamica delle lezioni

+ info

La connessione

Se si ha una connessione Internet in classe o in laboratorio è consigliabile fruire online di uno dei validissimi siti disponibili; questa, se la connessione lo consente, è una scelta preferibile perché, oltre all’ambiente per programmare, consente di accedere ai lavori degli altri avendo così a disposizione moltissimi esempi e salvare nel cloud per poter riprendere il lavoro da casa oppure condividerlo con compagni e con l’insegnante.

+ info

Setting d'aula

Il setting d’aula dipende dalla modalità con cui si progetta di far lavorare gli alunni. Si può far lavorare gli sia in gruppo che individualmente.

Il remix

Una operazione che stimola enormemente la logica e la capacità di investigare, abitua all’analisi e al senso estetico è quella del remix. Remixare significa analizzare un programma solitamente fatto da altri e “metterci le mani”.

Attività di coding

A scuola si può procedere in due modi: • gli alunni usano attività già pre-confezionate come quelle contenute in piattaforme e in questo caso si tratta più che altro di un allenamento al codice e alle strutture della pro-grammazione • gli alunni costruiscono il proprio programma, che sarà poi mandato in esecuzione da lo-ro stessi o da altri. In questo secondo caso, oltre alle abilità di coding sono coinvolte le altre fasi della programmazione, dalla definizione del problema alla sua traduzione in un algoritmo efficiente ed efficace.

Passi fondamentali del processo sono

analisi del problema

definizione di algoritmo

realizzazione del programma

test e valutazione dell'efficienza

Analisi del problema

Il docente propone un problema (semplice) e lo analizza assieme alla classe.

Definizione dell’algoritmo

Il docente suggerisce di procedere in questo modo • scomposizione del problema in problemi più semplici • definizione di un algoritmo

Realizzazione del programma

Ogni gruppo o ogni alunno in autonomia, esegue questi compiti: • scrittura del programma con commenti • fase di test (di verifica della bontà dell’algoritmo) • debugging: se il test evidenzia errori nell’algoritmo, si dovrà procedere alla ricerca degli errori.

Test e valutazione dell’efficienza

Nuovamente in plenaria oppure con attività peer-to-peer la classe presenta i prodotti, fa provare i programmi per un ulteriore test, effettua una valutazione dell’efficienza. In questa fase diven-ta evidente come la scrittura del codice sia qualcosa di molto creativo, personale, variegato.

Scratch

+ info

Scratch

Scratch è il linguaggio sviluppato dal MIT (Massachussets Institute of Technology) per la programmazio-ne visuale. E’ il precursore di tanti altri linguaggi molto simili ed è tuttora il più usato al mondo.

Scratch

E’ un ambiente sviluppato esclusivamente per la scuola ed è open source. Questo è il link di accesso: https://scratch.mit.edu

Scratch

Non è necessaria la registrazione per poter cominciare: basta cliccare sul tasto Crea. Il consiglio è, però, di iniziare comunque dalla registrazione: questo consentirà di poter salvare nel cloud e poter successiva-mente rivedere il programma elaborato.

Scratch

Scratch utilizza la programmazione visuale: le istruzioni si presentano come blocchi colorati che, trascina-ti, vanno a generare il “listato” del programma. Il fatto di avere istruzioni dal significato intuitivo ha il van-taggio di non dover imparare un linguaggio complicato e di non fare errori di battitura o di sintassi. Ogni blocco è un insieme di istruzioni pre-compilate in un codice prossimo al linguaggio-macchina. I linguaggi a blocchi visuali proposti a scuola, appartengono alla tipologia di programmazione detta “ad oggetti”. Questo significa che ogni oggetto, per esempio un personaggio, è programmato per eseguire le istruzioni che gli competono.

E’ errato pensare che poiché la programmazione visuale dispone di questi blocchi intuitivi possa servire solo a scrivere programmi semplici. In realtà dispone di tutte le strutture fondamentali della programmazione:

• Sequenza: eseguire istruzioni in ordine progressivo • Ciclo: eseguire lo stesso blocco di istruzioni per un certo numero di volte o finché permane una condizione • Condizione: se è vera una condizione viene eseguito un blocco di istruzioni, se è falsa un altro blocco • Eventi: quando succede qualcosa viene eseguito un blocco di istruzioni • Dati e operatori: variabili che contengono informazioni da salvare all’interno del programma, possibilità di operazioni matematiche, logiche e altro • Temporizzazione e interazione: poiché si tratta di una programmazione per oggetti, sono pre-senti strategie per l’interazione fra gli oggetti o con l’utente esterno, e di gestione di un ordine tem-porale. Le interazioni con l’esterno possono coinvolgere la tastiera, il microfono o anche sensori.

Alcuni trucchi per far funzionare le cose

• Far registrare gli studenti su Scratch in modo che possano terminare il lavoro a casa o riprenderlo a scuola in una lezione successiva; in questo modo il docente può anche monitorare lo stato di avanzamento di ogni ragazzo

• Attenzione ai suoni: potrebbero sovrapporsi in aula e creare confusione, per questo si potranno usare, se disponibili, dispositivi audio individuali; in alternativa conviene eliminare i riferimenti ai suoni di sottofondo.

• Se si lavora in gruppo il docente assegnerà dei ruoli, tra cui quello dell’addetto alla documentazio-ne che compilerà eventuali schede appositamente predisposte e caricherà i link in piattaforma.

• Per trovare progetti che hanno appositamente dei bug cercare nella comunità con parola chiave “debug”.

Un ringraziamento ad AssoEPICT per gli spunti digitali: questo prodotto é una sintesi non esaustiva del Manuale Modulo 12 della certificazione.

Il lavoro di gruppo è sempre valido, è un vantaggio perché richiede meno device; ma soprattut-to per le innumerevoli qualità delle attività fra pari, poiché le attività di progetto, realizzazione e verifica del codice diventano motivo di allenamento anche dello stile di apprendimento inter-personale: gli studenti indagano insieme il problema, negoziano su come scrivere il codice in modo ottimale, testano e discutono fra loro su cosa è da modificare in caso di errore. D’altro canto, a volte, prima che il programma “giri” si fanno molti tentativi, si prova e riprova fat-to che risulta senz’altro più efficiente se eseguito in autonomia.

. Le caratteristiche che hanno reso così diffuso questo linguaggio e adatto all’attività didattica sono la sua immediatezza dell’interazione (i blocchi sono già suddivisi per caratteristica e contengono l’istruzione) e la possibilità di effettuare subito il controllo della sequenza immessa, vista la presenza del personaggio (lo sprite) che può eseguire subito l’istruzione anche se la scrittura del programma non è ancora finita. Scratch è un ambiente dotato di due caratteristiche fondamentali: essere di facile efficacia quando si è principianti ma permette la scrittura di algoritmi anche sofisticati.

Nei contesti attuali, in cui la tecnologia dell’informazione è così pervasiva, la padronanza del coding e del pensiero computazionale possono aiutare le persone a governare le macchine e a comprenderne meglio il funzionamento, senza esserne invece dominati e asserviti in modo acritico.

Le webapp sono, generalmente, del tutto indipendenti dal tipo di dispositivo digitale; la sola ec-cezione è quando si usano istruzioni che accedono ai sensori del cellulare o del tablet e, quindi, possono dipendere dai singoli sistemi operativi.I siti concepiti specificamente per la scuola non richiedono registrazione per poter creare dei programmi, mentre la richiedono per salvare. La registrazione non richiede dati personali, anzi a volte viene esplicitamente suggerito che il nickname scelto non sia il proprio nome.