Lezione 24 - Funzioni
45 minuti
Panoramica
Domanda del giorno: come possono i programmatori usare le funzioni per creare le proprie astrazioni?
Gli studenti imparano a creare funzioni per organizzare il codice, renderlo più leggibile e rimuovere blocchi di codice ripetuti. Gli studenti pensano innanzitutto al tipo di nuovi blocchi che vorrebbero inserire in Sviluppo Giochi e al codice al loro interno. Successivamente gli studenti imparano a creare funzioni in Sviluppo Giochi. Useranno le funzioni per rimuovere lunghi blocchi di codice dalla loro funzione ciclica draw
e per sostituire parti di codice ripetute con un'unica funzione.
Traguardo di apprendimento
Nelle lezioni precedenti gli studenti hanno imparato a usare una serie di astrazioni nei loro programmi, tra cui le proprietà della velocità, iTouching
e le collisioni. Queste astrazioni hanno permesso loro di creare programmi molto più complessi ignorando i dettagli di come viene creato quel comportamento. In questa lezione gli studenti imparano a costruire astrazioni proprie creando funzioni.
Gli studenti utilizzeranno principalmente le funzioni per suddividere il programma in blocchi logici su cui è più facile ragionare. Ciò prefigura la transizione del capitolo dallo sviluppo di competenze tecniche ai processi organizzativi utilizzati per lo sviluppo del software.
Opportunità di valutazione
-
Creare e utilizzare funzioni per blocchi di codice che eseguono una singola attività di alto livello all'interno di un programma
Vedi l'esercizio 9 su Code Studio.
-
Spiegare i vantaggi dell'utilizzo delle funzioni in un programma.
Nella discussione conclusiva, assicurati che gli studenti capiscano che le funzioni possono aumentare sia la leggibilità che l'organizzazione del codice.
-
Spiegare come le funzioni consentono ai programmatori di ragionare su un programma a un livello superiore
In conclusione, gli studenti dovrebbero stabilire il collegamento tra funzioni e astrazione, ossia le funzioni consentono a un programmatore di dare un nome a un po' di codice in modo che possa pensarci a quel livello più alto, piuttosto che preoccuparsi di tutti i dettagli.
Mappatura delle competenze
AP - Algorithms & Programming
- 2-AP-11 - Create clearly named variables that represent different data types and perform operations on their values.
- 2-AP-12 - Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals.
- 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
- 2-AP-14 - Create procedures with parameters to organize code and make it easier to reuse.
- 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
- 2-AP-17 - Systematically test and refine programs using a range of test cases.
- 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
Pianificazione
Obiettivi
Gli alunni saranno in grado di:
- creare e utilizzare funzioni per blocchi di codice che eseguono una singola attività di alto livello all'interno di un programma
- spiegare come le funzioni consentono ai programmatori di ragionare su un programma a un livello superiore
- spiegare i vantaggi dell'utilizzo delle funzioni in un programma
Preparazione
- Controlla il forum "Aula insegnanti" per insegnanti verificati per trovare strategie o risorse aggiuntive condivise dagli altri colleghi insegnanti
- Se stai facendo una lezione virtuale, valuta la possibilità di controllare le nostre Modifiche alla lezione virtuale
Collegamenti
Attenzione! Fai una copia di tutti i documenti che intendi condividere con gli alunni.
Glossario
- Funzione - Una parte di codice alla quale è associato un nome e che può essere richiamata più volte.
Guida didattica
Preparazione (5 minuti)
I tuoi blocchi personali
Discussione: qual è un blocco che vorresti avere in Sviluppo Giochi? Cosa farebbe? Quale codice userebbe per funzionare?
Riflettere-Lavorare in coppia-Condividere: consenti agli studenti di spiegare i loro blocchi a un compagno prima di condividere le loro idee.
Mentre gli studenti condividono le loro idee, assicurati che abbiano un'idea chiara del codice che userebbero per creare il blocco, ricordando loro che tutti i blocchi che hanno imparato in questo capitolo (ad esempio velocità, collisioni) sono stati costruiti con blocchi che già conoscevano.
Osservazioni
Oggi impareremo a creare i nostri blocchi in modo da decidere esattamente come funzioneranno. Questi blocchi speciali sono chiamati funzioni e sono una delle parti più potenti della programmazione.
Domanda del giorno: come possono i programmatori usare le funzioni per creare le proprie astrazioni?
Attività (35 minuti)
Transizione: fai andare gli studenti su Code Studio, dove impareranno a creare e richiamare funzioni.
Domande da considerare con il video:
- Pensa a un momento in cui una funzione avrebbe potuto aiutarti a scrivere un programma.
- Quale codice dovrebbe essere inserito nella definizione della funzione?
- Quando richiameresti la funzione?
- Come la richiameresti?
Obiettivi:
Glossario delle parole chiave:
- Funzione - una parte di codice alla quale è associato un nome e che può essere richiamata più volte.
Assicurati che gli studenti comprendano il ruolo dei due passaggi nell'uso delle funzioni, oltre a vedere le funzioni come una forma di «suddivisioni» o di astrazione. La definizione della funzione deve includere tutto il codice che si desidera eseguire e il nome della funzione deve essere una breve descrizione dello scopo del codice. La funzione deve essere richiamata in ogni punto del programma in cui lo studente desidera che quel blocco di codice venga eseguito.
Introduzione alle funzioni
In questi primi esercizi agli studenti viene semplicemente mostrata la sintassi delle funzioni e non viene chiesto di scriverne o crearne di proprie. Può essere utile spiegare la creazione di una funzione come la «creazione di un nuovo blocco», proprio come un altro programmatore ha creato i blocchi iTouching
o velocity
che hanno visto contenere in realtà altro codice più complesso.
Perché usare le funzioni
Gli esercizi 5a, 5b e 5ci introducono tre usi delle funzioni, vale a dire la rimozione delle ripetizioni nei programmi, la possibilità di modificare rapidamente il programma in più punti e l'organizzazione nel programma. Gli studenti dovranno scrivere più funzioni proprie in questi esercizi.
Esercizio 7: funzioni nel contesto
In questi esercizi, gli studenti useranno le funzioni per organizzare il codice all'interno di un semplice gioco. Sebbene non sia identico allo scorrimento laterale, molte delle abilità e degli usi delle funzioni di questi esercizi possono e devono essere usati quando completano il loro scorrimento laterale.
Conclusione (5 minuti)
Glossario delle parole chiave:
- Funzione - una parte specifica di istruzioni di programmazione
Discussion: perché dovremmo dire che le funzioni ci permettono di «creare i nostri blocchi?» Perché è qualcosa che vorremmo fare? Perché una funzione dovrebbe essere considerata un'astrazione?
Discussione: chiedi agli studenti di discutere al loro tavolo prima di parlare in classe.
Obiettivo: usa questo prima discussion per rivedere ciò che gli studenti hanno imparato oggi. Quando creano una funzione, creano il proprio blocco che possono chiamare o utilizzare quando vogliono. Hanno visto almeno due motivazioni principali per creare funzioni oggi, tra cui:
- Semplificare il codice suddividendolo in blocchi con nomi logici
- Consentire a un programmatore di pensare a un livello superiore nascondendo i dettagli o un particolare pezzo di istruzioni di programmazione
- Evitare la ripetizione del codice creando un blocco che può essere utilizzato più volte
Gli studenti dovrebbero rivedere la definizione di astrazione come «un modo semplice di rappresentare» qualcosa di complesso». Nota che una funzione è un'astrazione perché consente di creare un nome semplice per un blocco di codice più complesso.
Osservazioni
Le funzioni sono uno strumento utile per aiutarci a scrivere e organizzare parti di codice più complesse. Mentre iniziamo a guardare alla fine dell'unità e al progetto finale, riuscire a mantenere organizzato il codice sarà un'abilità importante.
Domanda del giorno: come possono i programmatori usare le funzioni per creare le proprie astrazioni?
Questo compito è disponibile previa Licenza Creative Commons (CC BY-NC-SA 4.0).
Se sei interessato ad utilizzare i materiali di Code.org per scopi commerciali, contattaci.