Coding e Gamification

Transcript

Coding e Gamification
Coding o Programmazione
Stesura di un programma per computer.
Sviluppo si competenze:
di analisi
di problem posing
di problem solving
2
Gamification o Ludicizzazione
Uso di elementi del gioco in contesti non ludici al fine di migliorare il
coinvolgimenti dei soggetti interagenti:
• obiettivo o missione
• regole
• feedback immediato
• partecipazione volontaria
• meccanismo premiale (punti - livelli - ricompense)
• https://it.duolingo.com/
3
Serious Game
Giochi digitali che contengono elementi educativi.
Sono strumenti formativi.
Obiettivo: sviluppare abilità e competenze da applicare nel mondo reale
attraverso l'esercizio in un ambiente simulato e protetto.
Diversamente dalla Gamification, che contiene solo alcuni elementi mutuati
dai giochi, il Serious Game è gioco a tutti gli effetti.
http://gamfed.com/
4
Perché sperimentare il coding a scuola?
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 una comprensione dei
concetti di base dell’informatica.
Esattamente com’è accaduto in passato per la matematica, la fisica, la
biologia e la chimica.
5
Pensiero computazionale
Non esiste una definizione universalmente condivisa.
Definizione formulata dalla dottoressa J.Wing, direttrice del Dipartimento di
Informatica della Carnegie Mellon University:
“è il processo mentale che sta alla base della formulazione dei problemi e delle loro
soluzioni così che le soluzioni siano rappresentate in una forma che può essere
implementata in maniera efficace da un elaboratore di informazioni sia esso umano o
artificiale”.
Ovvero è lo sforzo che un individuo deve mettere in atto per fornire a un
altro individuo o macchina tutte e sole le “istruzioni” necessarie affinché
questi eseguendole sia in grado di portare a termine il compito dato.
6
Concetti del pensiero computazionale
Sequenza: un’attività può essere espressa attraverso una serie consecutiva di singoli step o
istruzioni.
Ciclo: è un meccanismo per eseguire più volte la medesima sequenza in maniera iterativa.
Evento: il verificarsi di un’azione causa lo scatenarsi di un’altra azione.
Parallelismo: significa eseguire sequenze di istruzioni differenti allo stesso tempo.
Condizione: è la possibilità di prendere decisioni sulla base del verificarsi di determinate situazioni.
Operatore: fornisce supporto per la manipolazione di numeri e stringhe di caratteri.
Dati: sono valori che possono essere salvati, recuperati e modificati durante l’esecuzione di un
programma.
7
Pratiche di pensiero computazionale (1)
Essere incrementali e iterativi: la progettazione è un processo adattativo dove la
pianificazione può cambiare man mano che ci si avvicina alla soluzione del
problema.
Testare e debuggare: individuare problemi ed errori e correggerli.
Riusare (pattern recognition): riconoscere come alcune parti di soluzione possono
essere riusate nella stessa o riapplicate a problemi simili.
Remixare (copiare per migliorare): grazie alla rete e all’ampia disponibilità di lavori di
altri autori, è possibile prendere spunto da idee e codice per costruire cose più
complesse di quelle che si sarebbero potute realizzare per conto proprio, dando
un’ulteriore spinta alla propria creatività.
8
Pratiche di pensiero computazionale (2)
Astrarre: è il processo di riduzione della complessità, per far emergere l’idea
principale mantenendo solo alcuni aspetti e tralasciandone altri.
Modularizzare (scomporre): è il processo che consente di scomporre un problema
complesso in problemi più semplici, per cui risolvendo i problemi più semplici si
risolve anche il problema complesso.
9
Attitudini di pensiero computazionale
Esprimere se stessi: una persona dotata di pensiero computazionale vede
nella tecnologia uno strumento per esprimere se stessi, la propria
creatività e dire qualcosa di sé agli altri.
Essere connessi: saper comunicare e lavorare con gli altri per raggiungere
un obiettivo o una soluzione condivisa.
Porre domande: saper sviluppare una mente vigile grazie alla quale è
sempre viva la domanda di come un oggetto incontrato nel mondo reale
possa funzionare.
10
Coding + Gamification
Il lato scientifico-culturale dell'informatica, cioè il 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.
11
Blokly
Programmazione a
blocchi
link
12
… verso scratch…
I videogiochi sono dei prodotti software e, pertanto, sono realizzati scrivendo
codice con uno o più linguaggi di programmazione.
L’attività è complessa e richiede competenze in svariati ambiti.
Ci vengono in aiuto alcuni strumenti progettati appositamente per programmare
senza conoscere uno specifico linguaggio.
Si utilizzano dei blocchi predefiniti che possono essere combinati tra loro incastrandoli
come pezzi di un puzzle.
Una combinazione di tali blocchi si chiama script.
Ogni blocco ha una precisa funzione.
Solitamente si organizzano i blocchi in base alle funzioni svolte e si distinguono
mediante colori diversi.
13
Motivazioni
• dare ai bambini la consapevolezza che e' possibile interagire con gli strumenti
tecnico informatici che li circondano non solo in maniera passiva, ovvero
semplicemente usandoli, ma anche in maniera attiva, cioe' programmandoli
direttamente
• l’attività è presentata come un gioco, da fare singolarmente e collettivamente,
produrre un risultato tangibile in tempi brevi
14
M.I.T (Massachusetts Institute of Technology)
 E’ un progetto del Lifelong Kindergarten Group dei Media Lab del MIT.
 È reso disponibile in maniera completamente gratuita è progettato in maniera
specifica per la fascia di età 8 - 16, ma è usato da persone di tutte le età.
 Milioni di persone stanno creando progetti con Scratch a casa, a scuola ma
anche in musei, biblioteche e centri ricreativi

Scratch è usato in più di 150 nazioni ed è disponibile in più di 40 lingue diverse.
15
Caratteristiche
•
•
•
•
•
•
•
il nome deriva dalla “scratching technique” usata dai disk jockey: mixare, comporre in
maniera creativa
si impara a programmare mentre si creano storie interattive giochi, progetti multimediali
non serve saper programmare (starting from scratch → partire da zero)
la programmazione e' completamente grafica: non occorre sapere nulla di
programmazione formale
è pensata come un gioco, ma richiede che il bambino pensi a cosa vuole fare e sia in grado
di dividere azioni complesse in pezzi elementari
è fortemente multimediale
i progetti possono essere condivisi: sul sito web di Scratch, su YouTube, su Flickr, sui vari
social network
16
I blocchi principali
Variabili e liste: memorizzano valori singoli o multipli.
Situazioni: eventi al verificarsi dei quali deve succedere qualcosa.
Controllo: strutture per controllare il flusso di esecuzione.
Operatori: tipicamente aritmetici, logici, di confronto.
Sensori: controllano input, output, webcam, mouse, …
Movimento: per spostare gli elementi sullo stage.
Aspetto: modifica di sfondi e colori e delle caratteristiche o degli atteggiamenti dei
personaggi (sprite) presenti sullo stage.
Suono: gestiscono la riproduzione dell’audio.
Penna: per tracciare linee quando lo sprite si muove.
17
Scratch
Link al sito
Video tutorial (Jessica Redeghieri)
Video tutorial ufficiali
18
ESERCIZI
•
•
•
•
•
•
Acquario
Conversazione
Quiz
Figure geometriche
Pacman
Storytelling
19
ACQUARIO
1. Crea un nuovo programma
2. Selezionare uno degli sprite che rappresenta un
pesciolino
3. Il pesciolino dovrà andare avanti e indietro sullo
stage. Appena arriva al bordo dovrà girarsi.
4. Inserisci un saluto iniziale al tuo pesciolino
5. Disegna un nuovo pesciolino ed inseriscilo
nell’acquario
20