UNIVERSITA’ DEGLI STUDI DI MODENA E REGGIO EMILIA
ELETTROTECNICA, ELETTRONICA E SICUREZZA INFORMATICA E LABORATORIO
DOCENTE: Dott. Ing. Simone Calderara
CANDIDATO: Sara Salucci matricola n. 96602 - Pas A033
Abstract
Questa relazione nasce con l’intento di presentare alcune riflessioni sulla possibilità di apprendimento dei
principi della programmazione informatica e dei suoi possibili utilizzi; si è cercato di individuare le modalità
più appropriate per renderne più efficace l’assimilazione, anche in previsione dei possibili sviluppi futuri.
Descrivendo lo svolgimento di una unità didattica, ho immaginato come potrei contribuire per trasmettere
tali conoscenze e per fornire allo studente le abilità e le competenze necessarie che assicurino la
padronanza delle tecniche e delle metodologie relative alla programmazione informatica e alla risoluzione
dei problemi.
Riflessione
La disciplina di tecnologia prevede anche l’insegnamento di informatica; spesso però capita che nelle
diverse scuole in cui ho avuto occasione di lavorare manchino adeguati laboratori nei quali poter svolgere
attività pratiche di informatica, con grande rammarico degli studenti. Tale mancanza però non è un
ostacolo insuperabile: con la collaborazione e il consenso delle famiglie i ragazzi possono portare i
computer da casa, e con un minimo di organizzazione la lezione può essere comunque svolta.
Quest’anno fortunatamente ho prestato servizio in una scuola provvista di aula informatica, in cui ho
insegnato ai ragazzi i “soliti” applicativi: Word, Excell, Power Point. Devo dire che la programmazione
informatica mi ha sempre affascinato e incuriosito, e quindi d’ora in poi proverò a cimentarmi in un mondo
fino ad ora sconosciuto per cercare di trasmettere ai ragazzi ciò che veramente serve a loro.
Sono convinta che la scuola, al giorno d’oggi, deve avvicinarsi al mondo del computer già a partire dalle
scuole elementari. Purtroppo però, spesso l’informatica viene considerata come materia di “serie B” ed al
suo insegnamento vengono riservati solo piccoli ritagli nell’orario settimanale; la situazione non è certo
migliore alle scuole medie. I bambini ormai già vivono in un ambiente informatizzato e certamente vivranno
in un mondo sempre più ampiamente tecnologico: la scuola certo non può ignorare questa realtà.
Occorre senza dubbio una alfabetizzazione informatica: il problema è in che cosa essa debba consistere.
La maggior parte degli insegnanti mostra una certa riluttanza verso il mondo informatico, pensando che sia
inutile e soprattutto che siano le famiglie a dover insegnare ai propri figli l’informatica, scaricando così la
responsabilità del non saper fare e del non essere all’altezza delle competenze richieste. A volte poi si
associa la disciplina informatica a quella matematica, ma anche se le due materie sono simili l’informatica
dovrebbe essere posta come disciplina autonoma ed avere un proprio spazio dedicato.
1
La scuola e i docenti, oltre a insegnare materialmente come funziona il computer, come si aprono file e
copiano cartelle (operazioni elementari che però la maggior parte dei ragazzi non sa ancora compiere
correttamente) devono avere il compito di guidare gli alunni nel formare quelle strutture mentali che
rendano possibile la comprensione del linguaggio informatico il quale potrà aumentare le loro chance per
un futuro lavorativo.
Oggi insegnare l’informatica ai ragazzi non è solo importante ma indispensabile al fine di contribuire a
creare in loro maggiore autonomia, sicurezza e capacità di gestire il proprio futuro.
Nella società contemporanea avere familiarità con i concetti di base dell’informatica è un elemento
fondamentale nel processo di formazione dei cittadini: uno studente, per essere adeguatamente preparato
a qualunque lavoro vorrà fare da adulto, deve comprendere i concetti di base dell’informatica,
analogamente a quanto è accaduto nel secolo passato per la matematica e le altre discipline affini.
E’ necessario fare apprendere il coding, cioè la programmazione informatica, per passare ad un’informatica
maker (del creare), oltre che consumer (utilizzare).
Con il termine coding s’intende, in informatica, la stesura di un programma, cioè di una sequenza
d’istruzioni che, eseguita da un calcolatore, dà vita alla maggior parte delle meraviglie digitali che usiamo
quotidianamente.
Si deve insegnare quindi come organizzare un problema per gradi successivi e dare ordini precisi: ciò
comporta lo sviluppo del ragionamento e lo sviluppo del pensiero computazionale, essenziale affinché le
nuove generazioni siano in grado di affrontare la società e le tecnologie del futuro non come consumatori
passivi ma come utenti attivi.
Il pensiero computazionale va ben oltre l'uso della tecnologia, ed è indipendente da essa: non si tratta di
ridurre il pensiero umano creativo e fantasioso in processi mentali meccanici e ripetitivi, simili a quello di un
calcolatore, ma di far comprendere quali siano le reali possibilità di estensione del proprio intelletto
attraverso il calcolatore.
Ogni giorno gli esseri umani si trovano costantemente nella condizione di dover affrontare piccoli e grandi
problemi: si tratta di imparare a risolverli utilizzando i concetti fondamentali dell’informatica.
Generalmente si dà quasi per scontato che uno studente il quale inizi a frequentare la scuola secondaria di
primo grado sia già in grado di utilizzare corrette tecniche di studio e di memorizzazione e che sappia
seguire una sequenza nelle proprie azioni di studio; si dimentica però che queste azioni ”informatiche”
sono da insegnare, non nascono naturalmente. Ecco perché lo studente, ma soprattutto l’insegnante,
dovrebbe aggiungere alla propria azione didattica il modulo: “impara a pensare” che in altro modo può
essere tradotto come: “impara ad ordinare i tuoi pensieri”, “impara a risolvere i problemi”, o ancora
meglio: “impara a programmare”. Bisogna quindi rimettersi in gioco, rivedersi come insegnanti con umiltà e
soprattutto avere una visione più ampia.
Avendo come obiettivo la trasmissione delle capacità di programmazione a dei novizi, mi viene però
spontaneo chiedermi come farlo in modo semplice anche perché sarebbe impossibile mappare un corso
universitario a dei livelli più bassi d’istruzione: questo a causa dei differenti problemi legati all’età, agli
interessi, alle difficoltà affrontabili dagli adolescenti. Bisogna quindi capire prima iniziare quali siano gli
aspetti intrinseci del pensiero computazionale che sono necessari per tutti e quali siano i tempi, i metodi, i
concetti e le tecnologie migliori per insegnarlo.
2
Descrizione dell’attività
Quello che vorrei proporre è un’attività didattica che introduca il concetto di problema e di risoluzione
dello stesso in modo semplice e divertente, proponendo un piccolo gioco in classe per fare comprendere
cosa è un problema e come non esista per chi non se lo pone o non lo affronta. Il problema quindi indica
una situazione che pone delle domande a cui si devono dare delle risposte; risolvere il problema vuole dire
uscire da questa situazione.
L’obiettivo che mi sono proposta come insegnante è quello di fornire ai ragazzi, iniziando dalla classe prima,
gli strumenti base per affrontare la programmazione, e di ricercare assieme al gruppo classe la soluzione di
alcuni problemi, analizzandoli, scomponendoli e risolvendoli.
Gli strumenti fondamentali per perseguire tale scopo sono i diagrammi di flusso. Per tracciarli, interpretarli
e presentarli in effetti non occorrono nemmeno i computer: bastano carta e matita.
L’algoritmo, questa parola sconosciuta che alla maggior parte degli studenti incute timore, diventa pian
piano famigliare. Faccio riflettere chiedendo ai miei studenti se si sono mai soffermati a pensare a quanti
problemi si risolvono in una giornata, a quante decisioni vengono prese. Cosa mangio a colazione? Come mi
vesto? Quali amici invito a casa per studiare? Cosa guardo in tv? Inconsapevolmente, ogni giorno, si
costruiscono tantissimi algoritmi (procedimenti che risolvono un problema).
L’algoritmo si può dunque definire come sequenza logica di istruzioni elementari (univocamente
interpretabili) che, eseguite in un ordine stabilito, permettono la soluzione di un problema in un numero
finito di passi. Quando si presenta un problema e si vuol creare un algoritmo, si deve innanzitutto riflettere
e individuare gli elementi noti, ovvero i DATI di partenza, per arrivare a trovare gli altri elementi del
problema, le INCOGNITE. Solo dopo aver chiarito bene quali sono i dati e le incognite si può passare alla
fase risolutiva del problema.
Basta un semplice spunto, un alunno che durante la lezione mi chiede: “Prof., oggi è assente Luca, ha il mal
di testa?”.
Bene, ecco che inizia la risoluzione del primo problema. Chiedo quindi ai ragazzi di pensare a risolvere con
carta e penna questo tipo di situazione: "Luca ha mal di testa e la mamma decide di misurargli la febbre; se
la temperatura è superiore a 39°C, la mamma chiama il dottore per un controllo e poi lo manda a letto; se la
temperatura è inferiore, Luca prende un’aspirina e poi va a letto."
Per rendere più semplice il problema adottiamo una tecnica particolare, il diagramma di flusso, che in
maniera grafica schematizza i dati con l’ausilio di appositi simboli che spiego in modo elementare.
I diagrammi di flusso (in inglese ”flowchart”) servono a rappresentare graficamente, in modo chiaro e
preciso la successione delle operazioni necessarie per risolvere un problema, (ovvero gli algoritmi).
Per realizzarli si usano dei “blocchi” in cui inserire dati, informazioni, comandi, come sotto meglio precisato.
BLOCCO INIZIO: di forma ovale indica l’inizio o la fine di un diagramma, da ogni blocco iniziale deve uscire
una sola freccia.
PARALLELOGRAMMA: indica l’introduzione dei dati, contengono i dati che
riceviamo (OUTPUT), deve entrare e uscire una sola freccia.
inseriamo
(INPUT)
o
che
RETTANGOLO: indica le operazioni da eseguire, quindi contiene le azioni da eseguire, deve entrare e uscire
una sola freccia.
ROMBO: contengono le domande, la risposta può essere SI/NO oppure VERO/FALSO
3
BLOCCO INIZIO/FINE
INTRODUZIONI
DATI/RISULTATI
OVALE
PARALLELOGRAMMO
Le frecce indicano la direzione da seguire
BLOCCHI DI DECISIONE
ROMBO
BLOCCHI ISTRUZIONI
RETTANGOLO
Dopo aver spiegato questa semplice procedura analizziamo il problema con i diagrammi di flusso mediante
i flowchart messi a disposizione dal programma Diagram Designer. Progettare nuovi algoritmi diventa così
un’attività creativa e intellettualmente stimolante.
La disciplina di Tecnologia prevede anche l’insegnamento del disegno tecnico e quindi delle figure piane
come i triangoli (programma affine a quello di geometria); l’esercizio che propongo ha lo scopo di
migliorare le competenze logico – matematiche attraverso la programmazione. Di seguito riporto un
esempio di problema che si potrebbe affrontare.
Dati in input i 3 lati di un triangolo dire se è isoscele, equilatero o scaleno.
Come fare?
Controllare se A=B: se Vero allora controllate B=C, se Vero output equilatero altrimenti isoscele.
Se A=B: Falso allora controllate B=C, se Vero output isoscele altrimenti scaleno.
4
1. ANALISI DEL PROBLEMA:
1. dati in ingresso: A,B,C
2. Valori ammessi: A>0, B>0, C>0;
3. Dati in uscita: EQUILATERO,
ISOSCELE,SCALENO;
4. Relazioni ingressi/uscite:
se A=B=C allora EQUILATERO,
se A=B o A=C o B=C allora ISOSCELE,
se A ≠ B≠C allora SCALENO,
2. ALGORITMO:
1. Inizio
2. Inserire A;
3. SE A<0 torna al punto 2
4. Inserire B;
5. SE B<0 torna al punto 4
6. Inserire C;
7. SE C<0 torna al punto 6
8. Se (A=B=C) allora stampa “Equilatero”
9. Se (A=B o A=C o B=C) allora stampa “Isoscele”
10. Se (A ≠ B ≠ C) allora stampa “Scaleno”
11. Fine;
Ovviamente, verranno proposti più esempi e dopo che i ragazzi avranno familiarizzato con gli algoritmi,
inizieremo ad utilizzare il linguaggio di programmazione Scratch.
Per iniziare l’attività, si propone prima la visita al sito https://code.org, dedicando almeno tre ore alle
attività proposte dal sito. Svolti gli esercizi illustrati dalle lezioni video di Bill Gates e Mark Zuckerberg,
ispirati ai giochi di Angry Birds, inizio a spiegare Scratch.
Tutti i ragazzi, anche se non dotati delle stesse abilità, di fronte a queste attività mostrano sempre un pieno
coinvolgimento; lavorano con impegno e autonomia, e spesso fanno emergere anche potenzialità
espressive e partecipative che altrimenti rimarrebbero sommerse.
Ritornando al problema sopra citato, sviluppo assieme ai ragazzi il diagramma di flusso:
Dopo avere analizzato il problema, dobbiamo trasferire ciò che abbiamo interpretato e scomposto nel
linguaggio puzzle di scratch.
I passaggi possono essere di seguito riassunti:
1. inserimento blocco situazioni per iniziare
2. inserimento blocco aspetto “dire ciao per due secondi”
3. inserimento blocco chiedi “inserisci la lunghezza del primo lato” e attendi
5
4.
5.
6.
7.
8.
9.
inserimento blocco variabili “porta lato A” , inserire il blocco sensori “risposta”
inserimento blocco chiedi “inserisci la lunghezza del secondo lato” e attendi
inserimento blocco variabili “porta lato B” , inserire il blocco sensori “risposta”
inserimento blocco chiedi “inserisci la lunghezza del terzo lato” e attendi
inserimento blocco variabili “porta lato C” , inserire il blocco sensori “risposta”
inserimento del blocco controllo se/allora/altrimenti. Se la condizione è vera se LATO A = LATO B e
il LATO A=LATO C: allora lo script ci dirà che “puoi costruire un triangolo equilatero” altrimenti (se
cioè la condizione non è vera) esegue i blocchi inseriti all'interno della porzione "altrimenti”. Nelle
altre combinazioni si vengono a creare le altre due situazioni per la costruzione del triangolo
isoscele o scaleno.
Di seguito viene mostrato l’area di lavoro con il risultato finale.
In questo periodo “esplorativo”, mi sono imbattuta nel programma Parrot designer (una versione
modificata di Diagram designer), facile e intuitivo, che crea diagrammi di flusso con la possibilità di vedere
attraverso immagini la preview del diagramma. Questo si esempio si pone come alternativa accattivante e
attraente al metodo classico di sviluppare i diagrammi di flusso.
Le immagine possono essere scelte dai ragazzi e inserite tramite link nel codice sorgente o tramite editor
grafico. L’esempio sotto riportato si riferisce alla preparazione del tè.
6
Dopo aver creato il diagramma di flusso è possibile visualizzarlo tramite il pulsante preview.
Nella preview è possibile scorrere il diagramma di flusso premendo sia sul tasto avanti che sulle richieste da
parte del diagramma di flusso stesso (SI/NO).
Digitando NO si
torna al cronometro
7
Digitando SI si procede alla
preparazione del tè
Conclusioni
Come scrivevo, si dà talvolta per scontato che lo studente impari da solo a studiare, a memorizzare, ma
queste azioni se vogliamo “informatiche” invece sono da insegnare, non nascono naturalmente: ne ho
avuto conferma in questi giorni, durante gli esami di terza media. Mi è infatti capitato di leggere un tema di
una ragazza che descriveva il faticoso passaggio dalla scuola primaria alla scuola media, faticoso soprattutto
a causa del diverso metodo di studio. Spesso gli insegnanti non conoscono tutte le tecniche per facilitare
l’apprendimento e conseguentemente non sono in grado di insegnarle. Il docente dovrebbe dare centralità
nella programmazione al modulo “impara a pensare”: nella moderna società che richiede una “educazione
permanente” e non come in passato la semplice trasmissione nozionistica del patrimonio culturale, è di
vitali importanza aver acquisito l’attitudine ad affrontare i nuovi problemi e le nuove conoscenze.
Così facendo, lo studente avrà la possibilità e la competenza nel formalizzare logicamente qualsiasi tipo di
progetto.
Insegnare è un “mestiere” che non deve essere statico, ma in continua evoluzione; è una professione che
deve continuamente evolversi e crescere, ascoltando le richieste che i nostri giovani studenti ci fanno, in
una costante ricerca di dialogo e apertura verso nuove scoperte.
8
“Si impara attraverso il pensiero: pensando a cosa si sta facendo o alle cose in cui si crede, a cosa altri
hanno fatto o sulle cose in cui altri credono, pensando al processo che il pensiero svolge. Il pensiero media
l’apprendimento. L’apprendimento è il risultato del pensiero”. (D. Jonassen).
Sara Salucci
9