2a-2b programmazione didattica - mcurie.edu.it · esercizi di programmazione in questo linguaggio...

8
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

Upload: letruc

Post on 16-Feb-2019

219 views

Category:

Documents


0 download

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:

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 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

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

5

- 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.

- Utilizzare il linguaggio

Python per implementare

algoritmi di difficoltà sempre

crescente.

- Saper realizzare semplici

applicazioni grafiche in

Python

AL-1 Problemi, algoritmi, programmi

- 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

- 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

6

- 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:

Primo quadrimestre Secondo quadrimestre

Set. Ott. Nov. Dic. Gen. Feb Mar. Apr. Mag. Giu.

AC AC AL1 AL1 AL2 AL2 AL2 AL2 AL2 AL2 AL2 AL2 AL2 AL3 AL3 AL3

AL3 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.

7

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 voto su registro elettronico

5 5,00

5+ 5,25

5½ 5,50

6- 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.

8

NOTA. Il piano di lavoro previsto può subire variazioni per poter meglio essere adattato alle

esigenze della classe.

L’insegnante

Francesco Tappi