Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
1
Candidata: Buralli Lorella Classe di concorso: A076
Unità didattica Il lavoro preparato, è un modo per avvicinare gli alunni all’informatica e in particolare agli algoritmi. Benché non siano richiesti prerequisiti per lo studio della disciplina, in
questa unità didattica, sono stati affrontati solo alcuni argomenti fondamentali per evitare di appesantire le lezioni con un approccio molto teorico, a cui i ragazzi non sono abituati.
Il percorso è stato attuato in una classe prima di un Istituto Professionale e con alunni in possesso di conoscenze a livello intuitivo e una scarsa padronanza dei mezzi informatic i e della matematica di base.
Premessa agli obiettivi: ad essere fondamentali non sono più le conoscenze, ma le abilità
e le competenze, che bisognerebbe contribuire a sviluppare. Diventano quindi elementi
di fondamentale importanza la conoscenza approfondita della classe, la collaborazione
con gli insegnanti del medesimo team (o Consiglio di Classe), la collaborazione con gli
insegnanti della medesima materia (riunioni di dipartimento), l’adesione al POF
dell’istituto.
Gli obiettivi didattici riguarderanno:
Conoscere gli algoritmi e la metodologia per formalizzare il procedimento risolutivo di un problema.
Riuscire a fare l’analisi di un problema e fornire una rappresentazione chiara e ordinata dell’algoritmo con linguaggio di progetto e con diagrammi di flusso.
Conoscere e saper organizzare le istruzioni di un algoritmo usando le strutture di controllo di sequenza, selezione e ripetizione.
Al termine dell’unità, gli alunni avranno il compito di effettuare delle verifiche di apprendimento attraverso discussione interattiva e partecipata con l’insegnante, tale da
stimolare il feed-beek capace di generare nuovi quesiti e attività che potenziano ulteriormente i contenuti già enunciati.
Tale attività in classe vista come momento di acquisizione di conoscenze e abilità, può prevedere lezioni frontali, lavori di gruppo, esercitazioni, studio individuale, creazione di brainstorming con l’obiettivo di stimolare le domande che titolo dell’unità e compito di
prestazione faranno nascere.
PROVA UNIFICATA D'ESAME PER I CORSI:
"ALGORITMICA E PROBLEM SOLVING", "LINGUAGGI DI PROGRAMMZIONE PER L’INSEGNAMENTO”
“LABORATORIO DIDATTICO-PEDAGOGICO PER L’INSEGNAMENTO DEL’INFORMATICA 1”
2
I contenuti potranno suddividersi in:
1. Informazioni e linguaggio: si definisce cos’è un’informazione, le sue
caratteristiche e i metodi utilizzati per trasmetterla attraverso un linguaggio. Si potranno porre in essere vari esempi per formalizzare un concetto già noto
come quello di informazione facendo ricorso a situazioni comuni (vedi
tabella a lato) per avvicinare gli alunni al concetto di INPUTELABORAZIONEOUTPUT.
Sarà importante usare un linguaggio che l’emittente conosce e il ricevente
sappia interpretare. Ad un live llo superiore, questo aiuterà l’alunno a comprendere che il linguaggio di programmazione non è altro che un modo per comunicare e trasmettere le
informazioni al calcolatore.
2. Caratteristiche generali del linguaggio: linguaggio formale dedicato a scopi
precisi e circoscritti, basato su simboli e regole ben precise prive di eccezione e
ambiguità. Dall’uso intuitivo del termine linguaggio si passa ad un suo uso più precipuo, un esempio di ambiguità potrebbe essere rappresentato dalla seguente frase:
“La giovane mente” può essere così interpretato dal ricevente :
a. C’è una persona giovane di genere femminile che non racconta la verità. b. C’è una persona la cui mente è giovane.
Dal linguaggio naturale, si dovrà dunque passare ad uno formale. Ogni linguaggio
è costruito su un alfabeto di simboli convenzionali detti caratteri. Ad esempio il linguaggio della logica usa le lettere dell’alfabeto (a,b,c,d,e,f…) per indicare le proposizioni, mentre utilizza i simboli ¬ (not), ^ (and), ˅ (or), → (implicazione),
↔ (doppia implicazione) per indicare i connettivi logici. Dunque il suo alfabeto sarà composto dall’insieme: A= {a, b, c, d, …, z, ¬, ^, ˅ , →, ↔}.
3. I linguaggi informatici: si definisce cos’è un linguaggio di programmazione e si
evidenziano le prime fasi concettuali nel processo di progettazione di un programma.
Si evidenzierà come il linguaggio di programmazione (noto anche come linguaggio d’alto livello) sia di fatto molto lontano dal codice binario (linguaggio a basso livello), cioè dal formato dei comandi che un pc è in grado di eseguire.
Potremo vedere, senza addentrarci nella programmazione vera e propria, come l’elaboratore sia in grado di comprenderlo, attraverso la traduzione da un
linguaggio all’altro, tramite particolari programmi detti compilatori o traduttori,
INFORMAZIONE EMITTENTE Direzione da prendere Cartelli stradali Possibilità di attraversare la strada
Semaforo
Orari dei voli Pagina internet Fatto di cronaca Pagina
quotidiano Determinazione area Formula
matematica
3
che trasformano il codice sorgente, scritto dal programmatore, in codice
macchina, eseguibile dal calcolatore. Per aiutare a comprendere questo concetto, potremmo paragonare il linguaggio di programmazione, ad un punto d’incontro,
un linguaggio intermedio, tra quello naturale ed il codice macchina.
4. Analisi e comprensione del problema: vengono affrontati in modo sistematico i
problemi analizzando i vari aspetti della loro formulazione, contribuendo a costituire una prima base di pensiero algoritmico. L’analisi consisterà
nell’affrontare in modo sistematico il problema, analizzandone i vari aspetti della formulazione: così facendo potremmo scomporre situazioni anche molto complesse e ricche di incognite in elementi riconoscibili e accessibili. La
comprensione del problema consiste nell’evidenziare i reali obiettivi del problema, le sue regole, i dati espliciti e impliciti ed eliminare i dettagli inutili e
ambigui affinché il tutto risulti il più chiaro ed essenziale possibile. 5. Caratteristiche dell’algoritmo : viene data una definizione di algoritmo
specificandone i tratti distintivi. Per algoritmo si intende la descrizione completa ed esaustiva di un insieme finito e ordinato di istruzioni, che devono essere
eseguite per portare a termine un dato compito e per raggiungere un risultato definito in precedenza.
6. Diagrammi a blocchi: si facilita la comprensione dell’algoritmo attraverso la sua rappresentazione grafica
Come si può facilmente capire, la lettura di un diagramma a blocchi è
estremamente semplice anche per chi non è particolarmente esperto nell’util izzo
degli algoritmi.
Gli elementi grafici utilizzati indicano la diversa natura delle operazioni.
Blocco terminale: è usato solo per indicare l’inizio e la fine
dell’algoritmo.
Blocco di comunicazione: al suo interno vengono scritte le operazioni
dialogo tra uomo e macchina (leggi, scrivi dati ecc...)
Blocco di elaborazione: contiene le istruzioni vere e proprie che
compiono operazioni.
7. Programmazione strutturata: si descrive la tecnica di programmazione che limita
l’utilizzo delle regole ammesse nella formulazione di un algoritmo. Con programmazione strutturata, si intende un paradigma di programmazione, ossia
Inizio
Leggi
valore lato
Comunica
risultato
Calcola perimetro
Calcola area Fine
4
uno stile fondamentale che ne fissa regole e limiti. Con questo le regole ammesse
per descrivere gli algoritmi si possono riassumere nelle seguenti: la sequenza (o concatenazione), la selezione (o alternativa), l’iterazione (o ciclo, ripetizione).
8. Linguaggio di pseudocodifica: cenni dell’utilizzo di un linguaggio di alto live llo.
Importante a questo punto sarà vedere alcuni elementi per descrivere algoritmi in
modo chiaro e ordinato. Prima dell’algoritmo vero e proprio è necessario dichiarare i dati da utilizzare specificandone il nome e il tipo con la parola
dichiara. Per esempio: dichiara base, altezza come numeri interi
Così facendo, abbiamo creato due variabili di tipo intero che al momento non
contengono alcun valore.
L’elenco delle istruzioni di un algoritmo comincia sempre con la parola inizio e
termina sempre con la parola fine. Vi sono poi alcune regole per comunicare
all’esecutore le istruzioni che compaiono in questa sezione. Per indicare
un’istruzione di acquisizione di dati, si usa il comando leggi, seguito dal nome
della variabile che deve essere letta. Per esempio:
leggi base
leggi altezza
Così facendo il calcolatore legge i dati contenuti nelle variabili base e altezza.
Per indicare la comunicazione di dati si usa il comando scrivi seguito dal nome
della variabile che deve essere scritta. Per esempio:
scrivi base
Così facendo il calcolatore scriverà il valore della base, fornendo l’output
direttamente all’utente.
Per indicare l’assegnazione di un valore ad una variabile si usa l’istruzione
assegna. Per esempio:
assegna base = 5
assegna altezza = 8
ovviamente durante l’assegnazione si possono compiere calcoli es.:
assegna altezza = base + 3.
Quanto descritto fino a questo momento dovrebbe aver contribuito a costruire un metodo
di ragionamento, più formale e logico, fornendo strumenti idonei per potersi avvicinare
con maggiore consapevolezza al mondo dell’informatica.
METODOLOGIE DIDATTICHE
Compito di un Insegnante è di aiutare ad accrescere competenze e apprendimenti,
utilizzando gli strumenti e le modalità più adatte al destinatario del suo intervento
educativo. Ogni individuo ha margini di miglioramento ovvero la possibilità di sviluppare
al massimo le proprie qualità grazie all'intervento collaborativo degli altri. Come dice
Vygotsky ognuno possiede la propria zona di sviluppo prossimale.
In questa prospettiva insegnare non può più significare soltanto curricolo e istruzione, ma
diventa importante anche gestire la classe, motivare gli studenti ad apprendere e cercare
5
di soddisfare i loro bisogni individuali, inclusi quelli di coloro che manifestano problemi
cronici di personalità e comportamento. Dopo aver dato corpo ai contenuti, dobbiamo renderli significativi e trovare la strategia
più adatta alla tipologia di classe nella quale si dovrà intervenire. Come primo passo sarà
importante contestualizzare nella realtà quanto proposto e evidenziato nei contenuti. Ma
cos’è un algoritmo, perché i ragazzi dovrebbero interessarsi a questo?
Molto spesso usiamo gli algoritmi in modo inconsapevole e potrebbe essere interessante
andare a caccia di algoritmi. Potremmo così scoprire insieme ai nostri ragazzi come,
scrivere una ricetta di cucina, sia un algoritmo, potremmo vedere poi le differenze o le
puntualizzazioni (sempre alla luce dei contenuti della nostra unità) di cui l’algor itmo
necessita.
Se riflettiamo bene ci accorgiamo che noi tutti quotidianamente risolviamo numerosi
algoritmi: quando programmiamo la lavatrice o la lavastoviglie, quando cuciniamo,
quando rispondiamo a un sms, quando guidiamo la macchina o andiamo in bicicletta,
quando allacciamo le scarpe. Sono tutte azioni ripetitive svolte in sequenza con un certo
ordine, che hanno un inizio e dopo un certo numero di passi, una fine. Ovviamente
possiamo superare la fase della ricetta e passare ad algoritmi più complessi che ci facciano
capire come porsi un problema e cercare di risolverlo (un metodo per risolvere un
problema) possa non solo essere di grande utilità, ma al contempo abituarci a ragionare
in un certo modo. Potrebbe divenire quindi interessante per i ragazzi capire come la
soluzione di uno scambio veloce tra cd posseduti da un amico e i propri, possa essere
risolto proprio attraverso la strutturazione di un algoritmo. Ad esempio potremmo porre
a vari gruppi, come risolvere il confronto e lo scambio tra di loro, di cd, libri, fumett i,
riviste ecc. Il classico “ce l’ho mi manca” risolto con un algoritmo. In modo “ludico”
imparare, partendo da ciò che si sa, usando le risorse disponibili in modo coerente e
fecondo.
Ed allora trovare un algoritmo che fornisca un unico metodo per risolvere ogni particolare
problema di una certa classe di problemi simili può tradursi in un gioco:
Gioco del pari
• Il gioco comincia con 27 oggetti su una tavola. Alternandosi, i
giocatori raccolgono ogni volta da 1 a 4 fiammiferi. Vince chi ha in mano un numero pari di oggetti quando questi sono stati tutti raccolti.
Strategia vincente:
1. A raccoglie 2 oggetti
2.Sia r il resto ottenuto dividendo per 6 il numero di oggetti ancora da raccogliere. 3.Se B ha un numero pari di oggetti: 1. Se r = 2, 3, 4 o 5 allora A raccoglie, rispettivamente 1, 2, 3 o 4 oggetti 4.Se B ha un numero dispari di oggetti: 1. Se r = 0, 1, 2 o 3 e se sulla tavola restano ancora almeno 4 oggetti, allora A raccoglie, rispettivamente 1, 2, 3 o 4 oggetti 2. Se r = 4 allora A raccoglie 4 oggetti
3. Se sulla tavola restano 1 o 3 oggetti allora A li raccoglie tutti.
Il gioco dell’undici
•Undici oggetti sono su una tavola. I due giocatori si alternano
nel raccogliere 1, 2 o 3 oggetti finché non restano più oggetti sul tavolo.
•Il giocatore costretto a raccogliere
l’ultimo oggetto perde
Strategia vincente
1.A raccoglie 2 oggetti. 2.B raccoglie K oggetti (k≤3) 3.A raccoglie 4–K oggetti
6
Per apprendere bisogna comprendere, non c’è bisogno di affidare alla memoria le
informazioni conoscitive: perché queste possano essere riattivate in qualsiasi momento,
occorre mettere insieme (cum, insieme, e prehendere, prendere = mettere insieme),
costruire, inventare, scoprire i concetti. L’apprendimento per scoperta risulta essere
congeniale, quindi, ad una scuola che deve operare in una società in rapida trasformazione,
in cui è importante acquisire oltre che un notevole bagaglio di conoscenze, la capacità di
saper affrontare nuove situazioni e soprattutto la voglia, il desiderio, di apprendere,
d’imparare e studiare, recuperando la natura profonda dell’uomo, cioè la cultura, la
ricerca e l’amore del sapere.
Dobbiamo avvicinarci agli algoritmi in una prospettiva che ci porti all’analisi, alla
comprensione e alla descrizione di un problema per poi strutturarlo in passi ordinati,
chiari (non ambigui) e finiti per arrivare alla soluzione. La metodologia del problem
solving, in ottica interdisciplinare, vuol dire proprio un uso corretto dell'abilità di
classificazione di situazioni problematiche e capacità, quindi, di risolvere problemi- t ipo
analoghi. Lavorare per gruppi, scambiarsi domande che dalle diverse collaborazioni
possono scaturire per arrivare alla soluzione, può esse il modo giusto per un
apprendimento significativo. Anche l’errore strutturale e/o concettuale che può verifica rs i
nella realizzazione di un modello algoritmo, all’interno di tali strategie metodologiche ,
può divenire fonte di discussione creativa, dove tutti, ognuno con il proprio contributo,
possa arrivare alla soluzione e a nuove formulazioni. Bisogna pensare ad una scuola di
tipo laboratoriale, dove tutti, nessuno escluso, possa partecipare al processo formativo per
diventare cittadini consapevoli e attivi. In ogni classe ci sono alunni che presentano una
richiesta di speciale attenzione per una varietà di motivi e tutti quanti meritano
accoglienza e quindi diventa indispensabile creare un ambiente di inclusione dove ognuno
possa esprimersi a seconda delle proprie capacità e confrontarsi per crescere in quel
dialogo di apprendimento/insegnamento che deve essere costante. La sfida ovviamente si
fa più impegnativa in realtà complesse, ormai diffuse un po’ ovunque sul nostro territorio,
vuoi per i forti flussi migratori degli ultimi anni, vuoi per la crisi, che ha coinvolto il
nostro paese, non solo da un punto di vista economico, ma anche e forse con conseguenze
sul lungo termine ancora più incisive, dal punto di vista culturale. E così l’area dello
svantaggio scolastico è molto più ampia di quella riferibile esplicitamente alla presenza
di un deficit. Insegnare ad alunni con tipologie diverse di difficoltà è un aspetto del saper
insegnare. Ciò di cui noi abbiamo bisogno sono delle buone prassi didattiche, di mezzi
che, come diceva Maria Montessori, “possono rendersi adatti alle capacità di ciascuno”.
Occorre quindi conoscere molti strumenti didattici, molti metodi, molti modi di lavorare
e di organizzare la classe, dobbiamo conoscere i processi attraverso cui possiamo di volta
in volta trasformarli, modificarli, curvarli per renderli adatti alle capacità di ciascuno.
Anche gli algoritmi e l’informatica tutta, entrano a pieno titolo, oggi più che mai, in
questo processo educazionale, dove sempre più importante diventa padroneggiare la
tecnologia, che non significa muoversi con agilità sui social network o mandare sms alla
velocità della luce, ma divenire consapevoli che, si tratti di algoritmi, grafica, animazione,
video giochi o programmazione, questo percorso potrà dischiuderci un mondo, uno spazio
creativo, illimitato.