1 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
8
Embed
2A-2B Programmazione didattica - mcurie.edu.it · Esercizi di programmazione in questo linguaggio macchina (le specifiche tecniche sono presentate nel testo Brookshear, Informatica.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
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
2
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:
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 a42 su 127 paesi analizzati, penultima fra quelli dell’Europa occidentale, nonostante sia a27
nel possesso di PC e a22 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
3
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
4
� automi a stati finiti
o il ragionamento logico-deduttivo e il problem-solving
o la composizione di oggetti complessi tramite elementi più semplici (astrazione e
composizione)
� simulazione e costruzione di algoritmi
o la rappresentazione e la trasmissione delle informazioni
� formati
� codici
� sicurezza
o 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