Imparare dagli errori
Il coding come palestra mentale
Webinar con Pierluigi Crescenzi e Linda Pagli
Firenze e Pisa, 27 Febbraio 2018
Obiettivo
- Descrivere alcuni strumenti e metodologie che possono rendere la gestione e la correzione degli errori più piacevoli
- Senza entrare nel panico
- Per imparare dagli errori stessi
- Vedremo come
- Scomporre un problema in sotto-problemi più semplici
- Approccio dall'alto verso il basso
- Realizzare frammenti di programma (funzioni) per risolvere i sotto-problemi
- Approccio dal basso verso l'alto
- Utilizzare la console per rilevare errori spesso "sintattici"
- E correggerli (sapendo leggere i messaggi)
- Utilizzare il debugger per correggere errori più "logici"
- Osservando i valori delle variabili
- Prevedendo il comportamento dell'utente
- Scomporre un problema in sotto-problemi più semplici
Un esempio: il gioco del tris
Dove siamo
In esecuzione
Scacchiera piena?
C'è un tris?
C'è un tris in una riga?
C'è un tris in una colonna?
C'è un tris in una diagonale?
Tris in prima riga?
Tris in seconda riga?
Tris in terza riga?
Tris in prima colonna?
Tris in seconda colonna?
Tris in terza colonna?
Tris in prima diagonale?
Tris in seconda diagonale?
Decidere se la partita è finita
Tris in prima riga?
Verificare tris in prima riga
Un bottone che si attiva
con il colore del vincitore
Verificare tris in prima riga
Verifica che i colori dei tre pulsanti in prima riga siano uguali
La console ci aiuta
Verificare tris in prima riga
C'è un errore: andiamo a scovarlo e correggerlo
Osserviamo le variabili
Fermiamo il programma all'inizio della funzione...
...e passo passo vediamone l'esecuzione tenendo sott'occhio le variabili...
...e ci accorgiamo che... ma certo!
Scacchiera piena?
C'è un tris?
C'è un tris in una riga?
C'è un tris in una colonna?
C'è un tris in una diagonale?
Tris in prima riga?
Tris in seconda riga?
Tris in terza riga?
Tris in prima colonna?
Tris in seconda colonna?
Tris in terza colonna?
Tris in prima diagonale?
Tris in seconda diagonale?
Verso il programma finale
Verificare scacchiera piena
Eppure...
- Saper gestire gli errori richiede anche
- Saper prevedere le mosse dell'utente
- Nel nostro caso, cosa succede se un giocatore clicca sulla scacchiera anche se la partita è finita?
- Se scacchiera piena, nulla di grave
- Ma se esiste tris e scacchiera non piena...
- Come risolvere quest'errore?
Per finire
- Cosa fa il pulsante di fine partita se premuto?
- Inizia nuova partita