10
UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E LABORATORIO Docente: prof. Simone Calderara Studentessa: SPADARI GIOVANNA classe: PAS A033 matricola: 96530 UNITA' DIDATTICA SULLA PROGRAMMAZIONE INFORMATICA ABSTRACT L'unità didattica proposta è rivolta ad una classe di alunni di 1° media ed è stata strutturata su tre livelli di difficoltà crescente: 1. nel primo step si è cercato di familiarizzare con la programmazione informatica partendo da una delle semplici lezioni presenti sul sito code.org; in particolare è stata scelta quella di Frozen: https://studio.code.org/s/frozen/stage/1/puzzle/1 di cui sono stati proposti, spiegati ed eseguiti alcuni esercizi. In questa prima fase sono stati introdotti i seguenti concetti: algoritmo pixel, angolo e scelta del colore comandi di movimento istruzione di controllo "ripeti n volte" creare una funzione 2. nella fase successiva si è passati all'esecuzione di uno degli esercizi proposti in Frozen utilizzando il linguaggio Scratch ad un livello più avanzato; in questa sede sono state inoltre descritte le principali caratteristiche di Scratch 3. nell'ultima fase è stato ideato un semplice gioco sempre usando Scratch; sono stati introdotti i concetti di: istruzione di controllo "per sempre" istruzioni condizionali "se ... allora ... " e "se ... allora ... altrimenti ... " operatori booleani "o", "e", "non". CONTENUTO 1. Introduzione alla programmazione informatica tramite la lezione “Frozen” Questa unità didattica ha lo scopo di insegnare le basi della programmazione partendo da dei semplici e divertenti esercizi proposti su code.org, un sito creato appositamente per gli studenti di ogni età al fine di dar loro l'opportunità di imparare l'informatica. Iniziamo con la lezione chiamata “Frozen”. Come potete vedere la schermata è suddivisa in tre parti: a sinistra compare lo schema di gioco

Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

Embed Size (px)

Citation preview

Page 1: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA

Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E LABORATORIO

Docente: prof. Simone Calderara

Studentessa: SPADARI GIOVANNA classe: PAS A033 matricola: 96530

UNITA' DIDATTICA SULLA PROGRAMMAZIONE INFORMATICA

ABSTRACTL'unità didattica proposta è rivolta ad una classe di alunni di 1° media ed è stata strutturata su trelivelli di difficoltà crescente:

1. nel primo step si è cercato di familiarizzare con la programmazione informatica partendo dauna delle semplici lezioni presenti sul sito code.org; in particolare è stata scelta quella diFrozen:https://studio.code.org/s/frozen/stage/1/puzzle/1di cui sono stati proposti, spiegati ed eseguiti alcuni esercizi. In questa prima fase sono statiintrodotti i seguenti concetti:

• algoritmo• pixel, angolo e scelta del colore• comandi di movimento• istruzione di controllo "ripeti n volte"• creare una funzione

2. nella fase successiva si è passati all'esecuzione di uno degli esercizi proposti in Frozenutilizzando il linguaggio Scratch ad un livello più avanzato; in questa sede sono state inoltredescritte le principali caratteristiche di Scratch

3. nell'ultima fase è stato ideato un semplice gioco sempre usando Scratch; sono stati introdottii concetti di:

• istruzione di controllo "per sempre"• istruzioni condizionali "se ... allora ... " e "se ... allora ... altrimenti ... "• operatori booleani "o", "e", "non".

CONTENUTO1. Introduzione alla programmazione informatica tramite la lezione “Frozen”

Questa unità didattica ha lo scopo diinsegnare le basi della programmazionepartendo da dei semplici e divertenti eserciziproposti su code.org, un sito creatoappositamente per gli studenti di ogni età alfine di dar loro l'opportunità di impararel'informatica.Iniziamo con la lezione chiamata “Frozen”.Come potete vedere la schermata è suddivisain tre parti:

• a sinistra compare lo schema di gioco

Page 2: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

in cui troviamo Elsa, il personaggio che eseguirà i nostri comandi;• a destra vi è lo spazio destinato alla programmazione chiamato "area di lavoro", cioè quello

in cui dobbiamo concatenare le istruzioni necessarie affinchè il personaggio possa farequalcosa; le istruzioni devono essere incastrate tra loro come fossero un puzzle;

• al centro c'è uno spazio grigio chiamato "blocchi" che contiene una serie di istruzioni tra lequali poter scegliere.

Lo scopo del gioco è quello di far muovere Elsa lungo le linee tracciate. In questo esercizio Elsadeve muoversi lungo due linee che formano un angolo retto. Cerchiamo di scomporre il suomovimento in una sequenza di azioni. Elsa dovrà:

– muoversi in avanti;– ruotare a destra di 90°;– muoversi ancora in avanti.

La scomposizione di un problema in una sequenza di istruzioni prende il nome di algoritmo. Molteazioni della vita quotidiana possono essere scomposte in un algoritmo, basti pensare a quandoseguiamo le istruzioni per montare un'apparecchiatura o una ricetta per preparare una pietanza.Tuttavia un algoritmo può essere considerato tale solo se rispetta tre requisiti:

– finitezza: deve essere composto da una serie finita di passi e deve portare ad un risultato;– eseguibilità: l'esecutore deve poter completare ogni passo con le risorse a disposizione;– non ambiguità: ogni passo deve poter essere interpretato senza ambiguità, cioè allo stesso

modo da due esecutori diversi.Torniamo al movimento di Elsa e cerchiamo di farle compiere le tre azioni individuate. Per farlamuovere in avanti basterà prendere il blocco "vai avanti di 100 pixel" ed attaccarlo sotto il blocco"quando si clicca su esegui" già presente nell'area di lavoro, dopodichè bisogna cliccare su "Esegui"nello spazio a sinistra. Ma che cosa sono questi pixel? Sono i puntini di cui sono fatte le immagini che appaiono sulloschermo, composto da più di mille pixel disposti per righe e per colonne. Spostarsi di 100 pixelsignifica quindi che il segmento da tracciare misura proprio 100 pixel in quanto contiene esattamente100 puntini allineati. I pixel servono a descrivere la lunghezza dei segmenti sullo schermo, mentre i gradi servono adescrivere gli angoli. Quindi per far ruotare Elsa basterà prendere il blocco "gira a destra di 90gradi", trascinarlo nell'area di lavoro e concatenarlo al precedente.Usando di nuovo il blocco "vai avanti" e incastrandolo ai precedenti, Elsa completerà il suopercorso. Ora cliccando su "Esegui" potrete verificare la correttezza del movimento del personaggio.

L'esercizio successivo consiste nel far tracciare ad Anna un quadrato. Abbiamo appena imparatocome disegnare metà quadrato. Basterà quindi aggiungere ai blocchi precedenti le seguenti istruzioniin questo ordine:

– gira a destra di 90 gradi;– vai avanti di 100 pixel;– gira a destra di 90 gradi;– vai avanti di 100 pixel;– gira a destra di 90 gradi.

L'ultima istruzione non è indispensabile, serve solo per far girare Anna di nuovo a destra pronta perripartire; si sarebbe potuta omettere.

Page 3: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

Ad ogni modo potete vedere che per tracciare ogni singola linea abbiamo usato due istruzioni, lequali sono state ripetute per ben quattro volte per poter disegnare il quadrato. Anzichè scrivere lestesse due istruzioni per quattro volte, si può usare un metodo più veloce: esiste un blocco chiamato

"ripeti n volte esegui" che ci consente di ripetere una opiù operazioni per il numero n di volte che vogliamo.Le istruzioni da ripetere vanno inserite ed incastrateall'interno del blocco stesso. Quindi il modo più veloceper tracciare un quadrato è questo:

– quando si clicca su "Esegui"– ripeti 4 volte:

• vai avanti di 100 pixel• gira a destra di 90 gradi

Passiamo al prossimo esercizio in cui cercheremo di creare tre quadrati facendo girare Anna di 120°dopo aver disegnato ogni quadrato. Possiamo usare per ben due volte il ciclo "ripeti", sia perdisegnare il singolo quadrato, sia per ripetere tre volte l'insieme di istruzioni del quadrato,ricordando di inserire anche il comando di girare a destra di 120 gradi. Il codice da usare è dunquequello che potete vedere nella figura qui sotto.

Aumentando il numero dei quadrati e diminuendol'ampiezza dell'angolo si possono creare figure semprepiù articolate. Provate ora da soli ad eseguire gli esercizi n°6, 7, 8, 9in cui dovrete usare il blocco "ripeti" per disegnare unfiocco di neve e figure via via più complesse.

Nell'esercizio n°10 bisogna creare un parallelogrammaformato da quattro lati uguali. Cosa cambia rispetto alquadrato? Il parallelogramma non ha angoli tutti uguali

di 90°; gli angoli sono uguali a due a due, in particolare quelli opposti risultano uguali mentre quelliconsecutivi sono diversi. In questo caso gli angoli sono di 60° e 120°. Pertanto non si possonoripetere per 4 volte due istruzioni identiche come avevamo fatto nel caso del quadrato. Bisogneràutilizzare quattro istruzioni per disegnare la prima metà del parallelogramma impostandocorrettamente le misure degli angoli e poi ripetere questo insieme di istruzioni un'altra volta perdisegnare l'altra metà. Inoltre in questo esercizio potete scegliere il colore con cui disegnare. Tra levarie possibilità c'è anche quella di impostare un "colore scelto a caso". In questo modo tutte le lineeche andremo a disegnare risulteranno di colore diverso. Supponiamo di voler scegliere un colore benpreciso, ad esempio il viola, selezionandolo dal menu a tendina del blocco stesso. Se vogliamoottenere un parallelogramma con tutti e quattro i lati viola ci sono due possibilità per posizionarel'istruzione "imposta il colore viola":

– possiamo collocarla fuori dal blocco "ripeti", direttamente sotto a "quando si clicca suEsegui"

– possiamo inserirla nel blocco "ripeti" prima delle quattro istruzioni che servono a tracciaredue lati.

Se invece posizionassimo l'istruzione del colore dentro il blocco "ripeti" ma dopo le istruzioni per ilati, otterremmo la prima metà del parallelogramma del colore di default che è il bianco e la secondametà del colore scelto da noi.

Page 4: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

In definitiva per disegnare un parallelogramma con i quattro lati viola, il codice da utilizzare èquello riportato nella figura che segue.

Provate ora ad eseguire da soli i dueesercizi successivi in cui dovretedisegnare più parallelogrammiusando il blocco "ripeti" per crearedei fiocchi di neve.

Passiamo ora a disegnare un cerchio. Questa volta Anna dovrà muoversi in avanti solo di un pixel egirare a destra soltanto di un grado. Le due istruzioni dovranno essere ripetute ben 360 volte,pertanto in questo caso appare ancor più evidente l'utilità del blocco "ripeti". Il codice per disegnareun cerchio è in definitiva il seguente:

• quando si clicca su "Esegui"• ripeti 360 volte:

• vai avanti di 1 pixel• gira a destra di 1 grado

Nella programmazione è possibile dare un nome ad una sequenza di comandi che abbiamo definito,in modo da poterla richiamare facilmente ogni volta che ne abbiamo bisogno. L'operazione didefinire una serie di istruzioni e di attribuirle un nome si chiama creare una funzione.Ad esempio possiamo definire il codice per disegnare un cerchio come una funzione chiamata "creaun cerchio" ed utilizzare questo blocco più volte per disegnare tanti cerchi. Nell'esercizio n°14 bisogna creare 10 cerchi sovrapposti e traslati di 25 pixel l'uno rispetto all'altro.E' già stata creata la funzione verde "crea un cerchio" che contiene le tre istruzioni che avevamodefinito nell'esercizio precedente per disegnare un cerchio e possiamo quindi utilizzare direttamentequesto blocco. Dovendo disegnare 10 cerchi, basterà inserire la funzione "crea un cerchio"

all'interno del blocco "ripeti 10 volte",seguita dal comando "salta in avanti di25 pixel" che serve per impostare ladistanza tra un cerchio e il successivo.Vogliamo inoltre che i cerchi siano tuttidi colore diverso scelto casualmente epertanto inseriremo all'inizio del blocco"ripeti" anche l'istruzione "imposta ilcolore scelto a caso". Il codice saràquindi quello riportato nella figura qui alato.

2. Risoluzione di un esercizio grafico usando il linguaggio di programmazione Scratch piùavanzatoProviamo ora a definire la funzione "crea un cerchio" usando il linguaggio di programmazioneScratch ad un livello più avanzato.

Page 5: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

La schermata che ci appare è molto simile a quella che abbiamo visto fino ad ora. E' suddivisa in treparti:

1. a sinistra troviamo l'area di gioco con il nostro personaggio detto "sprite" che in questo casoè un gattino

2. al centro ci sono i comandi, suddivisi in tre categorie:• Script: è composto da 10 gruppi di istruzioni (Movimento, Aspetto, Suono, Penna,

Variabili e Liste, Situazioni, Controllo, Sensori, Operatori, Altri Blocchi)• Costumi: sono gli aspetti che può assumere lo sprite; è possibile scegliere un costume

dalla libreria, disegnarne uno o caricarlo da un file o da una foto scattata con lawebcam

• Suoni: comprende i suoni associati allo sprite; quello di default è un miagolio. Anchein questo caso è possibile aggiungere nuovi suoni scegliendoli dalla libreria,registrandoli o caricandoli da un file;

3. a destra troviamo l'area destinata alla programmazione detta anche "canvas", nella qualebisogna concatenare le istruzioni.

E' inoltre possibile creare un nuovosprite e cambiare lo sfondo. Proviamo ad esempio a cambiare losfondo: possiamo sceglierne uno dallalibreria, disegnarlo o caricarne uno daun file. Scegliamone uno dalla libreria,ad esempio "space".Proviamo ora a cambiare l'aspetto dellosprite. Selezioniamo Costumi ecarichiamo un nuovo costume da unfile, ad esempio la foto del vostro gatto.Ora passiamo a creare la nostrafunzione. Basta cliccare su Altri

Blocchi e scrivere all'interno del blocco viola che appare il nome della funzione, in questo caso"cerchio". Dopodichè bisogna concatenare al comando viola lasequenza di istruzioni per disegnare il cerchio. Il comando "ripeti nvolte" si trova nel gruppo di istruzioni color ocra chiamato Controlloche compare tra gli Script. All'interno delle istruzioni blu Movimentoci sono invece i comandi "fai n passi" e "ruota di n gradi" in sensoorario o antiorario. Come potete vedere in questo caso non si parla piùdi pixel ma di passi. La funzione "definisci cerchio" sarà quella chevedete nella figura a lato.Se adesso cliccate su Altri Blocchi troverete la funzione "cerchio"pronta per essere incastrata.Ora andiamo a programmare il resto. Vogliamo far sì che il gatto disegni 10 cerchi rossi traslati di 15passi l'uno rispetto all'altro. In Situazioni troviamo il comando "quando si clicca sulla bandieraverde", che trasciniamo nel canvas. Questo comando corrisponde a "quando si clicca su Esegui" dicode.org. Andiamo ora a concatenare il comando "ripeti 10 volte", all'interno del quale dobbiamoposizionare nell'ordine:

• il colore della penna da usare

Page 6: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

• la funzione "cerchio"• fai 15 passi

Per scegliere il colore della penna basta andare su Penna e cliccare sull'ottagono rosso vicino allabandierina verde fino a quando nel quadratino del comando "usa penna di colore" non appare ilcolore desiderato, in questo caso il rosso. Trasciniamo ora questo comando nel canvas insiemeall'istruzione "penna giù" che andrà posizionata subito sopra. Mettiamo ora le due istruzioniall'interno del blocco "ripeti 10 volte". Vogliamo inoltre che il gattino emetta un miagolio mentre disegna ogni cerchio. Andiamo sul gruppodi comandi Suono e selezioniamo l'istruzione "produci suono miao" che collocheremo all'interno delnostro blocco "ripeti" nel canvas. Il codice risultante è quello riportato di seguito.Cliccando sulla bandierina verde il gattino disegnerà 10 cerchi rossi miagolando.

3. Realizzazione di un semplice gioco in linguaggio ScratchProviamo adesso a creare un semplice gioco cheabbia come protagonista il nostro gatto.Supponiamo che sia in cucina e che vogliaprendere alcuni oggetti. Come prima cosaimpostiamo un nuovo sfondo scegliendo dallalibreria quello di una cucina. Poi introduciamodue nuovi sprite: cliccando sull'icona dell'ominoaccanto a "Nuovo Sprite" si apre la Libreria incui compaiono tantissimi personaggi. Scegliamoil pappagallino e la mela. Posizioniamo i duenuovi sprite nella cucina: vogliamo che la melarimanga ferma a terra, mentre il pappagallinodovrà muoversi continuamente volando dasinistra a destra all'altezza dei pensili. Il gattinodovrà cercare di prenderli per mangiarli. Lasituazione di partenza è quella in figura.Come potete vedere ora i due nuovi spritecompaiono anche nelle icone degli sprite sottol'area di gioco.Selezioniamo ora lo sprite del gattino e

Page 7: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

definiamo nel canvas quali sono i suoi possibili movimenti.Stabiliamo che premendo la freccia rivolta a destra il gatto si muoverà in avanti. Per fare questoandiamo in Situazioni e scegliamo il comando "quando si preme il tasto freccia destra", chetrasciniamo nel canvas. Ad esso concateniamo il movimento "fai 10 passi". In questo modo tenendopremuta la freccia destra il gatto andrà avanti. Se avessimo scritto 2 passi anzichè 10, il gattosarebbe andato avanti lo stesso, ma più lentamente.In modo analogo stabiliamo che premendo la freccia sinistra il gatto camminerà all'indietro e farà-10 passi. La freccia "su" servirà invece per far muovere il gatto verso l'alto. Vogliamo che raggiunga l'altezzadei mobili della cucina. Quello che dobbiamo modificare è il valore della coordinata y. Tra icomandi del gruppo Movimento scegliamo quindi "cambia y di" ed imponiamo un salto di 160(pixel), che appare un valore corretto per portare il gatto all'altezza desiderata. Trasciniamo quindianche questo comando nel canvas ed incastriamolo a "quando si preme il tasto freccia su".Allo stesso modo stabiliamo che cliccando la freccia "giù" il gatto torni alla quota di partenza, cioèdobbiamo imporre che y cambi di -160.Infine vogliamo che il gatto faccia un vero e proprio salto quando ci clicchiamo sopra. Trasciniamo

quindi nel canvas la situazione "quando si clicca questo sprite" edattacchiamo a questa le seguenti istruzioni:

– "cambia y di 100" per far sì che il gatto partendodall'altezza dei mobili possa arrivare fino alla quota a cuivola il pappagallino;

– "attendi 0,5 secondi" per far sì che il gatto rimanga aquella quota per qualche istante; troviamo questaistruzione in Controllo;

– "cambia y di -100" per riportare il gattino alla quota da cuiè partito.

Abbiamo in questo modo definito i cinque possibili movimentidel gatto che trovate qui a lato: muoversi rispettivamente inavanti, all'indietro, in alto, in basso e saltare.Andiamo adesso a lavorare sugli altri due sprite. Innanzituttovogliamo far sì che entrambi spariscano quando il gatto liraggiunge, come se venissero mangiati. Come si ottiene tutto

questo? Basta lavorare sui Costumi.Selezioniamo lo sprite Parrot e poi andiamo su Costumi. Creiamo un nuovo costume scegliendo unaltro pappagallino e poi lo andiamo a modificare una volta che esso comparirà nell'area grigia adestra. Selezioniamo il pappagallo e poi digitiamo "canc" sulla tastiera in modo che questo nuovocostume del pappagallo sia senza immagine. Rinominiamo questo costume "parrot mangiato". Allostesso modo creiamo un nuovo costume per la mela che sia privo di immagine e che chiameremo"apple mangiata".Andiamo adesso ad impostare le istruzioni per il pappagallo. Vogliamo che quando viene raggiuntodal gattino il suo costume cambi da quello attuale a quello di "parrot mangiato" in modo dascomparire. Tutto ciò avverrà quando daremo inizio al gioco cliccando sulla bandiera verde.Pertanto trasciniamo nel canvas "quando si clicca su bandiera verde" e attacchiamo a questocomando il ciclo "per sempre" che troviamo nel gruppo Controllo. Questo ciclo serve per far ripeterele istruzioni contenute al suo interno ogni volta che clicchiamo sulla bandiera verde. Il comando cheandremo ad inserire è "se ... allora", che si trova sempre nel gruppo controllo e che prende il nome di

Page 8: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

istruzione condizionale. Al posto dei puntini dobbiamo inserire una condizione; se la condizionerisulterà vera, allora verrà eseguita l'istruzione conseguente. Nel nostro caso la condizione è toccareil gattino. Andando nel gruppo Sensori, troviamo il blocco "sta toccando", nel quale bisognascegliere dal menu a tendina l'oggetto che viene toccato che nel nostro caso è lo sprite 1. L'istruzioneconseguente si trova nel gruppo Aspetto ed è "passa al costume parrot mangiato". Creiamo inoltre un altro comando per far sì che quando si preme il tasto "spazio" il pappagallo possacomparire di nuovo nella posizione iniziale che decidiamo sia in alto a sinistra, in modo da poterripetere il gioco. Basterà imporre che quando si preme questo tasto il pappagallo torni al costumeparrot e vada in posizione x: -200 e y: 50.Il pappagallo infine deve muoversi continuamente da sinistra a destra dello sfondo dal momento incui il gioco ha inizio. Stabiliamo quindi che "quando si clicca sulla bandiera verde" avvenga "persempre" questa sequenza di istruzioni:

– "fai 50 passi";– "attendi 0,3 secondi"; è il tempo di attesa tra i 50 passi e i successivi, per far sì che il

pappagallo si muova a scatti. Togliendo questa istruzione esso si muoverebbe molto piùvelocemente;

– "rimbalza quando tocchi il bordo"; questa istruzione presente in Movimento serve appuntoper far sì che ogni volta che il pappagallo tocchi il bordo, si giri e ricominci a muoversi versola parte opposta.

In definitiva i comandi relativi al pappagallo sono questi:

Le istruzioni che impostiamo per la mela sono del tutto identiche a quelle del pappagallo, con l'unicadifferenza che la mela rimarrà ferma durante il gioco e quindi non avrà bisogno del blocco di

comandi per il movimento. Esse sono indefinitiva quelle riportate nella figuraqui a lato.Passiamo ora a definire i comandi per ilgattino. Vogliamo che quando tocchi ilpappagallo o la mela emetta unmiagolio e dica "Preso!!", mentre in

tutti gli altri momenti pensi "Ho fame". Per avviare il gioco si dovrà cliccare sulla bandiera verde epoi, con le frecce della tastiera o cliccando sullo sprite stesso, si dovrà muovere il gatto per fargliraggiungere i due oggetti.Selezioniamo quindi lo Sprite 1 e trasciniamo nel canvas la situazione "quando si clicca su bandieraverde" ed il ciclo "per sempre", nel quale collocheremo le istruzioni. Questa volta scegliamo inControllo l'istruzione condizionale "se ... allora ... altrimenti ...". La condizione da inserire dopo il seè toccare il pappagallo o la mela, quindi è formata da due eventi. In questo caso si parla dicondizione booleana, mentre i due eventi prendono il nome di variabili booleane, ossia variabili chepossono assumere solo due valori, vero o falso.

Page 9: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

Per concatenare i due eventi dobbiamo usare l'operatore "o" che troviamo nel gruppo degliOperatori. "O", "e", "non" sono chiamati operatori booleani e servono per combinare tra loro levariabili booleane. Essi si comportano in questo modo:

– l'operatore "o" applicato a due variabili d'ingresso restituisce il risultato VERO se almenouna delle due variabili è vera;

– l'operatore "e" applicato a due variabili d'ingresso restituisce il risultato VERO se e solo seentrambe le variabili sono vere;

– l'operatore "non" applicato ad una variabile d'ingresso restituisce come risultato l'opposto delvalore della variabile stessa.

Nel nostro caso l'operatore da scegliere è "o" in quanto è sufficiente che il gatto tocchi uno dei dueoggetti per far sì che si verifichino le istruzioni conseguenti. Inseriamo quindi all'interno delle duecaselle dell'operatore "o" le nostre variabili booleane prese dal gruppo Sensori, che sonorispettivamente "sta toccando Parrot" e "sta toccando Apple". Andiamo poi ad inserire la condizionecosì ottenuta dopo il "se". Se la condizione booleana risulta VERA, si verificheranno le due istruzioni conseguenti cheandremo a collocare dopo "allora" e che sono rispettivamente:

– "produci suono miao" che troviamo nel gruppo Suono;– "dire Preso!! per n secondi" che troviamo nel gruppo Aspetto; vogliamo che il gatto dica

"Preso!!" soltanto nel momento in cui tocca uno dei due oggetti, per cui impostiamo unadurata dell'evento pari a 2 secondi.

Se la condizione booleana risulta FALSA, ossia se il gatto non sta toccando nessuno dei due oggetti, allora si verificherà l'istruzione da collocare dopo "altrimenti" che sarà "pensa Ho fame".Creiamo inoltre un altro comando per far sì che il gattino possa posizionarsi di nuovo in basso a

sinistra quando si preme il tasto "spazio", inmodo da poter ripetere il gioco. Basteràimporre che quando si preme questo tasto ilgatto torni nella posizione definita dallecoordinate x:-160 e y:-125; troviamo questaistruzione nel gruppo Movimento. In definitiva premendo il tasto spazio tutti etre gli sprite torneranno nelle condizioniiniziali ed il gioco sarà pronto per ripartire.Quindi il gatto, oltre ai cinque comandi per ilmovimento visti in precedenza, avrà anche leistruzioni che vedete qui a lato.

Il gioco è pronto per partire. Cliccate sulla bandiera verde e buon divertimento!

Page 10: Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA …imagelab.ing.unimore.it/files2/PAS_Calderara/elaborati/SPADARI... · Corso: ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E

Come esercizio potete provare a creare un nuovo videogioco prendendo spunto da questo,utilizzando in particolare le seguenti istruzioni: "ripeti n volte", "per sempre", le condizionali, glioperatori booleani e le funzioni.

CONCLUSIONIL'obiettivo di questa unità didattica è quello di imparare a programmare in modo divertente edefficace. Ho pensato di partire dalla lezione "Frozen" perchè utilizza la programmazione informaticaper disegnare figure geometriche. Secondo i programmi ministeriali è previsto infatti che in 1°media gli allievi affrontino la geometria piana sia in matematica che in ed. tecnica, dove grazie aldisegno geometrico imparano a costruire le figure piane più importanti e a conoscerne le proprietà.Scoprire che si può disegnare non solo su carta, ma anche al computer e che in poco tempo èpossibile realizzare disegni geometrici anche molto complessi, porta i ragazzini a mostrare curiositàed interesse per questo nuovo approccio metodologico ed in più li aiuta ad apprendere in mododifferente le regole della geometria. Non solo, c'è molto di più. Gli allievi mentre disegnanoimparano a programmare. La lezione “Frozen” mostra come da una semplice sequenza di istruzioniche è sufficiente dare per realizzare singole righe, si passi ad utilizzare i blocchi di istruzioni checonsentono di velocizzare le operazioni in modo tale da poter disegnare figure più articolate. Quando poi i ragazzini si rendono conto che si può andare ben oltre a dei semplici disegni, che sipuò arrivare a "creare" qualcosa di personale come ad esempio un videogioco, si sentono ancora piùattratti dal programmare e in alcuni di loro può nascere una vera e propria passione per l'informatica.Al di là di questo, imparare a programmare fin dalla scuola dell'obbligo è di fondamentaleimportanza per tutti gli alunni in quanto l'informatica porta ad una seie di vantaggi: favorisce losviluppo della creatività poichè mostra che per ogni problema possono esserci più soluzioni efficaci;aiuta a risolvere problemi complessi non solo in ambito informatico, ma anche in altre aree; stimolaa ragionare in modo accurato e preciso dal momento che un programma per poter funzionarecorrettamente deve essere perfetto nei minimi dettagli.Pertanto l'informatica nella scuola dell'obbligo verrebbe a rispondere a due esigenze: quella di essereutile a tutti da un punto di vista pratico, in quanto molte professioni nella società di oggi richiedonoabilità digitali; quella di essere d'altra parte uno strumento intellettuale molto valido per sviluppareabilità concettuali essenziali utili ad ogni allievo a prescindere da quale sarà il futuro lavoro.Nella società contemporanea, in cui la tecnologia dipende fortemente dall'informatica e la diffusionedei computer aumenta sempre più, avere familiarità con i concetti di base della programmazione èun elemento fondamentale per il percorso formativo di una persona. Ogni lavoro richiede infatti dipossedere le competenze di base nel campo dell'informatica ed è sempre più importante che laformazione avvenga nella scuola primaria e secondaria, prima dell'università. Solo in questo modopossiamo essere sicuri che tutti gli studenti abbiano acquisito tali abilità, che risultano indispensabilisia per quelli che decidono di non frequentare l'università e di entrare nel mondo del lavoro, sia percoloro che al contrario la frequentano, in quanto tutte le discipline universitarie richiedonocompetenze informatiche di base o comunque abilità analitiche per le quali studiare l'informaticanella scuola primaria e secondaria fornisce un'eccellente preparazione.Se oltre ad essere utile essa viene vista dagli alunni più giovani anche come un'attività divertente edaccattivante, ecco che a maggior ragione diventa una disciplina da inserire a tutti gli effetti neiprogrammi ministeriali della scuola dell'obbligo.