Predisposizione di esempi pratici e applicabili in classe volti al miglioramento delle competenze logico-matematiche e delle capacità organizzative degli allievi mediante l’uso di software di programmazione con forte grado di interattività, opensource e gratuiti. Si mostrerà come il “Creative Computing” possa agevolare lo sviluppo del pensiero strutturato (computational thinking) assieme al pensiero creativo mediante la programmazione.
Nella seconda lezione vengono mostrati ulteriori esempi per l'utilizzo del coding a scuola ed inoltre modalità e applicativi web utili per lo sviluppo di progetti didattici e non solo.
4. La seguente presentazione è un’ampliamento del primo corso svolto nel 2014: Insegnare a progettare il
proprio apprendimento nato dal mio contributo al “69° carnevale della matematica” con tema:
“Macchine matematiche antiche e moderne” e si sviluppa con ulteriori contributi.
Il mio intervento si è concentrato su esempi pratici, sperimentati durante le mie lezioni, in cui espongo
suggerimenti ed idee su come insegnare ai bambini e agli adolescenti a programmare questa “macchina
matematica” (il computer), in modo che possano da grandi imparare a programmare “macchine
matematiche” più complesse.
L’intento di questo corso, che si svolgerà in 4 lezioni, è quello di mostrare esempi pratici e applicabili in
classe volti al miglioramento delle competenze logico-matematiche e delle capacità organizzative degli
allievi mediante l’uso di software di programmazione con forte grado di interattività, opensource e gratuiti.
Si mostrerà come il “Creative Computing” possa agevolare lo sviluppo del pensiero strutturato
(computational thinking) assieme al pensiero creativo utilizzando il coding (programmazione).
Per contatti ed ulteriori informazioni rimando alle ultime pagine di questa lezione.
Grazie
Ulteriori approfondimenti e risorse a questo corso possono essere trovate sul mio sito personale al
seguente link:
http://www.maffucci.it/
Le slide utilizzate sono suscettibili di variazioni/correzioni che potranno essere fatte in ogni momento.
Prof. Michele Maffucci
Apprendimento e programmazione Introduzione
CC-BY-SA
6. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Programmiamo il robot
Gioco gratuito che introduce i concetti di base della programmazione. I giocatori dovranno esplorare una serie di
labirinti impegnativi.
7. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Selezionare il tipo di utente: educatore, genitore, giocatore - età dei giocatori - e-mail utilizzata per ricevere un
codice che vi permetterà di utilizzare il gioco anche in momenti diversi e ricordare il proprio stato di avanzamento
nel gioco
Programmiamo il robot
8. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Riceverete (potrebbe essere non immediato) una e-mail in cui è indicato il link che vi conduce direttamente al
gioco e alla pagina di inserimento codice.
Programmiamo il robot
9. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Possibilità di avviare il gioco - visualizzare il tutorial - andare ad un determinato livello di gioco
Programmiamo il robot
10. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Il tutorial vi guiderà all’uso dell’interfaccia di programmazione:
Programmiamo il robot
11. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Descrizione dell’interfaccia:
Programmiamo il robot
I pulsanti di controllo indicano dove
far andare il robot. E' possibile
utilizzare i tasti freccia della tastiera
Linea temporale delle azioni che il
robot dovrà eseguire. Nella finestra
nera è possibile vedere una versione
testuale delle azioni
Terminato l'inserimento dei
comandi premere sul pulsante
"GO" oppure premere l'invio
della tastiera
In caso di errore puoi
cancellare tutto e rifare
Obiettivo da
raggiungere
12. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Descrizione dell’interfaccia:
Programmiamo il robot
puoi eliminare le singole azioni
facendo click sulla “x” rossa oppure
cancellando direttamente il comando
nella finestra nera.
Il numero di mosse
che si possono fare
per la risoluzione del
problema.
In alcuni livelli è
possibile aumentare il
numero di mosse.
Tabella segna punti
Mettere in pausa il
gioco
13. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 17: BotLogic
CC-BY-SA
Livello completato!
Programmiamo il robot
Possibilità di:
● andare al livello successivo
● riprovare il livello appena concluso
● saltare il livello successivo
● scegliere un qualsiasi livello
15. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 18: Code Combat
CC-BY-SA
Programmazione e RPG
Code Combat è un RPG (Role-Playing Game - Gioco di Ruolo) strategico caraterizzato dal fatto che l’interazione con i
personaggi avviene inserendo del codice di programmazione. Il gioco è pensato per imparare la programmazione
senza la necessità di leggere guide o seguire lezioni tutto in maniera estremamente divertente. E’ possibile scegliere il
linguaggio di programmazione con cui interagire con i personaggi: Python, JavaScript, CoffeeScript, Clojure, Lua, Io.
Prima di entrare nelle arene multi giocatore si potranno imparare tutte le strategie per scrivere del buon codice di
programmazione.
17. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
Si guadagnano 2 punti
nel momento in cui
viene dichiarata la
propria età. Come si
può notare ogni
indicazione è data
utilizzando linguaggio
matematico e di
programmazione
Soluzione 18: Code Combat
18. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
click sul pulsante rosso per
incominciare a giocare
Soluzione 18: Code Combat
20. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
Possibilità di scegliere il
proprio eroe
Soluzione 18: Code Combat
22. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
Possibilità di scegliere tra 6
diversi tipi di programmazione:
Python, JavaScript, CoffeeScript,
Clojure, Lua, Io.
Soluzione 18: Code Combat
23. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
Ogni volta che si supera un
livello si guadagnano oggetti da
far indossare al proprio eroe
Per incominciare
a giocare
Soluzione 18: Code Combat
25. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Programmazione e RPG
Scrivere i comandi che
permettono di far
muovere il personaggio
Le istruzioni utili per
eseguire le azioni vi
verranno suggerite
Soluzione 18: Code Combat
29. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 19: Snap!
CC-BY-SA
Costruisci i tuoi blocchi
Snap! è un linguaggio di programmazione “drag-and-drop” che reimplementa ed estende il più conosciuto
Scratch. infatti Snap! a differenza di Scratch, consente di costruire i propri blocchi personalizzati (funzioni),
permette di implementare liste, continuazioni e ricorsioni (non presenti in Scratch). E’ possibile realizzare
una programmazione ad oggetti utilissimo ad esempio in applicazioni robotiche.
Snap! può lavorare con la Nintendo Wiimote e LEGO Mindstorms NXT.
Snap! può essere utilizzato con allievi delle scuole medie e superiori.
30. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 19: Snap!
CC-BY-SA
Costruisci i tuoi blocchi
Snap! è completamente Web based, ma non ha tutte le possibilità di condivisione offerte da Scratch.
L’interfaccia di programmazione può essere impostata in italiano. Il manuale di utilizzo può essere
prelevato al seguente link e molte delle funzionalità sono molto simili a Scratch.
32. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 20: Turtle Accademy
CC-BY-SA
Imparare il Logo
Una raccolta di brevi lezioni gratuite per imparare il linguaggio di programmazione Logo. Gli studenti impareranno le
basi della logica di programmazione all’interno di una pagina web. Adatto per scuola elementare e media.
35. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 22: CS Unplugged
CC-BY-SA
Informatica con carta e penna
CS Unplugged è un’insieme di attività
didattiche sperimentali che insegnano
informatica attraverso il gioco
utilizzando carte, corde, pastelli e tanta
attività fisica che porterà i ragazzi
camminare per la classe o a correre in
giardino.
Le attività introducono ai concetti di
base come: numeri binari, algoritmi,
compressione dei dati e molto altro
concetti utilizzati inconsapevolmente
ogni giorno quando si utilizza un
computer.
CS Unplugged è adatto a persone di
tutte le età, dalla scuola elementare
agli anziani.
Unplugged viene usato in tutto il
mondo da oltre 15 anni nelle aule
scolastiche, ma anche in attività
creative/didattiche fuori dalla scuola.
36. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Informatica con carta e penna
Le varie sezioni del libro
(nell’ultima versione) sono
consultabili on-line nella sezione
activities e molte di queste
possono essere prelevate in
formato PDF in italiano, pronte
come unità didattiche da
svolgere in classe.
Soluzione 21: CS Unplugged
37. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Informatica con carta e penna
Il libro nell’ultima versione è tradotto in diverse lingue, ma non in italiano.
L’ultima versione in lingua inglese è prelevabile al seguente link.
Soluzione 21: CS Unplugged
38. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Informatica con carta e penna
Una versione non recente del libro è prelevabile al seguente link.
Soluzione 21: CS Unplugged
40. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 22: Greenfoot
CC-BY-SA
Il mondo degli oggetti
Greenfoot è un software adatto
all’insegnamento e alla sperimentazione della
programmazione orientata agli oggetti e ben si
adatta per un percorso di informatica di base in
istituti tecnici e licei.
● Supporta lo sviluppo di applicazioni
grafiche tramite il Linguaggio di
Programmazione Java™.
● È un software libero e disponibile per tutte
le piattaforme
● È utilizzato per lo sviluppo di giochi
semplici
Sono disponibili 5 diverse versioni: Windows,
MacOS X, Ubuntu, Java per qualsiasi OS,
Stand Alone (avviabile direttamente da chiavetta
USB per Windows).
Un tutorial in lingua italiana può essere
prelevato al seguente link.
42. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 23: App Inventor
CC-BY-SA
Costruisci la tua app Android
App Inventor è un ambiente di sviluppo rivolto al
sistema operativo Android, diffuso su smartphone e
tablet e permette a chiunque, anche i principianti, di
sviluppare applicazioni utilizzando un browser web
mediante qualsiasi sistema operativo (Windows, Mac,
Linux). conta una vastissima comunità di sviluppatori
(più di 3 milioni) è viene largamente usato nelle scuole
per insegnare la programmazione.
App Inventor è un’applicazione creata da Google ma di
proprietà del MIT, (Massachusetts Institute of
Technology).
App Inventor è sviluppato su piattaforma Java, ma non
serve conoscerne il linguaggio per creare applicazioni,
scrivere un programma vuol dire assemblare blocchi di
codice preconfezionati a cui si possono assegnare
"comportamenti" a componenti quali Pulsanti, Sprite,
Sensori e molto altro.
Per far funzionare le proprie applicazioni è possibile
usare un telefono o tablet con S.O. Android, oppure
l'Emulatore fornito da App Inventor.
Il software sviluppato può essere distribuito anche sul
Play Store di Google oppure trasferito diretamente sul
proprio dispositivo Android.
43. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Costruisci la tua app Android
Il sistema di programmazione di App inventor
ricorda molto quello di Scratch pertanto semplice
e divertente per l’allievo soprattutto per la
possibilità di poter utilizzare la propria app sul
proprio smartphone.
L’insegnante potrà trovare sul sito di riferimento
tutte le risorse già pronte, con spiegazioni ed
esercizi, da utilizzare in classe.
Soluzione 23: App Inventor
44. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Costruisci la tua app Android
Nella sezione Resource del sito potrete trovare tutto ciò che vi permette di impostare le vostre lezioni
o apprendere l’uso di App Inventor.
Per incominciare selezionate “Get Started”
Soluzione 23: App Inventor
45. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Costruisci la tua app Android
App Inventor è un’applicazione clooud-base, ciò vuol dire che potete costruire le vostre app
direttamente all’interno del vostro browser con connessione ad internet. Per cominciare potete
collegarvi direttamente al link: ai2.appinventor.mit.edu oppure facendo click sul pulsante arancione
“Create!” presente nell’angolo superiore destro presente in ogni pagina del sito.
Come imparare ad usare App Inventor
Seguire le 4 fasi suggerite per comprendere l’utilizzo di App Inventor:
1. Come configurare il telefono o, se non si dispone di un telefono, come avviare l'emulatore.
2. Panoramica sull’ambiente di sviluppo.
3. Tutorial per principianti, altamente raccomandato è il modo migliore per iniziare la
programmazione in App Inventor.
4. Dopo aver costruito un app, è possibile farla funzionare sul proprio telefono e condividerla con i
propri amici.
Soluzione 23: App Inventor
51. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Costruisci la tua app Android
App Inventor Concept Cards
per APP INVENTOR 2
Dalla sezione Resource > Teach
è possibile accedere alle “schede
App Inventor” che possono
essere utilizzate con gli studenti
e forniscono un modo rapido per
imparare l’uso di App Inventor.
Ogni scheda può essere
stampata, piegato a metà ed
utilizzata per esplorare un
concetto come: timer, suoni,
movimento, matematica, schermi
multipli, colori, ecc…
Soluzione 23: App Inventor
52. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Costruisci la tua app Android
App Inventor Concept Cards
per APP INVENTOR 2
Soluzione 23: App Inventor
54. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 24: Codeacademy
CC-BY-SA
Corsi formali di programmazione
Un corso completo di programmazione di ottimo livello per i linguaggi di programmazione HTML, CSS, JavaScript,
Python, Ruby e PHP. I corsi vengono svolti interamente on-line all’interno di una pagina web e verificati con estrema
accuratezza. Codeacademy ben si adatta ai percorsi di informatica degli istituti tecnici e licei.
56. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Corsi formali di programmazione
Scegliere il proprio percorso di studi
Soluzione 24: Codeacademy
57. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Corsi formali di programmazione
Scegliere il proprio percorso di studi
Soluzione 24: Codeacademy
58. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Corsi formali di programmazione
Scegliere il proprio percorso di studi
Soluzione 24: Codeacademy
59. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Corsi formali di programmazione
Scegliere il proprio percorso di studi
Soluzione 24: Codeacademy
60. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Corsi formali di programmazione
Scegliere il proprio percorso di studi
Soluzione 24: Codeacademy
62. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 25: JS Dares
CC-BY-SA
Creare giochi in JavaScript
Una raccolta di lezioni JavaScript con cui gli studenti potranno imparare la programmazione in JavaScript creando
giochi. L’utilizzo di JS Dares avviene on-line all’interno di una pagina web. Il servizio è completamente gratuito.
64. Prof. Michele Maffucci
Apprendimento e programmazione Soluzione 26: W3 Schools
CC-BY-SA
Imparare il linguaggio del web
Tutorial approfonditi di linguaggi di programmazione utilizzati per la realizzazione di pagine web e applicativi web:
HTML, CSS, JavaScript, XML, PHP e SQL. Include codice di esempio interattivo. Adatto per allievi di scuola superiore.
65. La fase preliminare:
come si progetta?
Alcuni suggerimenti adattabili in ambito didattico
Prof. Michele MaffucciCC-BY-SA
Apprendimento e programmazione
66. Prof. Michele Maffucci
Apprendimento e programmazione Come si progetta?
CC-BY-SA
Organizzare il proprio lavoro
L’azione del CODING è l’azione della
formalizzazione della soluzione di un
problema.
Come si pensa per progettare?
67. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Nella pratica dell’insegnamento spesso prevale il nozionismo e
non si pone attenzione nell’insegnamento delle tecniche di studio
e progetto, dando per innate nello studente queste capacità di
analisi e organizzazione.
Progettare per gli studenti
è cosa complicata
Come si progetta?
69. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Si utilizza il metodo “SVUOTA CERVELLO”,
non è l’unica soluzione, ma per gli
studenti potrebbe essere creativo e
divertente.
...ma allora come si dovrebbe pensare
per progettare?
Come si progetta?
70. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
E’ un metodo che potete utilizzare ogni giorno o quando serve, ma soprattutto
quando siete in fase di progetto a scuola.
Procedimento è molto semplice: fare in
modo che tutto ciò che sia ha nella
mente venga annotato su carta.
Il metodo “svuota cervello”
può essere fatto in un gruppo
o individualmente
Come si progetta?
71. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Scopo
Il metodo è utile quando è indispensabile far nascere
un’idea, per strutturare i pensieri e le attività che
bisogna compiere.
Il risultato del metodo può essere una lista di compiti
(to-do) o una timeline con tutti i compiti da eseguire
organizzati cronologicamente
Il metodo si svolge in 2 fasi
Come si progetta?
73. Metodo 2
“Loop di apprendimento”
Prof. Michele MaffucciCC-BY-SA
Apprendimento e programmazione
74. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Azione
La progettazione avviene mediante quattro fasi cicliche, ciascuna
delle quattro componenti riguardano i metodi, i sistemi e i processi
che voi oppure la vostra organizzazione (ad es. scuola, gruppo
classe, ecc...) deve attuare.
Permette di capire se state apprendendo dalle esperienze passate
(sia di successo che di insuccesso) e se state migliorando.
Il metodo si svolge in 4 fasi
Come si progetta?
75. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Fasi
Raccogliere storie e approfondimenti
Priorità risposte e soluzioni
Sviluppo di riferimento – Valutare le esigenze ed il contesto delle azioni/progetti – trarre
ispirazione
Scegliere le idee da sviluppare – soluzioni da iterare – sviluppare piano di attuazione
Lista indicatori e progressi ottenuti
Valutare le soluzioni attuate – identificare le conseguenze indesiderate
Revisione risultati e loro impatto
Creazione nuove linee di azione – individuare le sfide future – Valutare “risultati/tempo
investito”
Come si progetta?
79. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
“Atomizzare” il problema in componenti più
semplici.
Comprendere il grado di urgenza e di importanza (saper pensare)
di un’attività sia una competenza importantissima per lo studente
che si troverà ad organizzare una vita lavorativa o di studio
piena di impegni.
Come si progetta?
80. Prof. Michele Maffucci
Apprendimento e programmazione
CC-BY-SA
Organizzare il proprio lavoro
Azione
Bisogna disegnare quattro quadranti in cui andranno inseriti i
compiti o le decisioni, in questo modo si potrà decidere il livello di
priorità di ogni compito.
Come si progetta?
84. Prof. Michele Maffucci
Apprendimento e programmazione Project Management a scuola
CC-BY-SA
Organizzare il proprio lavoro
Dare ordine alle proprie idee e gestirle
E’ UN’AZIONE DI CODING.
Programmare (scrivere programmi a computer)
non è l’unico modo per imparare a pensare.
Cosa centra il coding con l’azione
della gestione di progetto?
85. Prof. Michele Maffucci
Apprendimento e programmazione Project Management a scuola
CC-BY-SA
Organizzare il proprio lavoro
Per massimizzare i risultati è
indispensabile trovare strategie e
tecnologie che facilitano l’attività di
progetto e collaborazione tra gruppi.
L’azione di progetto didattica o il
lavoro di gruppo tra insegnanti o
allievi deve essere progettata.
86. Prof. Michele Maffucci
Apprendimento e programmazione Project Management a scuola
CC-BY-SA
Organizzare il proprio lavoro
Consapevolezza del proprio apprendimento.
I saprei prendono forma e si riesce a
comprendere meglio i rapporti tra unità
didattiche, discipline, ecc...
E’ importante visualizzare il processo
che porta alla strutturazione del
proprio progetto.
87. Prof. Michele Maffucci
Apprendimento e programmazione Project Management a scuola
CC-BY-SA
Organizzare il proprio lavoro
Progettiamo e collaboriamo online
Soluzioni informatiche (gratuite), orientate al lavoro di gruppo e
ben si adattano in attività di progetto didattico.
92. Prof. Michele MaffucciCC-BY-SA
Apprendimento e programmazione
● Sir Ken Robinson, Changing education paradigms (11 minuti)
● Jeff Jarvis Ted (17 minuti)
● Dan Meyer, Math class needs a makeover (12 minuti)
● Sugata Mitra, The child-driven education (17 minuti)
● New Brunswick Department of Education, 21st Century Education in New
Brunswick, Canada (6 minuti)
● Clay Shirky, How cognitive surplus will change the world (13 minuti)
● Charles Leadbeater, on innovation (19 minuti)
● Chris Anderson, How web video powers global innovation (19 minuti)