materia informatica - "C. Lorenzini" – Pescia

Programmazione Dipartimento disciplinare di Matematica, Fisica e Informatica a.s. 2015 – 16
MATERIA INFORMATICA
INDIRIZZO SCIENZE APPLICATE
Finalità generali
Le finalità generali nel primo biennio, in base alle indicazioni nazionali per l’Informatica nell’insegnamento liceale, comprendono l’acquisizione delle abilità
necessarie per un corretto utilizzo dei più comuni strumenti software per il calcolo, la ricerca e la comunicazione in rete, la comunicazione multimediale,
l’acquisizione e l’organizzazione dei dati, con particolare riguardo alla loro applicabilità nell’indagine scientifica e alla scelta ragionata dello strumento di volta in
volta più adatto.
Le finalità generali nel secondo biennio, in base alle indicazioni nazionali per l’Informatica nell’insegnamento liceale, includono un allargamento della
padronanza di alcuni strumenti software precedentemente incontrati e un approfondimento dei loro fondamenti concettuali. In particolare, vengono ulteriormente
sviluppate le abilità già acquisite nel primo biennio sull’utilizzo dei più comuni strumenti software per l’Office Automation, attraverso la comprensione delle
funzionalità avanzate per la gestione di documenti semplici e delle funzionalità tipiche della gestione di documenti complessi. Infine viene proseguito il percorso
di implementazione di algoritmi in uno o più linguaggi di programmazione, ampliando poi la conoscenza ai linguaggi orientati agli oggetti e agli ambienti
DBMS per la creazione e la gestione delle basi di dati.
Le finalità generali nel quinto anno, in base alle indicazioni nazionali per l’Informatica nell’insegnamento liceale, includono un allargamento della padronanza
di alcuni strumenti software precedentemente incontrati e un approfondimento dei loro fondamenti concettuali. In particolare, vengono affrontati i principali
algoritmi del calcolo numerico, i principi teorici della computazione, le tematiche relative alle reti di computer, ai protocolli di rete, alla struttura di internet e dei
servizi di retet ed esempi di utilizzo dell’informatica in applicazioni tecnico – scientifiche. Infine viene proseguito il percorso di implementazione di algoritmi in
uno o più linguaggi di programmazione, ampliando poi la conoscenza ai fondamenti del linguaggio Javascript.
1
Obiettivi disciplinari generali
Gli obiettivi principali dell’insegnamento dell’Informatica nel primo biennio possono essere riassunti come segue:
 comprendere i principali fondamenti teorici delle scienze dell’informazione
 introdurre all’uso degli strumenti dell’informatica ed al loro utilizzo per la soluzione di problemi
 acquisire la consapevolezza dei vantaggi e dei limiti dell’uso degli strumenti e dei metodi informatici e delle conseguenze sociali e culturali di un tale
utilizzo
 acquisire una sufficiente padronanza di un linguaggio di programmazione per sviluppare semplici applicazioni di calcolo in ambito scientifico
 conoscere la struttura logico – funzionale e fisica del computer
 conoscere le reti locali ed il loro utilizzo
 comprendere il ruolo della tecnologia come mediazione fra scienza e vita quotidiana
 saper utilizzare gli strumenti informatici in relazione all’analisi dei dati e alla modellazione di specifici problemi scientifici e individuare la funzione
dell’informatica nello sviluppo scientifico.
Gli obiettivi principali dell’insegnamento dell’Informatica nel secondo biennio possono essere riassunti come segue:
 consolidare i principali fondamenti teorici delle scienze dell’informazione
 allargare la padronanza dell’uso di strumenti dell’informatica ed al loro utilizzo per la soluzione di problemi
 ampliare la padronanza di un linguaggio di programmazione procedurale per sviluppare applicazioni di calcolo in vari ambiti, privilegiando l’ambito
scientifico
 saper utilizzare gli strumenti informatici in relazione all’analisi dei dati e alla modellazione di specifici problemi scientifici e individuare la funzione
dell’informatica nello sviluppo scientifico
 acquisire i fondamenti della programmazione statica nel web
 conoscere la differenza tra i due modelli di programmazione – procedurale e a oggetti
 acquisire sufficiente padronanza di un linguaggio di programmazione orientato agli oggetti
 acquisire i fondamenti teorici indispensabili per progettare e realizzare le basi di dati
 apprendere il linguaggio oggi più comunemente utilizzato per interrogare le basi di dati.
Gli obiettivi principali dell’insegnamento dell’Informatica nel quinto anno possono essere riassunti come segue:
 consolidare i principali fondamenti teorici delle scienze dell’informazione
 allargare la padronanza dell’uso di strumenti dell’informatica ed al loro utilizzo per la soluzione di problemi
 ampliare la padronanza di un linguaggio di programmazione procedurale per sviluppare applicazioni di calcolo in vari ambiti, privilegiando l’ambito
scientifico
 saper utilizzare gli strumenti informatici in relazione all’analisi dei dati e alla modellazione di specifici problemi scientifici e individuare la funzione
dell’informatica nello sviluppo scientifico
 acquisire i fondamenti della programmazione Javascript
 acquisire sufficiente padronanza dei metodi di calcolo discreto e della modellazione MonteCarlo
 acquisire sufficiente padronanza di un linguaggio di programmazione orientato agli oggetti
 acquisire i fondamenti teorici indispensabili relativi alle reti di computer e ai loro protocolli
2
Metodologia, Mezzi e strumenti di lavoro






Indagine sulle conoscenze già acquisite e necessarie per sviluppare gli argomenti oggetto del programma
Presentazione rigorosa degli argomenti e immediata applicazione degli stessi
Problem posing come concettualizzazione e schematizzazione del problema proposto
Problem solving come individuazione operativa della soluzione del problema e sua successiva generalizzazione (se necessaria)
L’attività di laboratorio punta ad abituare lo studente alla corretta manipolazione e all’uso consapevole del computer
Si favorisce l’interdisciplinarità con i contenuti delle altre discipline per lo scambio dei saperi.
Verifiche
Il numero minimo di verifiche che verranno somministrate nel corso dell’anno scolastico sarà:
nel primo periodo:
almeno 2 prove scritte (e/o pratiche) e 1 prova orale oppure almeno 1 prova scritta (e/o pratica) e 2 prove orali (la valutazione avviene
mediante l’attribuzione di un VOTO UNICO)
nel secondo periodo: 3 prove per la valutazione scritta (e/o pratica) e 2 prove per la valutazione orale
Le verifiche somministrate saranno scelte dal docente tra le seguenti tipologie:
 prove strutturate
 prove semi – strutturate
 prove non strutturate
 interrogazioni orali
Si ritiene, inoltre, utile richiedere interventi, dal posto o alla lavagna, volti ad accertare la continuità e la qualità dello studio individuale. Tali interventi potranno
essere oggetto di valutazione parziale o totale.
3
Criteri di valutazione
Per la valutazione delle prove si terrà conto dei seguenti indicatori:
 grado di acquisizione delle competenze specifiche
 attenzione e impegno dimostrati
 progressi realizzati rispetto ai livelli iniziali
 capacità e volontà di recupero dimostrate
La valutazione sarà effettuata in modo da rendere l’alunno consapevole del livello di preparazione raggiunto ed, eventualmente, delle modifiche o delle
integrazioni da dover effettuare per migliorare il livello di preparazione, anche con la collaborazione dell’insegnante attraverso interventi didattici più mirati e
personalizzati.
La valutazione formativa verrà effettuata durante l’intero anno scolastico mediante la sistematica correzione degli esercizi assegnati per casa, la discussione delle
difficoltà emerse durante lo studio autonomo e la rielaborazione personale degli argomenti trattati nelle lezioni precedenti; la valutazione sommativa si articola in
modi diversi in base al tipo di prova cui si riferisce.
Nella valutazione delle prove scritte (e/o pratiche) il punteggio massimo per ogni quesito viene attribuito in base alle conoscenze e alle abilità richieste per lo
svolgimento di quel singolo quesito e, inoltre, al peso che l’insegnante vuole attribuire a quel tipo di conoscenze e di abilità in base all’attività didattica svolta.
Nella fase di correzione il punteggio assegnato ad ogni quesito tiene conto della correttezza e della completezza dello svolgimento del quesito stesso. Il voto della
prova viene, infine, determinato in modo proporzionale al punteggio.
Nella valutazione delle prove orali si fa riferimento ai criteri e agli obbiettivi indicati.
Nelle valutazioni formulate in occasione delle scadenze periodali, si prenderanno in considerazione anche la partecipazione al dialogo educativo, i progressi sul
piano cognitivo, l’impegno e l’interesse nel seguire l’attività didattica.
4
Livelli minimi richiesti per il passaggio alla classe successiva (fine primo biennio)
Livello minimo - competenze
Comprendere i fondamenti teorici basilari delle scienze dell’Informazione
Acquisire la padronanza degli strumenti informatici proposti
Saper utilizzare tali strumenti per la soluzione di problemi, anche connessi allo studio di altre discipline
Raccogliere, organizzare e rappresentare dati/informazioni sia di tipo testuale che multimediale
Acquisire la consapevolezza dei vantaggi e dei limiti che il ricorso agli strumenti informatici presenta
Livello minimo – abilità/capacità
Saper orientarsi nella gestione di un sistema operativo (con particolare riferimento a Windows) per operare con icone, finestre e menù e per gestire cartelle e file.
Saper analizzare dati sperimentali e rappresentarli graficamente
Saper utilizzare la posta elettronica e saper effettuare una ricerca in Internet
Saper analizzare e formalizzare semplici problemi per individuare il percorso risolutivo di un problema assegnato e saperlo tradurre in un diagramma a blocchi
Saper tradurre un algoritmo in un linguaggio di programmazione.
Livello minimo – conoscenze
Conoscere le caratteristiche dei principali componenti hardware di un computer.
Conoscere cosa è ed a cosa serve un sistema operativo
Conoscere le caratteristiche e la relativa operatività di base dell’ambiente di lavoro Excel.
Conoscere la definizione di algoritmo e le caratteristiche fondamentali dei diagrammi a blocchi.
Conoscere e saper utilizzare le variabili, i tipi di dati e le strutture di base del linguaggio C nello strutturare il
programma risolvente un semplice problema assegnato
Conoscere che cosa è un sottoprogramma (function) e saperlo utilizzare all’interno di un programma.
5
Livelli minimi richiesti per il passaggio alla classe successiva (fine secondo biennio)
Livello minimo - competenze
Possedere i termini specifici della disciplina relativamente ai linguaggi di programmazione.
Definire ed utilizzare gli stili in un documento.
Saper inserire l’indice dei contenuti o sommario.
Formattare le celle in base a determinate condizioni.
Realizzare pagine HTML attraverso i tag più comuni.
Definire e utilizzare i file all’interno di un programma C.
Saper definire in maniera dinamica le variabili utilizzando i puntatori.
Saper utilizzare gli operatori relazionali.
Saper applicare le regole di normalizzazione.
Saper interrogare una base di dati mediante le query.
Presentare i dati sotto forma di prospetti personalizzati.
Livello minimo – abilità/capacità
Saper creare una classe e i suoi metodi (anche inline) per semplici esempi di ambito scientifico
Saper creare una semplice pagina web statica e dinamica
Saper gestire in modo elementare una base di dati
Saper interfacciare in modo elementare una base di dati con una rete tramite il modello client - server
Livello minimo – conoscenze
Conoscere la differenza tra linguaggi di alto e basso livello
Conoscere la differenza tra oggetti e classi in C++
Conoscere il concetto di ereditarietà
Elaborazione di testi: strumenti avanzati per la gestione di semplici documenti
Foglio di calcolo: strumenti avanzati, tabelle pivot ed utilizzo di semplici macro
Conoscenza dei comandi elementari per la creazione di una semplice pagina web statica in HTML
Conoscenza dei comandi elementari per la creazione di una semplice pagina dinamica in PHP
Conoscenza dei comandi elementari per la creazione, il popolamento e la gestione di una semplice base di dati
Struttura di una rete di calcolatori
Conoscenza dei livelli del modello ISO/OSI e TCP/IP
6
Livelli minimi richiesti per l’ammissione all’esame di stato (fine ultimo anno)
Livello minimo - competenze
Conoscere l’algoritmo per il calcolo approssimato della radice quadrata; metodo alternativo di Newton
Conoscere l’algoritmo per il calcolo di π con il metodo di Viète
Conoscere l’algoritmo per il calcolo del numero e
Conoscere l’algoritmo per il calcolo approssimato del seno di un angolo tramite Taylor
Conoscere l’algoritmo per il calcolo approssimato della radice di una equazione mediante il metodo di bisezione e delle secanti
Conoscere l’algoritmo per il calcolo approssimato delle aree mediante il metodo dei rettangoli, dei trapezi e di Cavalieri – Simpson
Conoscere l’algoritmo per la determinazione della retta di regressione con il metodo dei minimi quadrati
Conoscere l’algoritmo per il calcolo della complessità in funzione del passo base
Conoscere la definizione di complessità asintotica e la notazione O – grande.
Conoscere l’algebra degli O – grandi
Conoscere la classe P, NP e NPC
Conoscere gli elementi fondamentali di una rete
Conoscere le topologie di rete
Conoscere il concetto di protocollo
Conoscere i compiti dei livelli ISO/OSI e TCP/IP
Conoscere il concetto di applicazione di rete
Conoscere le tipologie di applicazione di rete
Conoscere le caratteristiche di JavaScript
Livello minimo – abilità/capacità
Saper applicare l’algoritmo per il calcolo approssimato della radice quadrata; metodo alternativo di Newton
Saper applicare l’algoritmo per il calcolo di π con il metodo di Viète
Saper applicare l’algoritmo per il calcolo del numero e
Saper applicare l’algoritmo per il calcolo approssimato del seno di un angolo tramite Taylor
Saper applicare l’algoritmo per il calcolo approssimato della radice di una equazione mediante il metodo di bisezione e delle secanti
Saper applicare l’algoritmo per il calcolo approssimato delle aree mediante il metodo dei rettangoli, dei trapezi e di Cavalieri – Simpson
Saper applicare l’algoritmo per la determinazione della retta di regressione con il metodo dei minimi quadrati
Saper implementare l’algoritmo per il calcolo della complessità in funzione del passo base
Saper confrontare gli algoritmi
Saper determinare la complessità mediante l’istruzione dominante
Saper classificare le reti in base alla topologia
Saper riconoscere i dispositivi di rete
Saper classificare le reti in base all’uso dei mezzi trasmissivi
Saper utilizzare le principali applicazioni di rete
Riconoscere i contesti per le principali applicazioni di rete
Sapare utilizzare i costrutti elementari del linguaggio JavaScript
Livello minimo – conoscenze
Riconoscere i contesti in cui utilizzare le diverse tecniche di calcolo computazionale scientifico.
Saper classificare gli algoritmi in base alle classi di complessità
Saper classificare i problemi
Saper confrontare il modello ISO/OSI con il modello TCP/IP
Saper riconoscere i contesti in cui è opportuno implementare il linguaggio JavaScript
7
Seguono i contenuti specifici suddivisi in unità di apprendimento (UdA).
Ciascuna UdA è afferente ad una delle seguenti aree tematiche:
 architettura dei computer (AC)
 sistemi operativi (SO)
 elaborazione digitale dei documenti (DE)
 algoritmi e linguaggi di programmazione (AL)
 reti di computer e protocolli di rete (RC)
 struttura di Internet e dei servizi di rete (IS)
 pagine web ed HTML (PA)
 basi di dati (BS)
 algoritmi di calcolo numerico e principi teorici della computazione (CS)
CONTENUTI E OBIETTIVI SPECIFICI
PRIMO BIENNIO
CLASSI
PRIME
Conoscenze
Sistemi informatici.
Rappresentazione delle informazioni: contenuto
dell'informazione, codifica e operazioni binarie, codice
ASCII,
interi e complemento a 2.
UdA 1 – AC
Storia dello sviluppo degli elaboratori.
Gli elementi funzionali della macchina di Von Neumann.
Architettura e i componenti fondamentali di un computer.
Le memorie: tipologie e capacità.
Le periferiche di input e di output, la loro interfaccia e le
principali caratteristiche.
Comunicazione uomo – macchina.
I sistemi di numerazione decimale, binario, ottale ed
esadecimale.
Codifica di immagini, suoni e filmati.
Le norme sulla sicurezza informatica e sul diritto d’autore.
Abilità/Capacità
Competenze
Riconoscere le caratteristiche logico-funzionali di un
computer e il ruolo strumentale svolto nei vari ambiti
(calcolo, elaborazione, comunicazione ecc.).
Riconoscere le principali forme di gestione e
controllo dell’informazione e della comunicazione
specie nell’ambito tecnico-scientifico.
Riconoscere le diverse rappresentazioni interne dei dati.
Riconoscere la struttura di un sistema di
elaborazione.
Identificare i componenti hardware di un computer:
scheda madre, cpu, memoria centrale, dischi e
periferiche principali.
Utilizzare in modo appropriato la terminologia tecnica.
Confrontare le caratteristiche tecniche principali dei
singoli componenti.
Distinguere le tipologie dei computer in base alle
attività e alle caratteristiche.
Riconoscere il ruolo dei componenti di un sistema
di elaborazione.
Rappresentare e quantificare tipi diversi di
informazioni.
Codificare e decodificare numeri e codici.
Convertire numeri e codici rappresentati secondo
sistemi diversi.
Riconoscere i limiti e i rischi dell’uso delle
tecnologie con particolare riferimento alla privacy.
8
UdA 2 – SO
Riconoscere il ruolo dei sistemi operativi e quali sono i
tipi più diffusi.
Conoscere le caratteristiche principali del desktop di
Windows e di Linux.
Il software e le categorie di software.
Software di base o di sistema: il sistema operativo (S.O.)
come gestore di risorse.
Funzionalità di base di un S.O., caratteristiche comuni a
diversi S.O.
Identificare i principali elementi dell’interfaccia grafica di
Windows e Linux (Ubuntu).
Utilizzare in modo appropriato la terminologia tecnica.
Riconoscere le caratteristiche principali del sistema
operativo.
Saper distinguere i vari tipi di software.
Comprendere il meccanismo alla base della gestione
della memoria.
Saper usare alcune tra le
funzionalità principali dei sistemi operativi.
Creare, rinominare, copiare, eliminare, spostare cartelle
e documenti.
Saper comprimere file e cartelle.
Richiamare e saper leggere le informazioni offerte da un
gestore di processi.
Utilizzare le procedure necessarie per gestire le
impostazioni dello schermo e del desktop.
Utilizzare le tecniche di drag & drop per gestire i
file e le cartelle.
Applicare i caratteri jolly alla ricerca.
Utilizzare gli elementi grafici di Windows e Linux
(Ubuntu).
Essere in grado di estrarre le caratteristiche del
computer in uso.
Gestire il file system di Windows e di Linux
(Ubuntu) attraverso l’interfaccia grafica.
Saper distinguere i tipi di file in base all’estensione.
Riconoscere il significato e la struttura delle directory.
Identificare il significato dei caratteri jolly.
Software applicativo: suite d'ufficio, utilità di sistema e
antivirus; software libero e copyright.
Raccogliere, organizzare e rappresentare
dati/informazioni sia di tipo testuale che multimediale.
Organizzare testi, dati ed immagini in formato
elettronico.
Differenza tra testi, ipertesti e ipermedia.
Riconoscere gli strumenti della multimedialità.
Elaboratore di testi: concetti e funzionalità di base.
Differenze tra tipi di link ipertestuali
Applicare le funzioni condizionali ai fogli di lavoro in
relazione a situazioni complesse.
Definire fogli di calcolo con campi calcolati e grafici
cartesiani.
Confrontare i diversi tipi di grafici offerti dal foglio di
calcolo.
Formattare un documento, utilizzare le tabelle,
stampare un documento, inserire oggetti e
immagini, salvare in formati diversi.
Processi e risorse.
File system: struttura, tipologia e gestione dei file.
UdA 3 – DE
Foglio di calcolo: concetti e funzionalità di base.
Orientarsi nell’ambiente di lavoro del foglio di calcolo
inserendo formule e funzioni per la produttività personale.
Riconoscere e usare i riferimenti assoluti e relativi.
Riconoscere i tipi principali di grafici in relazione
all’utilizzo.
Generatore di presentazioni: concetti e funzionalità di
base.
Formattare un foglio elettronico, gestire gli
indirizzi delle celle, inserire formule, funzioni e
grafici con applicazioni numeriche ed elaborazione
di tabelle di dati.
Applicare formule e funzioni corrette in relazione
al contesto.
Utilizzare riferimenti assoluti e relativi.
Creare fogli con formattazioni condizionali.
Generare grafici in relazione alla tipologia
qualitativa o quantitativa.
Applicare il ricalcolo manuale o automatico.
Significato di sito Web e pubblicazione.
Creare una presentazione ipermediale.
Redigere una relazione di laboratorio.
9
Struttura di una rete: storia e struttura di Internet,
organizzazione a livelli ed indirizzi.
Livello applicazione: principali servizi offerti; protocolli e
problematiche legate alla sicurezza.
UdA 4 – IS
Struttura di un servizio di posta elettronica, webmail e
client; struttura di un messaggio di posta e Netiquette
Usare un browser: eseguire comuni operazioni di
navigazione sul web, modificare le impostazioni del
browser.
Salvare pagine web e scaricare file dalla rete.
Copiare il contenuto di pagine web in un documento.
Usare Google come motore di ricerca.
Fasi risolutive di un problema, concetto di algoritmo,
diagramma di flusso, pseudocodice.
Creare ed utilizzare un indirizzo di posta elettronica.
Saper catalogare un linguaggio.
Riconoscere un errore sintattico o semantico.
Caratteristiche di diversi browser. Conoscenza dei servizi
di Google.
L’ambiente di programmazione SCRATCH e BYOB, i
suoi principali blocchi.
Acquisire la definizione e le caratteristiche di un
algoritmo.
Comprendere la relazione tra algoritmo e programma.
Conoscere la simbologia dei diagrammi di flussi.
UdA 5 – AL
Usare le funzionalità principali offerte da Internet per
reperire e scambiare informazioni e comprendere la
struttura della rete.
Organizzazione logica dei dati.
Come estendere il concetto matematico di variabile
numerica.
Dal problema al programma: linguaggi di
programmazione. Principali tipologie di linguaggi.
Sintassi e semantica di un linguaggio. Acquisire il
concetto di linguaggio di programmazione.
Individuare il software nelle diverse attività.
La corretta scelta di una variabile.
Distinguere tra i vari tipi di variabile il più corretto per
un dato problema.
Descrivere algoritmi in pseudocodice e costruire
diagrammi di flusso.
Utilizzare linguaggi di programmazione per
implementare semplici algoritmi.
Essere in grado di proteggere il computer dai rischi
della comunicazione in rete
Distinguare i linguaggi di programmazione.
Utilizzare la terminologia informatica.
Distinguare le fasi della compilazione.
Distinguare le fasi del ciclo di vita di un
programma.
Schematizzare un problema con diagrammi di
flusso ed algoritmi.
Realizzare semplici programmi in SCRATCH.
Analizzare, risolvere problemi e codificarne la
soluzione.
Affrontare in modo sistemico il problema.
Utilizzare formule e funzioni nel foglio elettronico per la Utilizzare la tecnica top – down per descrivere gli
risoluzione di problemi numerici e algebrici.
algoritmi.
Funzioni in un foglio elettronico.
Conoscere la differenza tra programma e processo.
Comprendere la differenza tra compilatore e interprete.
Acquisire il concetto di paradigma.
Elementi fondamentali di un eventuale esempio di
linguaggio funzionale: dichiarazione di variabili intere e
reali, operazioni sui dati, istruzione di assegnazione, le
strutture di sequenza, selezione e iterazione.
CLASSI SECONDE
Conoscenze
Abilità/Capacità
Competenze
10
Fondamenti di ingegneria del software: il ciclo di vita del
software. I fattori di qualità di un programma. Strategie di
progetto: top – down e bottom – up.
Rappresentazione di algoritmi in linguaggio C.
Struttura di un programma C.
UdA 1 – AL
UdA 2 - AL
UdA 3 - AL
UdA 4 – RC
Conoscere i diversi formati di un programma.
Descrivere le diverse fasi di sviluppo di un programma.
Comprendere il concetto di variabile.
Dichiarazione dei tipi di variabili: int, long int, float,
double, long double, char.
Tabella di traccia per il controllo delle variabili.
La dichiarazione delle costanti.
Conoscere le istruzioni di comunicazione con l’utente:
Input e output dei dati.
Comprendere l’importanza del commento del codice.
Casting, operatori matematici e commento del codice.
Conoscere l’istruzione di selezione semplice e doppia:
if…else
Comprendere il concetto di annidamento e l’istruzione
switch
Conoscere gli operatori logici: &&, || e !
Comprendere il concetto di iterazione
Conoscere le diverse tipologie di iterazione
(precondizionata, postcondizionata, a conteggio)
Cicli annidati
Comprendere il teorema di Jacopini – Böhm
Conoscere la differenza tra iterazione definita e indefinita.
I dati strutturati: i vettori e gli arrays.
Le funzioni senza parametri
Variabili locali e ambiente locale
Ambiente locale e globale
Le funzioni con i parametri passati per valore e per
indirizzo
Le funzioni e il concetto di ricorsione
Array n-dimensionali: le matrici.
Caratteristiche delle reti di computer
LAN – WAN – MAN
Differenziazione a livello topologico
Gli strumenti delle reti.
Il protocollo TCP.
Indirizzo IP e le classi di reti
Saper individuare le diverse fasi della produzione del
software.
Disporre l’output sullo schermo.
Utilizzare le variabili nei programmi.
Commentare il codice del programma.
Utilizzare variabili intere, reali e booleane.
Utilizzare gli operatori / e % sui numeri interi.
Scrivere codice con istruzioni condizionali.
Scrivere codice complesso con blocchi di istruzioni
nidificate.
Combinare più selezioni con condizioni logiche
composte.
Saper gestire il dandling else
Scrivere codice utilizzando l’istruzione di selezione
multipla.
Editare, testare e collaudare un programma in C.
Effettuare l’input dei dati.
Formattare l’output numerico sullo schermo.
Effettuare il casting tra variabili di tipo diverso.
Analizzare, risolvere problemi.
Riconoscere quando utilizzare selezioni annidate.
Saper scegliere il tipo di iterazione adeguato alle
diverse situazioni.
Generare numeri casuali.
Codificare l’iterazione indefinita e definita.
Codificare programmi con cicli annidati.
Progettare programmi con cicli annidati.
Utilizzare diverse tipologie di iterazione nello stesso
programma.
Utilizzare la trace table per individuare errori nel codice.
Riconoscere dati omogenei.
Analizzare, risolvere problemi.
Definire ed utilizzare vettori e arrays.
Avere consapevolezza sulle strategie messe in atto
per trovare la soluzione del problema.
Mettere in atto, laddove possibile, le tecniche
formalizzate per scrivere un software “di buona qualità”. Utilizzare un linguaggio ad alto livello (C) per
scrivere programmi che risolvano specifici
Saper scrivere semplici applicazioni nel linguaggio di
problemi.
programmazione C.
Saper gestire l’indirizzo statico di una scheda di rete.
Riconoscere le caratteristiche delle principali
categorie di reti di computer e di internet
Individuare le tecnologie più recenti che consentono la
comunicazione nel Web
11
SECONDO BIENNIO
CLASSI
TERZE
UdA 1 – AL
Conoscenze
Approfondimento sui linguaggi: linguaggi di
programmazione a basso livello e ad alto livello. Il
linguaggio macchina e l’Assembly.
Linguaggi compilati e linguaggi interpretati:
approfondimenti sulle caratteristiche, in particolare in
ordine alla portabilità. I linguaggi ibridi (es. Java)
Elaborazione di testi: strumenti avanzati per la gestione di
documenti anche semplici e funzionalità tipiche della
gestione di documenti complessi.
UdA 2 – DE
Foglio di calcolo - strumenti avanzati:
La protezione dei dati.
La formattazione condizionale.
Ordinamento dei dati.
Validazione dei dati.
Le tabelle pivot.
Esecuzione di attività semplici mediante una macro.
Strumenti di presentazione: funzionalità avanzate.
Ecologia delle presentazioni: elementi per creare una
presentazione efficace.
UdA 3 – PA
Abilità/Capacità
Competenze
Possedere i termini specifici della disciplina
relativamente ai linguaggi di programmazione.
Conoscere la differenza tra linguaggi ad alto e a
basso livello.
Saper determinare la tipologia di linguaggio di
programmazione migliore in base allo specifico
problema da risolvere.
Comprendere la caratterizzazione dei linguaggi di
programmazione rispetto agli tipi di linguaggi (es.
HTML).
Gestire le interruzioni di testo; suddividere il testo in
sezioni.
Utilizzare e personalizzare la correzione automatica.
Definire ed utilizzare gli stili in un documento.
Saper inserire l’indice dei contenuti o sommario.
Riconoscere ed utilizzare i campi all’interno di un
documento di testo.
Utilizzare lo strumento della stampa unione/stampa
in serie.
Proteggere il foglio di lavoro.
Formattare le celle in base a determinate condizioni.
Ordinare una serie di dati.
Impedire l’immissione di dati non validi in una cella.
Saper creare, modificare, aggiornare, filtrare le tabelle
pivot.
Saper registrare ed eseguire una semplice macro.
Creare una presentazione con i modelli predefiniti e
creare nuovi modelli.
Aggiungere note e commenti ad una presentazione.
Utilizzare lo schema diapositive.
Modalità per eseguire una presentazione; nascondere
diapositive.
Il linguaggio HTML come linguaggio di presentazione per Realizzare pagine HTML attraverso i tag più comuni.
la creazione di pagine web statiche.
Utilizzare gli stili in pagine esterne, interne e inline.
I fogli di stile (CSS).
Utilizzare i criteri di base dell’XML per organizzare e
Il linguaggio XML.
classificare i dati.
Visualizzare con un browser i dati strutturati con
Introduzione al JavaScript.
l’XML.
Trasferimento delle tecniche di programmazione
all’interno del browser.
12
Saper utilizzare alcune delle funzionalità avanzate
presenti nello strumento al fine di creare fogli di
calcolo che aiutino nello svolgimento di problemi
assegnati.
Acquisire gli elementi utili per creare una
presentazione efficace.
Riconoscere la sintassi dei comandi principali
dell’HTML.
Riconoscere e applicare gli stili CSS.
Acquisire gli strumenti principali su cui si basa
l’XML.
Acquisire gli strumenti principali su cui si basa il
JavaScript.
UdA 4 – AL
Ricerca di un elemento in un vettore e suo ordinamento:
complessità delle strategie risolutive.
Conoscere l’ordinamento per Selection Sort, Insertion
Sort, Quick Sort, Bubble Sort.
Conoscere la ricerca sequenziale e binaria (divide et
impera)
Saper declinare l’ordinamento per Selection Sort,
Insertion Sort, Bubble Sort, Quick Sort.
Dati strutturati: stringhe e record
Array come parametri di funzioni
Le strutture come tipo di dato definito dall’utente
Tabelle come array di strutture
Saper definire in maniera dinamica le variabili
utilizzando i puntatori.
Il linguaggio C e i file: definizione, apertura, chiusura,
lettura e scrittura sequenziale. Accesso diretto ad un file.
File di testo e file binari
Operazioni ed accesso agli archivi
Lettura e scrittura di un file di testo
Apertura e chiusura
Controllo di esistenza
Controllo di end of file
Inserimento in coda.
Saper declinare la ricerca sequenziale e binaria
Riconoscere i contesti in cui utilizzare le diverse
tipologie di ordinamento e di ricerca.
Saper utilizzare i vantaggi offerti dalla metodologia
“divide et impera”
Definire e utilizzare i file all’interno di un programma C. Riconoscere le tipologie di accesso ai dati.
Implementare liste, pile e code staticamente e
dinamicamente.
Implementare tecniche di ricorsione, greedy e
l’algoritmo di Dijkstra in semplici casi.
Conoscere il tipo di dato puntatore e il suo utilizzo.
Acquisire il concetto di tipo di dato astratto.
Conoscere i vantaggi dell’astrazione mediante
l’uso di tipi di dato.
Riconoscere le situazioni di utilizzo e
l’implementazione di liste, pile e code.
Riconoscere le situazioni di utilizzo e
l’implementazione di ricorsione, greedy e
l’algoritmo di Dijkstra in semplici casi.
I puntatori e l’allocazione dinamica della memoria.
Tipi di dato astratti: liste (single e double connected), pile
e code.
Il problema della ricorsione: semplici esempi di una sua
implementazione.
I problemy greedy: semplici esempi della loro
implementazione.
I grafi: definizione, loro rappresentazione, visite in
profondità e ampiezza, il problema del cammino minimo.
Algoritmo di Dijkstra
CLASSI QUARTE
Conoscenze
Abilità/Capacità
Competenze
13
UdA 1 – AL
UdA 2 – BS
Dal C al C++: il paradigma ad oggetti (OOP)
Origini e motivazioni della OOP
Le classi e gli oggetti in C++
Terminologia essenziale sugli oggetti
Modellazione UML
Conoscere il concetto di costruttore
Prototipazione delle funzioni in C++ Regole di visibilità
I metodi per la gestione delle stringhe: substring, size e
replace
Namespace e librerie di inclusione
Oggetti e classi
Creazione ed uso di oggetti
Metodi e interazione tra oggetti
Incapsulamento.
Interfaccia verso l’esterno
L’accesso agli attributi
La gerarchia delle classi, le classi concrete e le classi
astratte
L’ereditarietà, vantaggi e tipi di ereditarietà
Polimorfismo
Dati e informazione
Sistema informativo e sistema informatico
Ciclo di vita di un Sistema Informatico: definizione dei
requisiti, modellazione concettuale, logica e fisica
La progettazione concettuale per una Base di Dati
La progettazione logica e il modello relazionale
Il modello E – R (tecnica UML)
Saper definire i costruttori e il distruttore di una classe.
Saper classificare le classi e le relazioni tra di esse
Individuare la specializzazione e la generalizzazione di
una classe
Definire una gerarchia di classi
Comprendere il concetto di astrazione
Acquisire il concetto di costruttore e distruttore.
Utilizzare lo schema concettuale E – R e il modello
logico.
Comprendere i vantaggi di un DBMS.
Utilizzare modelli per descrivere processi
aziendali.
Individuare le entità e le relazioni tra le entità
all’interno di una situazione complessa.
Entità e tipi di identità
Associazioni binarie e regole di lettura
Chiavi e attributi
Associazioni, relazioni, grado, dominio e schemi
relazionali
14
Comprendere le differenze tra overloading e
overriding
Dallo schema concettuale a quello logico relazionale:
regole di derivazione
Rispettare le regole di integrità.
Applicare le gerarchie di generalizzazione.
Conoscere il concetto di dipendenza funzionale.
Comprendere le motivazioni alla base della
normalizzazione.
Le Operazioni sui Database relazionali: algebra
relazionale. Operatori insiemistici (Unione, Intersezione,
Differenza), Prodotto Cartesiano, Selezione, Proiezione,
Congiunzione (join).
Equi-join, natural join, inner join, left join, left outer join,
right join, right outer join, full join
Saper utilizzare gli operatori relazionali.
Saper applicare le regole di normalizzazione.
Saper interrogare una base di dati mediante le
query.
Presentare i dati sotto forma di prospetti
personalizzati.
Dipendenza funzionale e dipendenza transitiva.
UdA 3 – BS
La normalizzazione: prima forma normale (1FN), seconda
forma normale (2FN) e cenni sulla terza forma normale
(3FN)
Le regole di integrità sui dati (vincoli di tupla) e integrità
referenziale
Operazioni sui Database relazione: MySQL
Dichiarazioni di schemi e vincoli di integrità nel
linguaggio MySQL
Interrogazioni in MySQL
Comandi per la modifica della base di dati
Indici: Definizioni, metodi di accesso e ruoli
Introduzione al PHP
UdA 4 – AL
Saper sviluppare semplici esempi di integrazione di una Saper applicare i costrutti elementari del PHP
base di dati tramite una pagina PHP in un contesto client
– server.
QUINTO ANNO
CLASSI
QUINTE
Conoscenze
Abilità/Capacità
Competenze
15
UdA 1 – CS
UdA 2 – CS
Introduzione agli algoritmi di Calcolo Numerico: loro
necessità.
Conoscere l’algoritmo per il calcolo approssimato della
radice quadrata; metodo alternativo di Newton.
Conoscere il Linear Congruential Generator (LCG).
La ricerca di π e il Metodo Carlo
Conoscere l’integrazione numerica con il metodo Monte
Carlo.
Conoscere l’algoritmo per il calcolo di π con il metodo di
Viète
Conoscere l’algoritmo per il calcolo del numero e
Conoscere il metodo dei polinomi di MacLaurin e Taylor.
Conoscere l’algoritmo per il calcolo approssimato del seno
di un angolo tramite Taylor.
Conoscere l’algoritmo per il calcolo approssimato della
radice di una equazione mediante il metodo di bisezione e
delle secanti.
Conoscere l’algoritmo per il calcolo approssimato delle
aree mediante il metodo dei rettangoli, dei trapezi e di
Cavalieri – Simpson.
Conoscere l’algoritmo per risolvere le equazioni
differenziali con il metodo di Eulero e il metodo di Eulero
modificato (cenni)
Determinazione della retta di regressione con il metodo
dei minimi quadrati
Parametri di qualità di un algoritmo
Il modello di costo per il calcolo del tempo di esecuzione
Conoscere l’algoritmo per il calcolo della complessità in
funzione del passo base
Conoscere la definizione di complessità asintotica e la
notazione O – grande.
Conoscere l’algebra degli O – grandi
Equivalenza e classi di complessità degli algoritmi
Algoritmi e problemi
Definire la complessità asintotica di un problema
Conoscere i problemi computabili ma intrattabili
Conoscere i problemi polinomiali ed esponenziali
Conoscere la classe P, NP e NPC
Saper applicare l’algoritmo per il calcolo approssimato
Riconoscere i contesti in cui utilizzare le diverse
della radice quadrata; metodo alternativo di Newton.
tecniche di calcolo computazionale scientifico.
Saper applicare il Linear Congruential Generator (LCG).
Saper applicare l’algoritmo per il calcolo del numero e
Saper applicare l’algoritmo per il calcolo approssimato
del seno di un angolo tramite Taylor.
Saper applicare l’algoritmo per il calcolo approssimato
della radice di una equazione mediante il metodo di
bisezione e delle secanti.
Saper applicare l’algoritmo per il calcolo approssimato
delle aree mediante il metodo dei rettangoli, dei trapezi e
di Cavalieri – Simpson.
Saper applicare l’algoritmo per risolvere le equazioni
differenziali con il metodo di Eulero e il metodo di
Eulero modificato (cenni)
Saper implementare il modello di costo per il calcolo del
tempo di esecuzione
Saper implementare l’algoritmo per il calcolo della
complessità in funzione del passo base
Saper confrontare gli algoritmi
Saper determinare la complessità mediante l’istruzione
dominante
16
Saper calcolare la complessità temporale di un
algoritmo.
Saper classificare gli algoritmi in base alle classi di
complessità
Saper classificare i problemi
Saper individuare i problemi non computabili
UdA 3 – RC
UdA 4 – IS
UdA 5 – AL
Conoscere gli elementi fondamentali di una rete
Conoscere le topologie di rete
Conoscere il concetto di protocollo
Conoscere i compiti dei livelli ISO/OSI e TCP/IP
Conoscere la struttura e le classi degli indirizzi IP
Conoscere il funzionamento del protocollo DHCP
Conoscere il concetto di applicazione di rete
Conoscere le tipologie di applicazione di rete
Conoscere il concetto di porta e di socie
Conoscere l’architettura peer – to – peer (P2P)
La programmazione di pagine web attive
Conoscere le caratteristiche di JavaScript
I box di input/output
La gestione degli eventi
Istruzioni condizionali e iterative
L’oggetto Array
L’elaborazione degli elementi di un form
Saper classificare le reti in base alla topologia
Saper riconoscere i dispositivi di rete
Saper classificare le reti in base all’uso dei mezzi
trasmissivi
Saper collocare le funzioni ai diversi livelli protocollari
Differenze tra indirizzamento pubblico e privato
Saper assegnare in modo statico e dinamico gli indirizzi
IP
Saper configurare manualmente un PC
Saper configurare automaticamente un PC tramite
DHCP
Visualizzare lo stato di un PC
Saper utilizzare le principali applicazioni di rete
Saper confrontare il modello ISO/OSI con il
modello TCP/IP
Riconoscere i contesti in cui è opportuno
configurare manualmente o tramite DHCP un PC
Sapare utilizzare i costrutti elementari del linguaggio
JavaScript
Saper riconoscere i contesti in cui è opportuno
implementare il linguaggio JavaScript
Riconoscere i contesti per le principali applicazioni
di rete
NOTA BENE:
Eventuali argomenti non svolti l’anno precedente potranno essere trattati durante l’anno in corso con tempi e modalità opportuni
Le programmazioni potranno essere suscettibili di eventuali modifiche da parte del Dipartimento o del singolo docente, anche nel corso dell’anno scolastico se, alla luce
dell’esperienza nelle classi, lo si riterrà opportuno
17