Liceo classi 2A-2B Informatica

Transcript

Liceo classi 2A-2B Informatica
PROGRAMMAZIONE DIDATTICA ANNUALE
ANNO SCOLASTICO 2016/2017
DOCENTE: PROF. FRANCESCO TAPPI
MATERIA DI INSEGNAMENTO: INFORMATICA
CLASSI: 2A – 2B SCIENZE APPLICATE
Risultati di apprendimento in termini di competenze
COMPETENZE GENERALI E TRASVERSALI DELLA DISCIPLINA
“Quelli che s’innamorano di pratica, sanza scienza, son come ‘l nocchiere, ch’entra in navilio
sanza timone o bussola, che mai ha certezza dove si vada” Leonardo Da Vinci
“Sedotti dalla facilità di raccogliere dati, sottovalutiamo lo sforzo di trasformare i dati in
informazione, l’informazione in conoscenza, e la conoscenza in saggezza.” Britton Harris, 1987
L’insegnamento di informatica deve contemperare diversi obiettivi: comprendere i principali
fondamenti teorici delle scienze dell’informazione, acquisire la padronanza di strumenti
dell’informatica, utilizzare tali strumenti per la soluzione di problemi significativi in generale, ma
in particolare connessi allo studio delle altre discipline, acquisire la consapevolezza dei vantaggi e
dei limiti dell’uso degli strumenti e dei metodi informatici e delle conseguenze sociali e culturali di
tale uso […] L'uso di strumenti e la creazione di applicazioni deve essere accompagnata non solo
da una conoscenza adeguata delle funzioni e della sintassi, ma da un sistematico collegamento con
i concetti teorici ad essi sottostanti […]
Nel primo biennio sono usati gli strumenti di lavoro più comuni del computer insieme ai
concetti di base ad essi connessi. Lo studente e introdotto alle caratteristiche architetturali di un
computer: i concetti di hardware e software, una introduzione alla codifica binaria presenta i
codici ASCII e Unicode, gli elementi funzionali della macchina di Von Neumann: CPU, memoria,
dischi, bus e le principali periferiche. (AC). Conosce il concetto di sistema operativo, le sue
funzionalità di base e le caratteristiche dei sistemi operativi più comuni; il concetto di processo
come programma in esecuzione, il meccanismo base della gestione della memoria e le principali
funzionalità dei file system. (SO) Lo studente conosce gli elementi costitutivi di un documento
elettronico e i principali strumenti di produzione. Occorre partire da quanto gli studenti hanno già
acquisito nella scuola di base per far loro raggiungere la padronanza di tali strumenti, con
particolare attenzione al foglio elettronico. (DE) Apprende la struttura e i servizi di Internet.
Insieme alle altre discipline si condurranno gli studenti a un uso efficace della comunicazione e
della ricerca di informazioni, e alla consapevolezza delle problematiche e delle regole di tale uso.
Lo studente e introdotto ai principi alla base dei linguaggi di programmazione e gli sono
illustrate le principali tipologie di linguaggi e il concetto di algoritmo. Sviluppa la capacita di
implementare un algoritmo in pseudo-codice o in un particolare linguaggio di programmazione, di
cui si introdurrà la sintassi.(AL)
dalle Indicazioni nazionali riguardanti gli obiettivi specifici di apprendimento,
Liceo Scientifico opzione scienze applicate
1
Per la maggior parte delle persone l’Informatica viene percepita più come tecnologia e insieme
di servizi, piuttosto che come una disciplina scientifica. E’ naturale pensare a questa equivalenza:
Informatica = ITC = Servizi [posta elettronica, browser, word processing, …].
L'accezione scientifica dell’informatica è praticamente assente nella pratica dell'insegnamento
scolastico, con grave danno nella percezione della disciplina da parte dei non addetti ai lavori.
Paradossalmente, le prime esperienze di insegnamento dell'informatica negli anni '80
privilegiavano invece questa accezione, proponendo iniziative legate per lo più alla
programmazione. Tali iniziative sono oggi considerate superate da molti, probabilmente grazie alla
disponibilità di applicativi software sempre più accattivanti e d'uso intuitivo che nascondono, ad un
primo superficiale esame, la natura computazionale e algoritmica dello strumento.
Al contrario, la consapevolezza di questa natura intrinseca è fondamentale per un uso critico,
proficuo ed evoluto delle tecnologie informatiche. Viceversa, trascurando questi aspetti c'è il rischio
che queste ultime, ormai onnipresenti e pervasive, vengano percepite come misteriose o addirittura
“magiche".
E’ una controversia antica. Già nel 1986 Djikstra diceva: “Chiamare computer science
l’informatica è come chiamare scienza dei telescopi l’astronomia”.
Gli effetti di questa visione distorta dell’informatica sono sotto gli occhi di tutti:
o I corsi di laurea in Informatica faticano ad attirare gli studenti più brillanti.
o La società stenta a sfruttare appieno i benefici della rivoluzione informatica. Leggiamo, nel
World Economic Forum Global Information Technology Report 2007-08, come l’Italia sia
42 a su 127 paesi analizzati, penultima fra quelli dell’Europa occidentale, nonostante sia 27 a
nel possesso di PC e 22 a nell’accesso ad Internet.
o Gli alunni diventano grandi “smanettatori” al computer. Davanti ad un problema, procedono
per tentativi. Alla fine magari ottengono il risultato, ma perché e come ci arrivino non lo
sanno: diventano proceduralisti. Ma non è questa la conoscenza!
Cosa fare? Prima di tutto occorre insegnare informatica. Il computer sta all'informatico come il
microscopio al biologo o il telescopio all'astronomo. Lo studio della tecnologia attuale e' solo
funzionale (solo i concetti sui quali la tecnologia si basa sono interessanti).
•
•
•
Conoscenza di base, a lungo termine. Esempi: algoritmi, complessità, computabilità...
Conoscenza a medio termine. Esempi: linguaggi, formati, architetture di processori e bus
Conoscenza a breve termine. Esempi: uso di strumenti software.
Occorre concentrarsi sulla conoscenza fondamentale che quindi ha una valenza di più lungo
termine. Tra l'altro la didattica sul mero uso di un computer, come quella dell'uso di un microscopio
è per gli studenti noiosa, ripetitiva e per nulla entusiasmante.
A tal proposito ecco alcune riflessioni illuminanti del professor Renzo Davoli dell’università di
Bologna:
“Gli studenti avvertono tantissimo la partecipazione del docente all'insegnamento. Il corso che
segue passo passo un libro di testo, uguale negli anni, senza novità non viene apprezzato.
Considerate che la vostra aula e' sempre pubblica... con i social network i ragazzi di diversi anni di
corso e di diverse scuole si confrontano. Occorre conquistare l'interesse dei ragazzi...
Considerate che nell'insegnamento occorre combattere alcuni preconcetti che i ragazzi della
“nintendo generation” spesso hanno. Per esempio sono convinti che non sia necessario conoscere
il funzionamento delle cose per usarle. In questo caso occorre mostrare loro che se non si conosce
il funzionamento di uno strumento si e' inermi quando lo strumento fornisce risultati inattesi. In
2
altre parole si e' schiavi dello strumento e non si e' flessibili nei casi non comuni. Un altro
preconcetto tipico e' che tutto sia troppo complesso per poter essere compreso. Tutta l'ergonomia
ha prodotto una forma di pigrizia culturale (che fa comodo a chi non vuole che il mondo evolva
perché ci lucra sopra!). Io penso che un aspetto importante della didattica sia insegnare ai ragazzi
a non aver paura della materia studiata. Un laureato della materia X, nel mio modo di vedere le
cose, e' colui che può dire: se un essere umano esperto in X ha realizzato Y, io posso capire Y. Per
la scuola superiore magari basta ridurre il senso di spavento, dare fiducia...
Un concetto che un docente deve sempre fornire come effetto collaterale e' la perseveranza, la
pazienza che occorre nel cercare il risultato voluto. Il senso di velocità e di bombardamento
informativo che i nostri giovani hanno fa in modo che non abbiano (o non pensino di avere) il
tempo per costruire, fare esperimenti, lasciar sedimentare la conoscenza. La noia e' il nostro
nemico maggiore nell'aula.
Per riassumere i concetti mi basta dire che i nostri ragazzi sono stati viziati ad avere soluzioni
pronte, subito e appariscenti. Li hanno stupiti con effetti speciali, come diceva un antico messaggio
pubblicitario, continuava “ma noi siamo scienza non fantascienza”. Noi dobbiamo fare in modo
che si stupiscano di loro stessi”.
La scelta del linguaggio di programmazione
Il primo linguaggio di programmazione che sarà presentato agli studenti sarà Python.
Ci sono vari motivi per scegliere Python:
ha una sintassi "minimale" (niente begin/end parentesi graffe, le variabili vengono definite con
l'uso, garbage collection automatica)
le variabili hanno un tipo inferito dal dato memorizzato
le funzioni operano automaticamente come template, non sono legate al tipo dei parametri ma
funzionano per ogni tipo per il quale sono definiti gli operatori o le ulteriori funzioni utilizzati
educa alla scrittura ordinata del codice (l'indentazione fa parte della sintassi
lo stesso linguaggio si usa in programmazione procedurale imperativa, a oggetti e funzionale.
ha un uso amplissimo (non e' il Pascal che fuori dalla scuola non usa nessuno o il C che e' un
linguaggio "per soli adulti" dove si possono scrivere cose efficientissime ma incomprensibili).
E' uno dei linguaggi maggiormente utilizzati in Google!
funziona sui cellulari, sul raspberry pi...
ha le "batterie incluse", esistono vagonate di librerie che consentono in poche righe per esempio
di creare servizi web, accendere led etc.
e' interpretato e compilato, si può sperimentare il singolo statement con una semplice interfaccia
testuale del linguaggio e copiare/incollare lo statement in un programma più ampio
le librerie hanno autocompilazione, le librerie si autocompilano al primo utilizzo o quando
viene modificato il loro sorgente
e' molto più portabile del Java
esistono ottimi libri interattivi liberi online (in lingua inglese).
PRO: linguaggio semplice, non richiede la definizione delle variabili, signature polimorfe,
tipizzazione degli argomenti a run-time, sintassi minimale, educazione all'indentazione, e' un
linguaggio a oggetti ma non obbligatoriamente a oggetti, ha overloading degli operatori, linguaggio
realmente usato, funziona su tutto (telefonini, computer etc),
CONTRO: non e' velocissimo (usa un suo bytecode).
Verranno promossi in particolare alcuni concetti:
o la descrizione di processi di elaborazione senza ambiguità
sintassi e semantica
grammatiche
3
o
o
o
o
automi a stati finiti
il ragionamento logico-deduttivo e il problem-solving
la composizione di oggetti complessi tramite elementi più semplici (astrazione e
composizione)
simulazione e costruzione di algoritmi
la rappresentazione e la trasmissione delle informazioni
formati
codici
sicurezza
le conoscenze necessarie per non subire acriticamente il gergo tecnico onnipresente.
Le competenze che si vogliono raggiungere sono:
-
Comprendere la struttura di un elaboratore.
Scrivere un semplice programma in linguaggio macchina.
Riconoscere le diverse rappresentazioni interne dei dati.
Rappresentare algoritmi.
Utilizzare linguaggi di programmazione per implementare algoritmi.
Individuare e applicare le procedure e i modelli più appropriati per la soluzione dei
problemi.
Abilità, conoscenze e contenuti del programma
La programmazione didattica avverrà suddividendo la disciplina in tre grandi aree tematiche:
(1) Architettura dei computer (AC);
(2) Algoritmi e linguaggi di programmazione (AL);
ARCHITETTURA DEI COMPUTER (AC)
Abilità
Conoscenze
-
-
Rappresentare e quantificare
tipi diversi di informazioni.
Operare in basi diverse nella
rappresentazione dei numeri.
Riconoscere l'hardware di un
computer: scheda madre,
CPU, memoria centrale,
dischi e periferiche
principali.
Comprendere come i dati
vengono elaborati dalla CPU
Scrivere programmi in
linguaggio macchina per la
risoluzione di semplici
problemi
-
Rappresentazione delle informazioni: contenuto
dell'informazione, codifica e operazioni binarie. Sistemi
numerici posizionali: decimale, binario, esadecimale.
Macchina di Von Neumann: CPU, Memoria, Bus, dischi,
periferiche.
La macchina universale di von Neumann: il processore e la
memoria. Il sistema di numerazione esadecimale.
Conversione dal sistema binario al sistema esadecimale e
viceversa. Linguaggio macchina. Il ciclo macchina.
Definizione di una macchina a 1 byte: 16 registi generici,
PC, IR, 256 celle in memoria principale. Definizione di un
linguaggio macchina con istruzioni a lunghezza fissa per la
macchina sopra definita. Esercizi di programmazione in
questo linguaggio macchina (le specifiche tecniche sono
presentate nel testo Brookshear, Informatica. Una
panoramica generale. Cap. 2 Pag. 89 Casa editrice
Pearson).
ALGORITMI e LINGUAGGI DI PROGRAMMAZIONE (AL)
Abilità
Conoscenze
4
AL-1 Problemi, algoritmi, programmi
-
Saper classificare i problemi
secondo categorie presenti in
letteratura.
Risolvere problemi mediante
la scomposizione in
operazioni primitive.
Saper rappresentare le
procedure mediante vari
linguaggi (coding).
Rappresentare gli algoritmi
mediante i diagrammi di
flusso.
Saper utilizzare il software
AlgoBuild.
-
-
-
Algoritmi: la programmazione, problema – algoritmo programma. Problem setting (analisi, astrazione,
modellizzazione). Problem solving (strategie risolutive e
algoritmi). Definizione di algoritmo. Esempio di esecuzione di
un algoritmo su di una precisa istanza di input. I ruoli dei vari
attori: progettista, esecutore, utente. I compiti e le capacità di
ciascuno.
Rappresentare le procedure: linguaggi formali: sintassi e
semantica. Linguaggi ad alto livello. Concetto di programma.
Codice sorgente e codice macchina. Cenni di Assembly.
Compilatori ed interpreti. Debugging ed errori: sintassi,
runtime, semantica. Concetto di istruzione, dati iniziali, dati
finali.
Diagrammi a blocchi (flow-chart): elementi fondamentali per
la rappresentazione di un algoritmo mediante diagrammi a
blocchi (ellisse, parallelogramma, rettangolo). Utilizzo del
software Algobuild.
AL-2 Programmazione in Python
-
-
Utilizzare il linguaggio
Python per implementare
algoritmi di difficoltà sempre
crescente.
Saper realizzare semplici
applicazioni grafiche in
Python
-
-
Il linguaggio di programmazione Python
Cos’è un programma? Cos’è il debug? Linguaggi formali e
naturali. Il primo programma.
Variabili, espressioni ed istruzioni.
I tipi di dati, il duck typing: int, str, float, bool, list.
Le stringhe come tipo di dato composto. Gli operatori di
concatenazione ed iterazione. L’input di stringhe: raw_input.
Funzioni sulle stringhe: len, count, find, replace, in. Funzioni
chr, ord e confronto tra stringhe.
La struttura condizionale if, elif, else.
Le strutture iterative while, for.
Importare librerie e funzioni: math, randint.
Espressioni booleane.
Definizione di funzioni: def.
Passaggio di parametri, variabili locali e globali.
Le liste come tipo mutabile. Operatori sulle liste.
Le tuple.
Gli insiemi.
I dizionari (tabelle di hash).
Utilizzare Python da terminale (linea di comando) e da IDLE.
Operare con i file.
Moduli e Package.
La grafica con Python.
AL-3 Coding in un ambiente grafico
5
-
Si valuterà quale sia l’ambiente di sviluppo più idoneo in base
al livello raggiunto dagli studenti nella parte finale dell’anno
scolastico ed in base alla “disponibilità tecnologica” della
scuola (capacità di connessione alla rete internet).
-
Le possibilità sono:
o Programmazione in Scratch per la realizzazione di
giochi.
o Programmazione in AppLab per la realizzazione di App.
o Programmazione in Python su Raspberry Pi.
Scansione temporale dei moduli di apprendimento
Si riporta di seguito la tabella (indicativa) del periodo in cui svolgere ciascuna unità didattica:
Set.
AC
Primo quadrimestre
Ott.
Nov.
AC
AL1
AL1
AL2
Dic.
AL2
Gen.
AL2
Feb
AL2
AL2
Secondo quadrimestre
Mar.
Apr.
AL2
AL2
AL2
AL3
AL2
AL3
Mag.
AL3
AL3
Giu.
AL3
Metodologia: Strategie educative, strumenti e tecniche di lavoro, attività di laboratorio, attività di
progetto, didattica innovativa attraverso l’uso delle LIM, forme di apprendimento attraverso la
didattica laboratoriale, programmazione CLIL (classi V).
METODI
Lezioni frontali esplicative
• Momenti collettivi d’aula in forma discorsiva: lezione frontale, lezione frontale con interventi
individualizzati
• Ricerche guidate e lavori di gruppo
• Lettura, analisi e discussione di testi, brani, articoli
• Ascolto e visione di materiale audiovisivo
• Assegnazione di compiti e/o studio a casa
• Aula “aperta” con possibilità di partecipazione ad una classe virtuale su piattaforma Code
Studio.
• Utilizzo di una didattica laboratoriale.
STRUMENTI
• Libro di testo “Informatica Metodi e fondamenti - Zanichelli”
• Libri di consultazione.
• Dispense fornite dal docente.
• Partecipazione al Bebras dell’Informatica.
• Ambienti di sviluppo per Python, Code Studio, Piattaforma per Bebras dell’Informatica.
Strumenti e metodologie per la valutazione degli apprendimenti.
6
Le operazioni di verifica, frequenti e sistematiche, avranno lo scopo di valutare e accertare le
conoscenze acquisite dagli alunni, la continuità del grado di apprendimento e gli elementi di
progresso dialettici e cognitivi. In questo modo gli alunni potranno essere seguiti nelle diverse fasi
di studio ed elaborazione delle unità didattiche rilevando celermente eventuali difficoltà e ritardi
nella preparazione. Le verifiche saranno effettuate mediante:
• Interrogazioni orali (formali ed informali) – interrogazioni scritte
• questionari a risposta chiusa e/o aperta
• elaborati eseguiti singolarmente/prove scritte individuali
• prove eseguite al calcolatore
• studio e approfondimento a casa
• lavoro di gruppo
Criteri di valutazione:
• raccolta di dati durante le interrogazioni formali
• sistematica raccolta di dati relativi a competenze e conoscenze possedute
• raccolta di dati relativi a vari aspetti della personalità ( capacità critica, proprietà espressiva,
partecipazione, collaborazione, percorso personale rispetto ai livelli di partenza, creatività …)
Le valutazioni saranno attribuite su scala decimale completa e formulate utilizzando la griglia di
valutazione presente nel POF dell’Istituto.
I voti saranno tradotti sul registro elettronico con il seguente criterio:
voto della prova
5
5+
5½
6-
voto su registro elettronico
5,00
5,25
5,50
5,75
Ovviamente tale schema si ripeterà identico per la conversione di tutti gli altri voti.
Il numero minimo di valutazioni sarà di tre sia per il trimestre sia per il pentamestre.
Attività di supporto ed integrazione. Iniziative di recupero.
Il docente è disponibile a rispondere via email e su opportune piattaforme di elearning alle
eventuali richieste di chiarimento avanzate da parte degli studenti al di fuori dell’orario scolastico.
Qualora ci fosse un gruppo di studenti sufficientemente numeroso che presenti gravi lacune in
merito ad uno o più argomenti affrontati, verranno effettuate pause didattiche durante le ore
curricolari, per riprendere quei concetti che evidentemente non sono stati spiegati con la dovuta
attenzione o hanno presentato per gli alunni difficoltà di comprensione superiori a quelle previste.
Eventuali altre attività (progetti specifici, forme di apprendimento di eccellenza per gruppi di
allievi, sperimentazione di didattiche alternative, moduli specifici per allievi DSA/BES ed H,
sviluppo di contenuti funzionali ai progetti e alle iniziative di alternanza scuola-lavoro ecc.)
Alla fine di Ottobre saranno selezionati otto studenti, particolarmente meritevoli, che saranno
suddivisi in due squadre per partecipare alla competizione nazionale Bebras dell’informatica 2016.
La competizione sposa in pieno gli obiettivi didattici e formativi esposti sopra. La gara si terrà
in data 11 Novembre 2016.
Durante l’anno scolastico saranno proposte agli studenti sfide sempre più avvincenti per
stimolare in loro la consapevolezza della bellezza della scienza dell’informazione.
7
NOTA. Il piano di lavoro previsto può subire variazioni per poter meglio essere adattato alle
esigenze della classe.
L’insegnante
Francesco Tappi
8