1 of 15

"TARTA DISEGNA PER NOI"

– primi costrutti di controllo –

[modulo-2.2]

2 of 15

PRIME COSTRUZIONI NEL MICROMONDO GEOMETRICO: DISEGNIAMO UN QUADRATO

  • Obiettivo: Disegnare un quadrato
  • Quale copione per tarta-disegnatrice?
    • individuazione di una possibile sequenza di istruzioni che la tarta dovrà eseguire per disegnare un quadrato

3 of 15

"CIAK! SI GIRA": IL CONCETTO DI "TEMPO DI ESECUZIONE"

  • Un copione (programma) viene:
    • scritto dal regista/programmatore
    • eseguito dall'attore (esecutore del programma)
  • In gergo informatico, la fase in cui il sistema è in esecuzione e gli attori eseguono i propri copioni viene definito tempo di esecuzione
    • "a tempo di esecuzione, l'attore esegue il copione", "il programma va in esecuzione”

4 of 15

ESECUZIONE PASSO PASSO

  • Una funzionalità molto importante è la possibilità di eseguire passo passo il programma (tracing in gergo tecnico)
    • utile per trovare e rimuovere errori (fare debugging)
    • più in generale utile per capire e riflettere sulla struttura e funzionamento del programma, della strategia adottata
  • In Snap! è una modalità di esecuzione attivabile mediante pulsante sulla barra in alto e controllabile con tasti in alto a destra

5 of 15

RIFLESSIONE:

SEQUENZA E DECOMPOSIZIONE

  • La sequenza costituisce una prima forma basilare di decomposizione
    • ovvero decomponiamo un comportamento articolato in una sequenza di comportamenti più semplici (istruzioni), in cui vale la regola per cui ogni istruzione può essere eseguita solo dopo l'esecuzione dell'istruzione precedente (se c'è, se non è la prima)
  • Forma di decomposizione temporale
    • poiché esprime una struttura in relazione al tempo ("prima fai questo, poi quello,...")
  • In merito all'apprendimento - meta-competenza
    • capacità di saper rappresentare/organizzare strategie/comportamenti articolati, decomponendoli in passi più semplici
    • organizzazione temporale

6 of 15

APPROFONDIMENTO:

ISTRUZIONI ED EVENTI

  • Istruzioni
    • In generale ogni istruzione rappresenta un'azione che deve essere eseguita dall'attore
      • può essere un'azione semplice (o "atomica"), oppure una “macro-azione” o procedura a sua volta costituita da una sequenza di istruzioni
    • In Snap!
      • insieme di base predefinito di blocchi + possibilità di creare nuovi blocchi (come macro-azioni/procedure)
  • Eventi
    • definiscono le condizioni verificate le quali deve essere eseguita la sequenza di istruzioni
    • In Snap! blocchi “quando” con forma specifica (non agganciabili)
      • trattati nel dettaglio nei prossimi moduli

7 of 15

ISTRUZIONI DI CONTROLLO

  • La categoria controllo è una categoria fondamentale, con istruzioni di base che in generale permettono di controllare o definire il flusso di esecuzione
    • definite anche “costrutti di controllo"
  • Istruzioni (o costrutti) di controllo fondamentali
    • iterazione
      • permettono di eseguire ciclicamente un insieme di istruzioni
    • selezione
      • permettono di selezionare istruzioni da eseguire a fronte della valutazione di condizioni a tempo di esecuzione

8 of 15

COSTRUTTI DI ITERAZIONE

  • Permette di ripetere un certo numero di volte una certa sequenza di istruzioni
  • In Snap! blocco “ripeti <N> volte”

9 of 15

TORNIAMO AL MICROMONDO GEOMETRICO:

RIVEDIAMO IL COPIONE

  • Ripensiamo alla strategia usata per disegnare il quadrato
    • la strategia può essere descritta in modo più sintetico includendo la possibilità di descrivere la ripetizione di un'azione o di sequenze di azioni
      • in questo caso il disegno del lato e la rotazione…
    • la nuova descrizione non è solo più sintetica, cattura in modo più esplicito la natura intrinseca del quadrato, come poligono di 4 lati

10 of 15

RIFLESSIONI SULLA SOLUZIONE

  • Il micromondo diviene luogo di analisi e riflessione di ciò che è stato costruito, per scoprire o sottolineare legami e relazioni fra i concetti ed entità parte della costruzione
    • In questo caso c'è un legame fra l'argomento del ripeti (4) pari al numero di lati e il numero di gradi della rotazione (90) – il prodotto è 360
    • Si scopre o si riflette sul fatto che per i poligoni regolari quel prodotto è costante..
  • Esplorazioni: proviamo con un triangolo, proviamo con poligoni in generale, via via verso la circonferenza come limite…

11 of 15

APPROFONDIMENTO:

ISTRUZIONI (BLOCCHI) E PARAMETRI

  • Il modello generale di un'istruzione (blocchi) prevede che ogni istruzione sia univocamente identificabile da un nome (o una descrizione) e abbia zero o più parametri
    • In Snap!
  • Ogni parametro ci permette di specificare un valore, utile o necessario per l'esecuzione dell'istruzione/blocco
    • Il valore può essere di tipo diverso: un numero, una lettera, una sequenza di lettere (ovvero una stringa).. ma anche un'immagine, un attore stesso...
    • Il tipo definisce proprietà e caratteristiche che accomunano tutti i valori di quel tipo (come insieme)

12 of 15

RIFLESSIONE:

PARAMETRIZZAZIONE COME FORMA DI GENERALIZZAZIONE

  • A livello concettuale la nozione di parametro ci permette di attuare un processo di generalizzazione
  • Esempio blocco "fai <N> passi"
    • invece di avere una istruzione o blocco specifico per ogni valore di passo ("fai 1 passo", "fai 2 passi", "fai 3 passi"...), ne abbiamo solo uno “parametrizzato”, che può essere usato in generale

13 of 15

COSTRUTTI DI ITERAZIONE ANNIDATI

  • La semplice combinazione dei costrutti di controllo di iterazione permette di costruire, realizzare comportamenti molto articolati e complicati
    • Ad esempio: un ripeti come parte della sequenza di istruzioni ripetute in un blocco ripeti
    • In gergo informatico: ripeti annidati�
  • Questa possibilità permette di avere una rimarchevole potenza espressiva – ora la vedremo applicata nel micromondo geometrico

14 of 15

SFIDE NEL MICROMONDO GEOMETRICO:

DISEGNIAMO UN FIORE

  • Sfida
    • pensiamo al quadrato come se fosse il petalo di un fiore. Ora vogliamo disegnare un fiore con 10 petali
  • Vari aspetti coinvolti
    • cambio di prospettiva e "livello di astrazione"
    • riuso di quanto già fatto
    • incontro con primi elementi di complessità

15 of 15

RIFLESSIONI SULLA SOLUZIONE

  • Riflettere sulla soluzione costruita, sui legami e relazioni che possono esserci fra i valori
    • in questo caso il valore specificato nel ripeti più esterno (10) e i gradi della rotazione (36) possono essere ancora una volta messi in relazione nel caso vogliamo una distribuzione uniforme di petali… ovvero: il prodotto è sempre 360
  • Esplorazioni:
    • fiore a 36 petali
    • fiore a 36 petali ottagonali