fondamenti Coding - Direzione Didattica "San Giovanni ... · Didattica della programmazione oggi:...

54
L’Informatica nella scuola Linguaggi tools - fondamenti Coding L’informatica e il coding sono gioco, creatività, collaborazione, crescita e sviluppo delle capacità logiche e decisionali.

Transcript of fondamenti Coding - Direzione Didattica "San Giovanni ... · Didattica della programmazione oggi:...

L’Informatica nella scuola

Linguaggi – tools - fondamenti

Coding

L’informatica e il coding sono gioco,

creatività, collaborazione, crescita e

sviluppo delle capacità logiche e

decisionali.

Perché l’informatica adesso

Nuova Scuola:

Introdurre l’informatica dalla primaria

• Modello Inglese: Dal 2013 «England will become the first country in the world to mandate computer programming in primary and secondary schools” fonte Daily Telegragph 2013

• Nel 2014, Barack Obama è passato alla storia come il primo presidente che sa programmare un computer

• Nazioni attive nell’insegnamento della programmazione già dalla primaria: Inghilterra, Estonia, Repubblica Ceca, Israele, Cina, Brasile.

In Italia…

Il documento la Buona Scuola

contiene un intero capitolo, il quarto, dedicato alle competenze che

secondo il governo e il ministro la scuola dovrebbe avere.

Le attuali scelte guardano in tre diverse direzioni:

l’alfabetizzazione digitale fin dalla scuola primaria tramite il coding,

un programma di “digital makers” per i ragazzi delle scuole superiori, e

La formazione degli insegnanti.

Perché l’informatica adesso

• Iniziative nei vari paesi sono generalmente individuali

• Esistono oggi strumenti validi per portare il codice nella

scuola

• Possiamo essere tra le prime nazioni che capiscono questa

esigenza. -> #Labuonascuola (governo Renzi)

Perché Programmare - 1

I metodi caratteristici e gli strumenti intellettuali che costituiscono la base del “pensiero computazionale ” hanno un loro posto naturale nell’educazione degli studenti del 21-mo secolo.

L’insegnamento dell’informatica nella scuola ha le seguenti specificità:

favorisce lo sviluppo della creatività - per la molteplicità di modi che offre per affrontare e risolvere un problema;

Perché Programmare - 2

è costruttiva - la progettazione di algoritmi è un’attività ingegneristica

che produce risultati visibili (anche se nel mondo virtuale)

aiuta a padroneggiare la complessità

imparare a risolvere problemi informatici aiuta a risolvere problemi

complessi in altre aree

sviluppa il ragionamento accurato e preciso - la scrittura di programmi

che funzionano bene richiede l’esattezza in ogni dettaglio

Perché Programmare - 3

dal punto di vista pratico l’informatica è un’abilità utile per gli studenti

perché qualunque lavoro svolgeranno in futuro la componente digitale

sarà importante;

dal punto di vista formativo l’informatica è un validissimo strumento

intellettuale per sviluppare abilità concettuali essenziali che saranno utili

agli studenti, qualunque sia il loro sviluppo professionale.

CODING: Nuovi scenari per la didattica e

l’apprendimento della programmazione

I linguaggi e le persone

• Permettono alle persone di comunicare

• Più linguaggi conosciamo, maggiore è la possibilità di interagire con persone di altre lingue

• Oggi siamo circondati da oggetti digitali in grado di comunicare con noi e di fare (più o meno) quello che gli chiediamo di eseguire.

• Oggetti in grado di parlare e rispondere in maniera intelligente alle nostre richieste.

• Grazie al ruolo principale del microprocessore siamo in grado di comunicare con gli oggetti attraverso istruzioni di un linguaggio di programmazione.

I linguaggi e le cose

Un esempio sono i dispositivi mobili, porta di accesso verso milioni di applicazioni (App). Le app, rappresentano i nostri oggetti digitali di utilità quotidiana, attraverso i quali siamo in grado di lavorare, giocare, comunicare con il prossimo, di svolgere una vita sociale, studiare.

In genere utilizziamo le applicazioni create da altri. In questa ottica siamo utenti utilizzatori e in ottica di mercato dei consumatori.

Consumatori - Accediamo alle cose

Produttori – Programmiamo le cose

• Significa iniziare a pensare, ideare!

• Ciascun oggetto è programmabile con un suo linguaggio. Ecco che abbiamo bisogno di conoscere il «linguaggio delle cose» - Il linguaggio di programmazione

• Scrivere un insieme di istruzioni (programma) in un linguaggio di programmazione in grado di far svolgere alle app qualcosa di utile o di divertente.

• Tutti gli oggetti digitali che ci circondano possono essere programmati.

• Attiva la creatività e il pensiero computazionale

Il Pensiero Computazionale

• Computational Thinking is the thought processes involved in

formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent.

— Cuny, Snyder, Wing

Partendo dal problema o idea, il pensiero

computazionale è la capacità di immaginare

e descrivere un procedimento costruttivo e

algoritmico che porti ad una soluzione

semplice, esaustiva e replicabile in situazioni

simili e che possa essere spiegata a qualcun

altro.

Esempio: ricetta

Chi può imparare a programmare

oggi: Tutti! • La cosa interessante e che oggi tutti possono iniziare ad apprendere i

rudimenti di programmazione sin dalla giovane età: • Bambini

• Giovani

• Adulti (Insegnanti, Genitori, Nonni)

possono imparare a programmare!

Didattica della programmazione: ieri e oggi

Didattica della programmazione oggi:

Cosa è cambiato (1)

• Perché è più semplice apprendere la programmazione? •L’uso di scenari narrativo visuale. Chi apprende è invitato ad animare scenari come in un palcoscenico: animare personaggi, creare storie interattive, fumetti

• I linguaggi visuali: sono il giusto punto di partenza per apprendere i rudimenti di programmazione già dai primi anni di età

• L’utilizzo della metafora dei «tasselli di un puzzle» • le istruzioni sono «tasselli di un puzzle» si compongono

tra loro per dar forma al programma

e rendere visivamente più comprensibile

la combinazione delle istruzioni.

Didattica della programmazione oggi:

Cosa è cambiato (2)

•Le immagini e i tasselli formano i comandi del linguaggio

formale consentono ai più giovani di avvicinarsi alla

programmazione.

Concetti Computazionali

Concetto Descrizione

Sequenza Una serie di passaggi in una azione

Loops Eseguire la stessa sequenza più volte

Parallelismo Far accadere le cose contemporaneamente

Eventi Una causa determina un effetto

Condizioni Prendere decisioni in base alle condizioni

Operatori Espressioni matematiche e logiche

Dati Memorizzare, recuperare ed aggiornare valori

Pratiche Computazionali Pratica Descrizione

Produrre per iterazioni ed

incrementi

Sviluppare una parte per volta, provare e

svilupparne ancora

Testare e rimuovere gli

errori

Essere sicuri che le cose funzionino, cercare e

risolvere gli errori

Riciclare e mescolare Creare qualcosa partendo da materiale creato

da altri

Astrarre e rendere

modulare

Creare qualcosa di grande mettendo insieme

una collezione di piccole parti

I tools a livello internazionale

• Hopscotch is the free iPad app for upper elementary and above.

• Scratch is a programming game that can be downloaded or used on the Web and is supported by MIT.

• Lightbot has a version on just about any platform and even has an online one-hour version. This puzzle game has a free version which lasts an hour but sells full versions on iTunes and Google Play. It teaches planning, testing, debugging, procedures, and loops.

20

I tools a livello internazionale - 2

•Alice is another popular platform with a unique storytelling aspect. You can

use it to create a game, tell a story, or make an animated video.

•Minecraft.edu is an option that lets you install and use Minecraft in the

classroom. While this does require some purchase and setup, Minecraft

seems to be gaining in popularity among educators as an in-house, 3D world-

programming environment that kids love.

Ambienti per la scuola primaria ScratchJr

• Sono ambienti interattivi in grado di offrire percorsi completi anche via Web per l’apprendimento della programmazione anche attraverso il gioco

• Usano le nuove metafore di programmazione

• Tassello di comando

• Immagine per richiamare l’azione o il comando

• Il percorso di apprendimento è incrementale e organizzato a passi. Ciascun passo introduce concetti nuovi o rinforza quelli precedentemente introdotti.

Sono accessibili via web o tramite app per dispositivi mobili

Code.org Hopscotch

Code.org • URL: http://www.code.org

• Età: 7-16

• Gratuita

• Accesso: via Web

• Coinvolgimento: Angry Birds, Anna ed Elsa ed altri personaggi fanno da sfondo alle attività di programmazione

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di programmazione che si arricchiscono via via che si avanza.

• La programmazione avviene attraverso la composizione di blocchi di istruzione in grado di risolvere uno o più quesiti di programmazione.

Code.org

USA: Il progetto Code.Org http://code.org/

Italia: code.org in italiano

26

http://studio.code.org/

Italia: Il progetto Programma il Futuro http://www.programmailfuturo.it/

Italia: Il progetto Programma il Futuro

http://www.programmailfuturo.it/

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.

28

Italia: Il progetto Programma il Futuro

• Ci sono diversi programmi di formazione a seconda della fascia di età e degli

obiettivi di apprendimento

• Lezioni Interattive disponibili via web per familiarizzare con lo strumento

• Una modalità base (denominata "L'Ora del Codice ") Il labirinto

In Italia, nei prossimi 3 anni…

“Programma il Futuro” le varie classi

iscritte alla piattaforma stanno

raccontando le proprie esperienze nello

svolgimento dell’attività inerente al

progetto.

Al momento il progetto è in fase

di sperimentazione e nel prossimo

triennio entrerà a regime

(circolare 29/09/2014).

Kodu Game Lab

• Un ambiente di programmazione per la creazioni di mondi virtuali dove le istruzioni non si esprimono in un linguaggio testuale ma visuale

• La programmazione oltre che con la tastiera e mouse avviene tramite l’ausilio di un controller Xbox o il mouse

• URL: http://www.kodugamelab.com/

• Età: 6 - 13

• Gratuita

• Accesso: Applicazione Windows, App for

Windows store

L’ambiente di kodu Edit Mode Costruire gli elementi

ambientali del mondo (terreno, laghi, montagne, muri, strade etc)

Inserire i personaggi e gli oggetti da programmare

Creazione, salvare un nuovo mondo

La programmazione in Kodu

La modalità di programmazione è visuale: Si utilizzano I tasselli e si compongono come un puzzle per formulare le istruzioni di un programma

Una istruzione ha la forma “When - Do”

L’ambiente di Kodu

Play mode • Tale modalità consente di utilizzare il sistema e testare le funzionalità

programmate.

RoboMind Academy • URL:

https://www.robomindacademy.com

• Età: 7-16

• Gratuiti i livelli base

• Accesso: via Web, tablet, desktop

• Costi annuali: • 5 Euro (studente) • 10 euro (postazione) • 100 (docente e accesso online/offline ad

una postazione accessibile da qualsiasi studente)

• Coinvolgimento: Attività organizzata in scenari di programmazione dove il robot deve essere programmato per svolgere attività

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di programmazione che si arricchiscono via via che si avanza.

• La programmazione avviene attraverso la composizione di istruzioni testuali.

Ambienti per la scuola secondaria • Sono ambienti interattivi in grado di offrire percorsi completi per

l’apprendimento di linguaggi di programmazione.

• Si scrive il codice in un editor.

• Programmazione web client/server side, mobile • Python Javascript, HTML & CSS, PHP Ruby SQL

• Alcuni ambienti organizzano i percorsi didattici in passi. Ciascun passo introduce concetti nuovi o rinforza quelli precedentemente introdotti. Altri utilizzano tutorial con esempi di applicazioni.

• Sono accessibili via web o tramite app per dispositivi mobili

Codeacademy

• URL: http://www.codecademy.com/

• Età: 12-18

• Gratuita

• Accesso: via Web

• Coinvolgimento: Ciascuno studente è coinvolto in esercitazioni dal vivo che consistono nella scrittura di codice.

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di programmazione programmando gli scenari richiesti nello step. Contestualmente ricevono feedback in tempo reale sul codice che viene scritto sull’editor.

• La programmazione avviene attraverso la composizione di istruzioni nel linguaggio oggetto di studio e si avanza risolvendo uno o più quesiti di programmazione proposti nello step.

Codeacademy

Mit App Inventor 2

• URL: http://appinventor.mit.edu/

• Età: da 11+

• Gratuita

• Accesso: via Web con account Google

• Coinvolgimento: Ciascuno studente accede con account google e dispone di un ambiente visuale di programmazione per App android.

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di programmazione programmando gli scenari richiesti nello step. Contestualmente ricevono feedback in tempo reale sul codice che viene scritto sull’editor.

• La programmazione avviene attraverso la composizione di «tasselli» istruzioni. Si dispone di un set di oggetti in grado di accedere a diversi componenti del dispositivo.

SqlZoo

• URL: http://sqlzoo.net

• Età: 12-18+

• Gratuita

• Accesso: via Web

• Tutorial Interattivo su SQL

• Coinvolgimento: Ciascuno studente è coinvolto in 10 tutorial sul linguaggio SQL per la gestione dei database

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di formulazione delle query al database.

• Le azioni vengono effettuate su database predisposti per ciascun tutorial.

Codeavengers

• URL: http://www.codeavengers.com/

• Età: 12-18+

• Gratuita i primi livelli

• Accesso: via Web

• 2 percorsi: Sviluppo web e Computer programming (costruire apps e giochi)

• Coinvolgimento: Ciascuno studente è coinvolto in esercitazioni dal vivo che consistono nella scrittura di codice.

• Pedagogia: Gli studenti procedono per passi acquisiscono velocemente i concetti di programmazione programmando gli scenari richiesti nello step. Contestualmente ricevono feedback in tempo reale sul codice che viene scritto sull’editor.

• La programmazione avviene attraverso la composizione di istruzioni nel linguaggio oggetto di studio e si avanza risolvendo uno o più quesiti di programmazione proposti nello step.

Perché occorre insegnare la programmazione? La situazione europea

Situazione nelle scuole Europee

Didattica della programmazione in Europa

E l’Italia? • Il MIUR ha avviato un progetto in collaborazione con il CINI –

Consorzio Interuniversitario Nazionale per l’Informatica, Programma il Futuro (che fa parte del programma #labuonascuola).

• Possono partecipare tutti, in particolare insegnanti e studenti delle scuole primarie possono registrarsi attraverso il sito di supporto del miur e creare gruppi classe per l’apprendimento della programmazione attraverso il sito Code.org

• Rappresenta l’iniziativa italiana all’ora di codice

Cosa può fare la scuola • Alcune idee

• Attrezzarsi di risorse per la didattica della programmazione http://codeweek.eu/resources/

• Laboratori di programmazione

• Gare di programmazione

• Hackathon (eventi che riuniscono esperti e giovani sviluppatori finalizzati alla creazione di idee in cui il software gioca un ruolo chiave nella risoluzione di un problema reale.

• Proporre una iniziativa alla settimana europea CodeWeek

……

Programmare? • «Guarda sotto la superficie: non lasciarti sfuggire la qualità o il valore intrinseco delle cose». (Cesare Marco Aurelio Antonino Augusto, Pensieri; VI, 3)

Referente regionale

Consiglio Nazionale delle Ricerche Istituto per le Tecnologie Didattiche

Giuseppe Chiazzese Via Ugo La Malfa 153 90146 Palermo

Tel +39 091 6809204 Fax: +39 091 6809239 http://www.itd.cnr.it Skype: Skypezze