Torna alla pagina inizialeTecnologia · 3ª media · Cambia materia
Inizia gratis
3ª media · Tecnologia
La creazione di contenuti digitali · Creazione e programmazione semplice

Algoritmi e pensiero computazionale

Prima di scrivere una sola riga di codice bisogna avere chiarissimi i passi da compiere. Pensa all'app che ti dice quando passa l'autobus: qualcuno ha dovuto spiegare al telefono, passo dopo passo, come trovare l'orario giusto. Quell'elenco di passi esatti (per esempio: «scegli la stazione di partenza, trova la linea, scendi alla fermata di arrivo» in metropolitana) è un algoritmo, e il modo di ragionare per costruirlo si chiama pensiero computazionale. Alla fine della pagina vedrai come si spiega a una macchina anche una cosa semplice come distribuire dei panini in mensa.

Che cos'è un algoritmo

Diagramma di flusso lineare che mostra dall'alto in basso i passi ordinati di una ricetta: inizio, prendere gli ingredienti, mescolare, servire e fine. Inizio Passo 1: prendi gli ingredienti Passo 2: mescola Passo 3: servi Fine
Esercitati★☆☆Da iniziare
Scrivi l'algoritmo, come elenco di passi numerati, per preparare un panino al formaggio, in modo che una persona che non ne ha mai fatto uno possa seguirlo senza dubbi.…

Scrivi l'algoritmo, come elenco di passi numerati, per preparare un panino al formaggio, in modo che una persona che non ne ha mai fatto uno possa seguirlo senza dubbi. Rivedi il tuo elenco e verifica che non manchino passi che davi per scontati.

Risolvi
Esercitati★☆☆Da iniziare
Nella ricetta «friggere un uovo» individua l'ingresso (gli ingredienti e gli utensili), l'elaborazione (i passi con il fuoco e la padella) e l'uscita (il risultato).…

Nella ricetta «friggere un uovo» individua l'ingresso (gli ingredienti e gli utensili), l'elaborazione (i passi con il fuoco e la padella) e l'uscita (il risultato). Spiega perché ragionare così aiuta a scrivere algoritmi chiari.

Risolvi
Esercitati★☆☆Da iniziare
Una ricetta dice «mescola la salsa finché si addensa». Spiega perché un algoritmo deve sempre terminare e che cosa potrebbe succedere se la salsa non si addensasse mai.…

Una ricetta dice «mescola la salsa finché si addensa». Spiega perché un algoritmo deve sempre terminare e che cosa potrebbe succedere se la salsa non si addensasse mai. Riscrivi quel passo in modo che il cuoco non resti a mescolare per sempre.

Risolvi
Esercitati★☆☆Da iniziare
Scrivi l'algoritmo per preparare un bicchiere di latte al cacao in sei o otto passi, così precisi che potrebbe seguirli un robot: quantità, ordine dei passi e come…

Scrivi l'algoritmo per preparare un bicchiere di latte al cacao in sei o otto passi, così precisi che potrebbe seguirli un robot: quantità, ordine dei passi e come verificare che il cacao si sia sciolto prima di finire.

Risolvi
Esercitati★★☆Da iniziare
Una ricetta dice: «aggiungi sale e lascia cuocere un po' a fuoco medio». Spiega perché un computer non potrebbe seguire quell'istruzione e riscrivila come un passo di…

Una ricetta dice: «aggiungi sale e lascia cuocere un po' a fuoco medio». Spiega perché un computer non potrebbe seguire quell'istruzione e riscrivila come un passo di algoritmo preciso, indicando quantità, tempi e come verificare che il passo sia terminato.

Risolvi

Diagrammi di flusso: sequenza, selezione e iterazione

Ogni algoritmo si costruisce con tre strutture: la sequenza (un passo dopo l'altro), la selezione (si sceglie tra due strade in base a una condizione) e l'iterazione, o ciclo (si ripetono dei passi). Il diagramma di flusso (o diagramma a blocchi) le disegna con forme precise. Lo useremo per ricette, percorsi in metropolitana o l'orario del treno regionale: ogni situazione con passi e decisioni.

Diagramma di flusso con una selezione: un rombo divide il percorso in due rami a seconda che ci sia poca luce oppure no. Inizio c'è poca luce? sì accendi la lampada no lampada spenta Fine

Nella ripetizione conta sempre la condizione di arresto: è lei che dice quando il ciclo finisce. «Finché ci sono carte in mano, dai una carta» termina quando non restano più carte in mano.

Diagramma di flusso con un ciclo: finché ci sono carte in mano se ne dà una a un giocatore, poi si torna al controllo; quando non restano più carte in mano l'algoritmo finisce. Inizio ci sono carte in mano? sì dai una cartaal giocatore no annuncia «distribuite» Fine

Gli stessi passi con i blocchi incastrati

Molti ambienti di programmazione (come Scratch) non usano il diagramma di flusso, ma blocchi che si incastrano uno sotto l'altro. Sono lo stesso algoritmo in un'altra forma: il blocco «se… allora… altrimenti» è il rombo (selezione), il blocco «ripeti finché…» è il ciclo con la sua condizione di arresto, e i blocchi impilati sono la sequenza. Per leggerli si va dall'alto verso il basso, entrando nei blocchi a «C» quando la condizione lo richiede.

Esercitati★☆☆Da iniziare
Questi passi dell'algoritmo «andare a scuola» sono in disordine: (a) entrare in classe, (b) alzarsi, (c) fare colazione, (d) uscire di casa, (e) vestirsi, (f) camminare…

Questi passi dell'algoritmo «andare a scuola» sono in disordine: (a) entrare in classe, (b) alzarsi, (c) fare colazione, (d) uscire di casa, (e) vestirsi, (f) camminare fino a scuola. Mettili nell'ordine corretto e aggiungi all'algoritmo una decisione: che cosa fare se piove quando esci di casa.

Risolvi
Esercitati★☆☆Da iniziare
La figura mostra, con blocchi incastrati, l'algoritmo di una lampada da lettura automatica che deve accendersi solo quando c'è poca luce, ma manca un blocco. Indica…

La figura mostra, con blocchi incastrati, l'algoritmo di una lampada da lettura automatica che deve accendersi solo quando c'è poca luce, ma manca un blocco.

all'avvio ripeti sempre se c'è poca luce accendi la lampada altrimenti ?

Indica quale blocco metteresti nello spazio vuoto e spiega con parole tue come funziona l'algoritmo completo, passo dopo passo.

Risolvi
Esercitati★☆☆Da iniziare
Leggi questo algoritmo: (1) prendi il mazzo di carte, (2) finché ci sono carte in mano, dai una carta a ciascun giocatore partendo dalla tua sinistra, (3) quando non ci…

Leggi questo algoritmo: (1) prendi il mazzo di carte, (2) finché ci sono carte in mano, dai una carta a ciascun giocatore partendo dalla tua sinistra, (3) quando non ci sono più carte, annuncia «distribuite». Spiega con una frase che cosa fa l'algoritmo e indica quale parte è la ripetizione e quando termina.

Risolvi
Esercitati★☆☆Da iniziare
Molti apparecchi di uso quotidiano seguono algoritmi. Scegline due da questo elenco —lavatrice, forno a microonde, semaforo— e descrivi per ciascuno quali dati riceve…

Molti apparecchi di uso quotidiano seguono algoritmi. Scegline due da questo elenco —lavatrice, forno a microonde, semaforo— e descrivi per ciascuno quali dati riceve (ingresso), che cosa decide o ripete (elaborazione) e che cosa fa alla fine (uscita).

Risolvi
Esercitati★★☆Da iniziare
Fai la traccia di esecuzione di questo algoritmo con $n = 7$: (1) parti dal valore $n$, (2) ripeti tre volte: aggiungi 2, (3) sottrai 5, (4) scrivi il risultato. Annota…

Fai la traccia di esecuzione di questo algoritmo con $n = 7$: (1) parti dal valore $n$, (2) ripeti tre volte: aggiungi 2, (3) sottrai 5, (4) scrivi il risultato. Annota il valore dopo ogni passo, dai il risultato finale e spiega che cos'è una traccia di esecuzione e a che cosa serve farla a mano.

Risolvi
Esercitati★★☆Da iniziare
Scrivi l'algoritmo per contare quante persone entrano dalla porta dell'aula usando solo una variabile «contatore» che parte da 0: che cosa fai ogni volta che entra…

Scrivi l'algoritmo per contare quante persone entrano dalla porta dell'aula usando solo una variabile «contatore» che parte da 0: che cosa fai ogni volta che entra qualcuno, come sai quando smettere di contare e quale valore avrà il contatore alla fine.

Risolvi

Scomporre, riconoscere schemi e astrarre

Un problema grande, a forma di tessera di puzzle, viene diviso da un taglio in due sottoproblemi più piccoli che si incastrano. problema grande sottoproblema 1 sottoproblema 2

Scomporre. «Organizzare la festa di fine anno» spaventa; ma diviso in musica, cibo, inviti e allestimento diventa quattro lavori piccoli, che si possono affidare a persone diverse. Se due compiti non dipendono l'uno dall'altro (spremere il succo e apparecchiare) si possono fare in contemporanea; se uno dipende dall'altro (servire il caffè dopo averlo fatto) l'ordine è obbligato.

Riconoscere schemi. La sequenza $5, 10, 15, 20, \dots$ segue la regola «aggiungi 5»; la sequenza $100, 90, 80, \dots$ segue «sottrai 10». Trovata la regola, puoi prevedere qualunque termine, e un ciclo la può ripetere.

Astrarre. Astrarre significa tenere solo gli elementi essenziali di un problema e lasciare da parte i dettagli inutili, come vedrai nell'esempio della metropolitana qui sotto.

Più algoritmi, stesso problema. Una stessa soluzione può essere raggiunta con algoritmi diversi: per cercare «pipistrello» in un dizionario puoi sfogliare una pagina alla volta, oppure aprire a metà e scartare ogni volta la metà che non interessa (funziona solo se le parole sono in ordine alfabetico). Il secondo metodo è più efficiente: con 500 pagine servono circa 9 aperture (le pagine si dimezzano: $500 \to 250 \to 125 \to \dots$), contro le 500 del primo nel caso peggiore (stima: circa 9). Per stimarle, chiediti quante volte puoi dimezzare 500 pagine prima di restare con una sola: $500 \to 250 \to 125 \to 63 \to 32 \to 16 \to 8 \to 4 \to 2 \to 1$, cioè circa 9 dimezzamenti, e quindi circa 9 aperture.

Esercitati★★☆Da iniziare
Scomponi il problema «organizzare la festa di fine anno» in quattro sottoproblemi più piccoli e scrivi due passi concreti per risolvere ciascuno. Spiega quale vantaggio…

Scomponi il problema «organizzare la festa di fine anno» in quattro sottoproblemi più piccoli e scrivi due passi concreti per risolvere ciascuno. Spiega quale vantaggio ha dividere così un problema grande.

Risolvi
Esercitati★★☆Da iniziare
Riconoscere gli schemi significa trovare la regola che si ripete. Scopri lo schema di queste tre sequenze ed esprimilo come regola chiara: (a) 5, 10, 15, 20, …, (b) 100,…

Riconoscere gli schemi significa trovare la regola che si ripete. Scopri lo schema di queste tre sequenze ed esprimilo come regola chiara: (a) 5, 10, 15, 20, …, (b) 100, 90, 80, 70, …, (c) lunedì: 1 flessione, martedì: 2, mercoledì: 4, giovedì: 8, … Indica quale valore verrebbe dopo in ciascuna.

Risolvi
Esercitati★★☆Da iniziare
Per ordinare un mazzo di carte esistono diversi algoritmi, e alcuni sono più rapidi di altri. Spiega con un esempio della vita quotidiana che uno stesso problema può…

Per ordinare un mazzo di carte esistono diversi algoritmi, e alcuni sono più rapidi di altri. Spiega con un esempio della vita quotidiana che uno stesso problema può avere più algoritmi che lo risolvono e che cosa significa che uno sia «migliore» di un altro.

Risolvi
Esercitati★★☆Da iniziare
La mappa della metropolitana non disegna la città reale: elimina distanze, curve e strade, e tiene solo stazioni e collegamenti. Spiega che cos'è l'astrazione usando…

La mappa della metropolitana non disegna la città reale: elimina distanze, curve e strade, e tiene solo stazioni e collegamenti. Spiega che cos'è l'astrazione usando questo esempio e applicala poi alla pianta della tua scuola: quali tre cose includeresti e quali tre cose elimineresti.

Puoi farlo su carta e inviare una foto con la tua risposta.

Risolvi
Esercitati★★★Da iniziare
Cerchi la parola «pipistrello» in un dizionario di 500 pagine. Confronta questi due algoritmi: aprire dalla prima pagina e avanzare una pagina alla volta, oppure aprire…

Cerchi la parola «pipistrello» in un dizionario di 500 pagine. Confronta questi due algoritmi: aprire dalla prima pagina e avanzare una pagina alla volta, oppure aprire a metà e scartare via via la metà che non interessa. Spiega quale è più efficiente, perché funziona solo se le pagine sono ordinate e stima quante «aperture» richiede ciascun metodo.

Risolvi
Esercitati★★★Da iniziare
Due persone preparano insieme la colazione per quattro ospiti: bisogna fare il caffè, tostare il pane, spremere il succo e apparecchiare la tavola. Distribuisci i…

Due persone preparano insieme la colazione per quattro ospiti: bisogna fare il caffè, tostare il pane, spremere il succo e apparecchiare la tavola. Distribuisci i compiti tra i due rispettando le dipendenze (non si può servire il caffè prima di averlo fatto) e spiega quali compiti possono essere svolti contemporaneamente e quali no, indicandone l'ordine.

Risolvi

Casi limite ed errori negli algoritmi

Diagramma di flusso che mostra un caso limite gestito con un controllo prima di eseguire l'azione. Inizio ci sono ancora panini? sì dai un panino no avvisa: finiti Fine
Esercitati★★☆Da iniziare
Questo algoritmo per «fare il bucato» ha un errore: (1) mettere tutti i vestiti in lavatrice, bianchi e colorati insieme, (2) aggiungere il detersivo, (3) scegliere il…

Questo algoritmo per «fare il bucato» ha un errore: (1) mettere tutti i vestiti in lavatrice, bianchi e colorati insieme, (2) aggiungere il detersivo, (3) scegliere il programma lungo ad acqua calda, (4) stendere. Trova due passi problematici, spiega che cosa può andare storto in ciascuno e riscrivi l'algoritmo corretto con un passo di selezione preliminare.

Risolvi
Esercitati★★★Da iniziare
L'algoritmo di una mensa distribuisce un panino a ciascun partecipante, ma non funziona quando i partecipanti sono più dei panini. Spiega che cos'è un «caso limite» in…

L'algoritmo di una mensa distribuisce un panino a ciascun partecipante, ma non funziona quando i partecipanti sono più dei panini. Spiega che cos'è un «caso limite» in un algoritmo, proponi come dovrebbe comportarsi la distribuzione in quella situazione e riscrivi il passaggio problematico in modo che l'algoritmo non fallisca.

Risolvi
Esercitati★★★Da iniziare
Uno sportello bancomat ha solo banconote da $20\ \text{€}$ e il suo algoritmo distribuisce l'importo richiesto in banconote. Spiega che cosa succede quando qualcuno…

Uno sportello bancomat ha solo banconote da $20\ \text{€}$ e il suo algoritmo distribuisce l'importo richiesto in banconote. Spiega che cosa succede quando qualcuno richiede $75\ \text{€}$, perché è un caso limite e riscrivi le regole del bancomat in modo che risponda sempre qualcosa di ragionevole.

Risolvi
Esercitati★★★Da iniziare
Progetta l'algoritmo completo, con passi numerati che comprendano decisioni e ripetizioni, di un semaforo pedonale a pulsante: che cosa accade da quando qualcuno preme…

Progetta l'algoritmo completo, con passi numerati che comprendano decisioni e ripetizioni, di un semaforo pedonale a pulsante: che cosa accade da quando qualcuno preme il pulsante fino a quando il semaforo torna allo stato iniziale, compresi i tempi di ciascuna luce.

Risolvi
Esercitati★★★Da iniziare
Pensa a un programma che gioca a tris. Descrivi la strategia che seguirebbe a ogni turno: quali dati della griglia deve osservare, in quale ordine e quali regole…

Pensa a un programma che gioca a tris. Descrivi la strategia che seguirebbe a ogni turno: quali dati della griglia deve osservare, in quale ordine e quali regole useresti per decidere dove collocare il segno. Non serve scrivere codice: bastano le regole in linguaggio naturale.

Risolvi
Esercitati★★★Da iniziare
La figura mostra, con blocchi incastrati, lo scheletro di un gioco in cui si deve indovinare un numero segreto, ma all'interno del ciclo manca un pezzo affinché il gioco…

La figura mostra, con blocchi incastrati, lo scheletro di un gioco in cui si deve indovinare un numero segreto, ma all'interno del ciclo manca un pezzo affinché il gioco dia indizi al giocatore.

all'inizio ripeti finché indovini chiedi un numero ? dì Hai indovinato!

Descrivi quale blocco (o quali blocchi) inseriresti nello spazio vuoto affinché il gioco dica al giocatore se il suo numero è maggiore o minore di quello segreto, e spiega il funzionamento completo dell'algoritmo: che cosa si ripete, quando termina e che cosa succede se il giocatore indovina al primo tentativo.

Risolvi
Esercitati★★★Da iniziare
Per la raccolta differenziata della classe si propongono due algoritmi: (a) ogni giorno, la persona responsabile separa tutti i rifiuti del giorno nei tre contenitori, e…

Per la raccolta differenziata della classe si propongono due algoritmi: (a) ogni giorno, la persona responsabile separa tutti i rifiuti del giorno nei tre contenitori, e (b) ogni settimana, a turno, una coppia classifica quanto accumulato. Valuta entrambi con criteri di tempo totale, errori di classificazione e ripartizione dello sforzo, e scegline uno giustificando la scelta.

Risolvi

Vuelve al principio: per far distribuire i panini a una macchina bisogna scomporre il compito, prevedere il caso «panini finiti» e dire quando il ciclo si ferma.

In sintesi

Vedi tutti gli esercizi di questa sezione