(Programma il Futuro) dell’informatica. Esattamente com’è ... · La programmazione è il modo...

36
“Nel mondo odierno i computer sono dovunque e costituiscono un potente strumento di aiuto per le persone. Per essere culturalmente preparato a qualunque lavoro uno studente di adesso vorrà fare da grande è indispensabile quindi una comprensione dei concetti di base dell’informatica. Esattamente com’è accaduto in passato per la matematica, la fisica, la biologia e la chimica.” (Programma il Futuro) Elena Moretti 2016

Transcript of (Programma il Futuro) dell’informatica. Esattamente com’è ... · La programmazione è il modo...

“Nel mondo odierno i computer sono dovunque e costituiscono un potente strumento di aiuto per le persone. Per essere culturalmente preparato a qualunque lavoro uno studente di adesso vorrà fare da grande è indispensabile quindi una comprensione dei concetti di base dell’informatica. Esattamente com’è accaduto in passato per la matematica, la fisica, la biologia e la chimica.” (Programma il Futuro)

● Elena Moretti 2016

Il pensiero computazionale ● Il pensiero computazionale è un processo mentale per la

risoluzione di problemi, dato dalla combinazione di metodi e di strumenti, che utilizza la logica dei computers.

● Metodi (algoritmi) e strumenti (coding-programmazione) sono utili per affrontare molti tipi di problemi in molte discipline.

● Il pensiero computazionale è una disciplina trasversale, non solo per informatici o per l’area logico-matematica, e le scuole sono il posto migliore per trasmetterlo a tutti.

“Il meglio dell’apprendimento lo si ha quando si crea qualcosa…”

● Elena Moretti 2016

❏ La programmazione è il modo in cui noi dialoghiamo con un

oggetto (programmabile).

❏ Ci immedesimiamo nell’oggetto e gli diamo istruzioni utilizzando il

suo linguaggio.

❏ I bambini parlano con gli oggetti (bambole, macchine, peluche,...)

come se fossero delle persone.

❏ Svolgono già un processo mentale di immedesimarsi nell’altro.

Il pensiero computazionale nel bambino

● Elena Moretti 2016

Il pensiero computazionale ci permette di compiere questa

astrazione (immedesimarsi nell’oggetto e utilizzare il suo linguaggio) e

di passare da un’intuizione ad una procedura per risolvere il

problema.

Algoritmo(procedura)

Il pensiero computazionale nel bambino

● Elena Moretti 2016

Rappresenta una sequenza finita di operazioni. I passaggi di un algoritmo devono essere finiti (in numero definito) e semplici (non scomponibili

ulteriormente). La procedura sequenziale si può applicare e ripetere a piacere.

Il computer, per risolvere problemi, applica un algoritmo ai dati che andiamo ad immettere secondo le seguenti fasi:

1. i dati iniziali vengono inseriti nel computer2. i dati inseriti vengono elaborati secondo una successione finita di istruzioni

che il computer esegue3. il computer produce dei risultati in base ai dati e al tipo di algoritmo che li ha

elaborati

L’algoritmo

● Elena Moretti 2016

Rappresentazione grafica, chiara e comprensibile, di un algoritmo. Il diagramma di flusso è utilizzato per programmare i calcolatori e si può anche chiamare diagramma a blocchi, diagramma

logico o flow chart.

● Come si rappresenta un diagramma di flusso:

1- INPUT - comunicare al computer che si sta iniziando una sequenza di azioni

2- ELABORAZIONE - definire in modo chiaro e in ordine le istruzioni che deve eseguire

3- OUTPUT - comunicare al computer quando terminare le istruzioni da eseguire

Il diagramma di flusso (flow chart)

● Elena Moretti 2016

● Elena Moretti 2016

Flow chart a scuola

Questo è un esempio di un algoritmo che presento ai miei alunni quando

analizziamo le varie operazioni matematiche.

La procedura di calcolo è un algoritmo che va eseguito in ordine altrimenti l’

operazione non è svolta correttamente.

● Elena Moretti 2016

Algoritmi nascosti...

Eseguire in sequenza uno schema chiaro, semplice e definito equivale ad utilizzare un

algoritmo (nel vero senso della parola).

Il passaggio successivo non si può compiere se prima non si è eseguito il precedente...

Origami

● Elena Moretti 2016

● Sequenza: elenco di istruzioni che vengono eseguite una di seguito all’altra come indicato dal programmatore

● Selezione: scelta fra due percorsi (if...then...else) tramite una variabile booleana (vero/falso, I/O, true/false)

● Iterazione: blocco di istruzioni che vengono ripetutamente eseguite fino a che una certa condizione non cambia stato non cambia

è la base della programmazione

Teorema di Böhm-Jacopini

● Elena Moretti 2016

● Un algoritmo viene eseguito solo se è scritto in una forma comprensibile per il destinatario

● Se il destinatario è una macchina (computer) il linguaggio usato deve seguire regole sintattiche rigorose per rendere l’algoritmo privo di ambiguità

● Il linguaggio di programmazione è il tramite che permette di interfacciare l’uomo (linguaggio naturale) con la macchina (linguaggio macchina).

I linguaggi di programmazione

● Elena Moretti 2016

1. Il linguaggio macchina è binario: fatto solo di 0 e 1 ed è difficile da usare

2. I linguaggi di programmazione usano istruzioni scritte in inglese che poi vengono tradotte automaticamente in linguaggio macchina: sono i linguaggi che usano i programmatori

3. I linguaggi visuali consentono di comporre graficamente le istruzioni: sono immediati e di facile utilizzo per tutti

I linguaggi di programmazione

Python è un linguaggio di programmazione semplice e di facile utilizzo, la sua sintassi di base e lo stile di scrittura sono molto lineari. Dispone comunque di strumenti e funzioni avanzate che consentono di creare applicazioni complesse.

www.python.it● Elena Moretti 2016

I linguaggi visuali sono linguaggi che, senza l’onere di imparare linguaggi di

programmazione, ci permettono di programmare (coding).

Immediatamente utilizzabili

Poche istruzioni concatenabili con cui si può fare comunque tutto

I linguaggi visuali

www.scratch.mit.edu

● Elena Moretti 2016

Pair Programming

Il pair programming (letteralmente "programmazione in coppia") è una tecnica agile di sviluppo del software nella quale due programmatori lavorano insieme a una postazione di lavoro.

1. Uno dei due, indicato come "conducente" ("driver") scrive il codice; 2. l'altro, detto "osservatore" ("observer") o "navigatore" ("navigator"), svolge un ruolo di

supervisione e di revisione simultanea del codice.

Il conducente ha l'obiettivo principale di portare a termine una soluzione funzionante del problema in considerazione, mentre al navigatore è lasciato il compito di segnalare errori del conducente o proporre strategie alternative di soluzione.

● Elena Moretti 2016

https://www.ncwit.org/resources/pair-programming-box-power-collaborative-learning

Questo approccio significativo migliora le competenze di programmazione e aumenta la passione per l'informatica. Durante la programmazione a coppie, gli studenti lavorano insieme portando avanti regolarmente il compito assegnato. Il driver (conducente) controlla il mouse e la tastiera, mentre il navigator (navigatore) fa proposte, trova gli errori, fa domande. I ruoli vengono poi alternati per apprenderli entrambi.

Programmare in coppia:

1. Migliora la capacità di memoria e le prove degli studenti2. Aumenta la fiducia in se stessi degli studenti3. Sviluppa le capacità critiche4. Richiede il minimo sforzo per il personale del corso5. Introduce gli studenti all'ambiente lavorativo presente nel mondo reale

Pair Programming

● Elena Moretti 2016

● Far utilizzare le postazioni e far svolgere le attività a coppie di bambini stimola lo spirito collaborativo e cooperativo (pair programming) per arrivare ad una soluzione comune del problema

● Un requisito fondamentale di un programmatore è la capacità di correzione ed autocorrezione (debugging), la capacità diagnostica di riconoscere un errore e correggerlo.

● Lavorare in coppia. Le ricerche dimostrano come gli studenti imparino meglio attraverso la programmazione in coppia, condividendo un computer e lavorando insieme. Incoraggiate i vostri studenti a lavorare insieme!!!

Pair Programming

● Elena Moretti 2016

Pensiero creativo

● Il pensiero computazionale è il metodo che ci permette di creare un procedimento.

● Il coding è lo strumento più immediato che ci permette di dare vita alle nostre idee (far fare alle cose qualcosa di nuovo che nessun altro ha mai fatto o pensato)

“Il lato scientifico-culturale dell'informatica, definito anche pensiero computazionale, aiuta a sviluppare competenze logiche e capacità di risolvere problemi in modo creativo ed efficiente, qualità che sono importanti per tutti i futuri cittadini. Il modo più semplice e divertente di sviluppare il pensiero computazionale è attraverso la programmazione (coding ) in un contesto di gioco.” (Programma il futuro)

● Elena Moretti 2016

Il MIUR, in collaborazione con il CINI – Consorzio Interuniversitario Nazionale per l’Informatica, ha avviato questa iniziativa (che fa parte del programma #labuonascuola) con l’obiettivo di fornire alle scuole una serie di strumenti semplici, divertenti e facilmente accessibili per formare gli studenti ai concetti di base dell'informatica.

Partendo da un’esperienza di successo avviata negli USA che ha visto nel 2013 la partecipazione di circa 40 milioni di studenti e insegnanti di tutto il mondo, l’Italia sarà uno dei primi Paesi al mondo a sperimentare l’introduzione strutturale nelle scuole dei concetti di base dell’informatica attraverso la programmazione (coding ), usando strumenti di facile utilizzo e che non richiedono un’abilità avanzata nell’uso del computer.

www.programmailfuturo.it

www.code.org

Programma il futuro

Attività online...

● Elena Moretti 2016

L'Ora del Codice è un movimento globale che coinvolge decine di milioni di studenti in più di 180 nazioni. Chiunque, in ogni parte del mondo, può organizzare un'Ora del Codice. Esercitazioni di un'ora sono disponibili in oltre 40 lingue diverse. Non è necessaria alcuna esperienza. Da 4 a 104 anni.

L'Ora del Codice è la modalità base di avviamento al pensiero computazionale consistente nello svolgimento di un'ora di attività.

Si suggerisce che questa attività avvenga nelle settimane 10-18 ottobre 2015 oppure 7-13 dicembre 2015, in concomitanza con analoghe attività in corso in tutto il mondo.

La puoi svolgere con una lezione tradizionale, denominata Pensiero Computazionale, oppure con una qualunque delle 8 lezioni tecnologiche proposte seguendo le indicazioni per scegliere il corso appropriato all'età degli studenti.

Hour of Code

● Elena Moretti 2016

198’473 eventi in tutto il mondo

● 11028 eventi in Italia● Elena Moretti 2016

Attività unplugged...

CodyRoby

http://codeweek.it/cody-roby/

CodeWay

http://codeweek.it/lm05-codyway/

http://www.programmailfuturo.it/

● Elena Moretti 2016

E’ un linguaggio di programmazione semplice, veloce, divertente e facile da imparare elaborato nel 2007 da un gruppo di ricercatori del MIT (Massachussetts Institute of Technology) e destinato a giovanissimi programmatori (tra gli 8 e i 16 anni).

Si impara a programmare con Scratch creando storie interattive, giochi e animazioni multimediali. Non occorre conoscere la programmazione formale perchè la realizzazione di un’applicazione avviene in una modalità completamente grafica.

Scratch

● Elena Moretti 2016

● Scratch è un linguaggio (visuale) di programmazione più elaborato rispetto alle attività proposte da Programma il Futuro.

● Lavora utilizzando gli Sprite (il gattino è di default), oggetti grafici che possono assumere qualsiasi aspetto, e dei blocchi (movimento, aspetto, suono, ecc. ) che fanno interagire con lo sprite scelto.

● Si può utilizzare online, registrandosi ad un sito dedicato: si crea un account personale in cui si salvano i propri lavori e si apportano modifiche ai lavori di altri (remix: incoraggiamento e condivisione con la comunità)

Scratch

● Elena Moretti 2016

● Elena Moretti 2016

Area di Editing

Area Stage

Area Sprite/Sfondi

Area StrumentiTools

Applicazioni per tablet

● Elena Moretti 2016

● Elena Moretti 2016

CoderbotCoderBot è un robot orientato alla didattica.

L'obiettivo principale del progetto è realizzare un robot in grado di essere programmato da bambini dai 6 anni in avanti, e che rimanga interessante e offra spunti per l'apprendimento a ragazzi fino ai 14 anni (e oltre).

E' un veicolo con due ruote motrici anteriori indipendenti e un terzo punto di appoggio posteriore costituito da una sfera libera.

E' basato su Raspberry PI, un computer completo (CPU, GPU, audio, memoria RAM e flash). Alla scheda principale è collegata una videocamera, una scheda di controllo per i due motori (DC oppure servo) e un adattatore wifi. L'audio è amplificato tramite un altoparlante autoalimentato.

CoderBot è programmabile tramite un linguaggio a blocchi (blockly https://blockly-games.appspot.com/?lang=it) specifico per bambini dai 6 anni in avanti.

Il robot è controllabile da qualsiasi dispositivo che sia in grado di connettersi a una rete wifi e dotato di un browser compatibile con html5.

http://www.coderbot.org/it/

● Elena Moretti 2016

Realizzazione in compensato delle pareti del CoderBot.

Ideazione e realizzazione di decorazioni.

Successivamente assemblaggio e

programmazione tramite Blockly.

Progetto realizzato dalle classi terze della scuola primaria “Villaggio Nuovo” di Rimini.

● Elena Moretti 2016

Coderbot

Bee-bot è un’ape che si muove eseguendo i comandi che gli vengono dati.

Questo robot a forma di ape è un strumento

didattico ideale per gli alunni della scuola materna.

È in grado di memorizzare una serie di comandi

base e muoversi su un percorso in base ai comandi

registrati.

Bee-Bot

● Elena Moretti 2016

Esiste l’App per la Bee-Bot che permette di eseguire i percorsi.

E’ una strumentazione costosa, che però si è rivelata didatticamente utile e divertente, di semplice utilizzo ma che necessita della sorveglianza continua dell’adulto.

Si può acquistare all’interno del progetto degli Atelier creativi tecnologici.

Con i punti della raccolta Conad Insieme per la scuola si possono richiedere Dash and Dot due robottini programmabili più complessi di Bee-Bot ma utilizzabili col medesimo scopo

Altrimenti…..

Bee-Bot

● Elena Moretti 2016

…. la trasformiamo in storia e la drammatizziamo con i bambini….

1. Invento una storia semplice con il personaggio Bee-bot (es: l’ape Bee cerca il polline sul fiore, ma per raggiungerlo deve evitare il ragno Spidy che vuole invece mangiarsi Bee)

2. Disegno una griglia su carta (se la disegno sul pavimento i bambini possono travestirsi nei personaggi) e vi posiziono i personaggi statici

3. Identifico due bambini come programmatori (pair programming)4. Faccio loro definire le istruzioni (tramite le carte) che permettono a Bee di

raggiungere il fiore senza essere mangiata da Spidy5. Verifico con loro che con la sequenza di istruzioni (linee di codice) che hanno

definito Bee raggiunge l’obiettivo.

Bee-bot

● Elena Moretti 2016

Bee-bot

● Elena Moretti 2016

Attività sul territorio...

CoderDojo di Rimini

http://coderdojorimini.itAssociazione MakeRn

http://www.makern.it

● Elena Moretti 2016

● Elena Moretti 2016

Elena [email protected]

Inviare mail con documento di partecipazione al corso.

Il docente tutor lo rinvierà validato all’indirizzo dal quale è arrivato.

● Elena Moretti 2016