A.S. 2012/2013
Piano di Lavoro per il Terzo Anno
Primo Anno del Secondo Biennio
Indirizzo: Scienze Applicate
Materia: Informatica
Sommario
Introduzione.................................................................................................................. 3
Programmazione per moduli didattici ................................................................................. 3
M.D. 1: Introduzione alla Programmazione ad Oggetti in Java ........................................3
u.d. 1.1: Compilatori, Interpreti e Macchine Virtuali ............................................4
u.d. 1.2: Introduzione alla programmazione ad oggetti ..........................................4
u.d. 1.3: IDE per la programmazione JAVA .........................................................4
u.d. 1.4.: Le classi e gli oggetti in Java ..............................................................4
u.d. 1.5: Tipi di dati primitivi e array .................................................................4
u.d. 1.6: Classe String .....................................................................................4
u.d. 1.7: Cicli e selezioni .................................................................................4
u.d. 1.8: Attributi e metodi privati .....................................................................5
u.d. 1.9: Passaggio di parametri ........................................................................5
u.d. 1.10: Overloading .....................................................................................5
M.D. 2: Le relazioni tra classi in Java ........................................................................5
u.d. 2.1: Associazioni ......................................................................................5
u.d. 2.2: Aggregazioni .....................................................................................5
u.d. 2.3: Ereditarietà e Overriding .....................................................................6
M.D. 3: Subroutine Ricorsive ...................................................................................6
u.d. 3.1: Ricorsione semplice ............................................................................6
u.d. 3.2: Mutua ricorsione ................................................................................6
M.D. 4: Strutture Dinamiche ....................................................................................6
u.d. 4.1: Strutture dinamiche lineari..................................................................6
u.d. 4.2: Vector .............................................................................................6
u.d. 4.3: Alberi e Grafi ...................................................................................7
M.D. 5: Elementi avanzati di programmazione ad oggetti ..............................................7
u.d. 5.1: Final e Static .....................................................................................7
u.d. 5.2: Package, classi astratte e interfacce ......................................................7
Obiettivi Minimi............................................................................................................. 7
Metodologie didattiche ................................................................................................... 8
Verifiche e valutazioni .................................................................................................... 8
Introduzione
La riforma del 2010 propone per il secondo biennio dà le seguenti indicazioni: Nel secondo
biennio si procede ad un allargamento della padronanza di alcuni strumenti e un approfondimento
dei loro fondamenti concettuali. La scelta dei temi dipende dal contesto e dai rapporti che si
stabiliscono fra l’informatica e le altre discipline. Sarà possibile disegnare un percorso all'interno
delle seguenti tematiche: strumenti avanzati di produzione dei documenti elettronici, linguaggi di
markup (XML etc), formati non testuali (bitmap, vettoriale, formati di compressione), font
tipografici, progettazione web (DE); introduzione al modello relazionale dei dati, ai linguaggi di
interrogazione e manipolazione dei dati (BS); implementazione di un linguaggio di
programmazione, metodologie di programmazione, sintassi di un linguaggio orientato agli oggetti
(AL).
Mantenendo un legame con la tradizione dell'insegnamento dell'informatica nel liceo Copernico
si propone per il primo anno del secondo biennio un percorso legato alla sintassi del linguaggio
ad oggetti Java che preveda anche attenzione alle strutture dati dinamiche, argomento trattato
anche nel indirizzo informatico sin dai primi anni della sua attuazione.
Programmazione per moduli didattici
Elenco dei moduli didattici:
1 - Introduzione alla Programmazione ad Oggetti in Java
2 - Le relazioni tra classi in Java
3 - Subroutine Ricorsive
4 - Strutture Dinamiche
5 – Elementi avanzati di programmazione a oggetti
M.D. 1: Introduzione alla Programmazione ad Oggetti in Java
u.d. 1.1:
u.d. 1.2:
u.d. 1.3:
u.d. 1.4:
u.d. 1.5:
u.d. 1.6:
u.d. 1.7:
u.d. 1.8:
Compilatori, Interpreti e Macchine Virtuali
Introduzione alla programmazione ad oggetti
IDE per la programmazione JAVA
Le classi e gli oggetti in Java
Tipi di dati primitivi e array
Classe String
Cicli e selezioni
Attributi e metodi privati
u.d. 1.9: Passaggio di parametri
u.d. 1.10: Overloading
u.d. 1.1: Compilatori, Interpreti e Macchine Virtuali
Conoscenze: definizione di compilatore, componenti di un compilatore, definizione di linguaggio
intermedio e oggetto, definizione d'interprete, concetto di macchina virtuale, il funzionamento
del compilatore Java e la JVM
Abilità: saper utilizzare e gestire in modo consapevole gli strumenti di sviluppo per Java
u.d. 1.2: Introduzione alla programmazione ad oggetti
Conoscenze: concetto di classe, oggetto, metodo e attributo, spiegazione sommaria delle
relazioni tra classi (associazioni, aggregazioni ed ereditarietà), diagrammi delle classi (UML) per
classi con attributi e metodi pubblici, garbage collector e garbage collection
Abilità: saper utilizzare in modo generico i diagrammi delle classi per la progettazione di un
generica classe
u.d. 1.3: IDE per la programmazione JAVA
Conoscenze: interfaccia di Eclipse e di Geany
Abilità: saper utilizzare Eclipse e Geany per editare, correggere e compilare programmi Java
u.d. 1.4.: Le classi e gli oggetti in Java
Conoscenze: sintassi Java di una classe, la sintassi Java di un attributo e di un metodo pubblico,
la sintassi Java del costruttore, il metodo main, l'istanziazione di un oggetto, il segmento heap di
un processo, chiamata di un metodo, variabili locali dei metodi.
Abilità: saper definire classi e dichiarare oggetti
u.d. 1.5: Tipi di dati primitivi e array
Conoscenze: caratteristiche dei tipi di dati primitivi del Java e loro struttura, cast esplicito e
implicito, sintassi degli array monodimensionali e bidimensionali per la loro dichiarazione e
accesso, sintassi delle assegnazioni, operatori aritmetici e logici
Abilità: saper dichiarare e usare variabili scalari e array
u.d. 1.6: Classe String
Conoscenze: caratteristiche della classe String e sue operazioni e metodi principali
Abilità: saper dichiarare e utilizzare oggetti della classe String
u.d. 1.7: Cicli e selezioni
Conoscenze: sintassi del ciclo precondizionato, sintassi del ciclo postcondizionato, sintassi del
ciclo enumerativo e spiegazione e sintassi del ciclo for-each in Java, sintassi del if, spiegazione e
sintassi dello switch
Abilità: saper utilizzare cicli e selezioni
u.d. 1.8: Attributi e metodi privati
Conoscenze: spiegazione e sintassi degli attributi e dei metodi privati in Java e UML
Abilità: saper leggere e realizzare metodi e attributi private
Capacità: utilizzare metodi e attributi privati per la progettazione e implementazione di classi
u.d. 1.9: Passaggio di parametri
Conoscenze: passaggio per parametri per un metodo, visibilità delle variabili e degli attributi,
sintassi inerente i metodi con parametri in UML
Abilità: saper realizzare e leggere metodi che passano parametriin Java e nei diagrammi delle
classi
Capacità: utilizzare in modo opportuno e se opportuno i metodi con passaggio di parametri per la
progettazione e implementazione di programmi
u.d. 1.10: Overloading
Conoscenze: definizione e spiegazione dell'overloading
Abilità: saper effettuare l'overloading di un metodo e saper comprendere una classe che ne fa
uso
Conoscenze: utilizzare, se opportuno, l'overloading per la realizzazione di una classe
M.D. 2: Le relazioni tra classi in Java
u.d. 2.1: Associazioni
u.d. 2.2: Aggregazioni
u.d. 2.3: Ereditarietà e Polimorfismo
u.d. 2.1: Associazioni
Conoscenze: definizione e spiegazione delle associazione, sintassi UML delle associazioni,
realizzazione in Java delle associazioni
Abilità: saper realizzare e leggere diagrammi di classi che usano associazioni, saper realizzare e
leggere progetti realizzati in JAVA che usano associazioni
Capacità: utilizzare in modo opportuno le associazioni per la progettazione e implementazione di
programmi
u.d. 2.2: Aggregazioni
Conoscenze: definizione e spiegazione delle aggregazioni, sintassi UML delle aggregazioni,
realizzazione in Java delle aggregazioni
Abilità: saper realizzare e leggere diagrammi di classi che usano aggregazioni, saper realizzare e
leggere progetti realizzati in JAVA che usano aggregazioni
Capacità: utilizzare in modo opportuno le aggregazioni per la progettazione e implementazione di
programmi
u.d. 2.3: Ereditarietà e Overriding
Conoscenze: definizione e spiegazione dell'ereditarietà, sintassi UML dell'ereditarietà,
realizzazione in Java dell'ereditarietà, spiegazione e sintassi dell'overriding in UML e in Java
Abilità: saper realizzare e leggere diagrammi di classi che usano l'ereditarietà, saper realizzare e
leggere progetti realizzati in JAVA che usano ereditarietà, saper scrivere e leggere diagrammi di
classe che prevedono overriding
Capacità: utilizzare in modo opportuno l'ereditarietà e l'overriding per la progettazione e
implementazione di programmi
M.D. 3: Subroutine Ricorsive
u.d. 3.1: Ricorsione semplice
u.d. 3.2: Mutua ricorsione
u.d. 3.1: Ricorsione semplice
Conoscenze: definizione di sottoprogramma ricorsivo
Abilità: saper comprendere e scrivere algoritmi ricorsivi
Conoscenze: Utilizzare, allo scopo di risolvere problemi, la ricorsione se opportuno
u.d. 3.2: Mutua ricorsione
Conoscenze: definizione di mutua ricorsione
Abilità: saper comprendere e scrivere algoritmi con mutua ricorsione
Conoscenze: Utilizzare, allo scopo di risolvere problemi, la mutua ricorsione se opportuno
M.D. 4: Strutture Dinamiche
u.d. 4.1: Strutture dinamiche lineari
u.d. 4.2: Vector
u.d. 4.3: Alberi e Grafi
u.d. 4.1: Strutture dinamiche lineari
Conoscenze: concetto di struttura lineare dinamica, tipi di strutture lineari dinamiche (pile, code
e liste bidirezionali), esempio di una classe che implementa una pila
Abilità: saper leggere classi che implementano o usano strutture dati dinamiche lineari e saperle
realizzare
Capacità: utilizzare in modo opportuno e corretto le strutture dinamiche lineari per la
progettazione e realizzazione di programmi
u.d. 4.2: Vector
Conoscenze: classe vector, dichiarazione di oggetti di classe vector, utilizzo dei metodi
d'accesso agli oggetti di classe vector
Abilità: saper dichiarare oggetti di clase vector, saper utilizzare correttamente metodi della
classe vector
Capacità: utilizzare in modo opportuno e corretto la classe vector per la progettazione e
realizzazione di programmi
u.d. 4.3: Alberi e Grafi
Conoscenze: concetto di grafo orientato, concetto di grafo non orientato, problemi classici sui
grafi, concetto di struttura ad albero, albero binario, alberi di gioco
Abilità: saper comprendere la descrizione informale di un algoritmo che utilizza strutture ad
albero o grafi
M.D. 5: Elementi avanzati di programmazione ad oggetti
u.d. 5.1: Final e Static
u.d. 5.2: Package, classi astratte e interfacce
u.d. 5.1: Final e Static
Conoscenze: significato e sintassi di classi, metodi e attributi final e significato e sintassi di
metodi e attributi static
Abilità: saper realizzare classi, metodi e attributi final e metodi e attributi static. Saper
comprendere l'uso di final e static nei programmi.
Capacità: utilizzare classi, metodi e attributi final e metodi e attributi static, se opportuno, nella
progettazione e implementazione di programmi
u.d. 5.2: Package, classi astratte e interfacce
Conoscenze: spiegazione e sintassi inerente ai package, file jar, spiegazione e sintassi di una
classe astratta e spiegazione e sintassi di una interfaccia
Abilità: saper realizzare classi facenti parte di un package, saper realizzare classi astratte e
saper realizzare interfaccie. Saper comprendere programmi che utilizzano package, classi
astratte e interfacce.
Capacità: utilizzare package, classi astratte e interfaccie, se opportuno, nella progettazione e
implementazione di programmi.
Obiettivi Minimi
In genere, per tutti i moduli, si ritenga valido quanto già detto nel POF dell'anno 2011-2012:
“la semplice acquisizione delle conoscenze e la loro applicazione in situazioni già proposte ed
affrontate in classe verificano il raggiungimento del livello minimo”.
Inoltre non si ritengono parte degli obiettivi minimi i cicli for-each dell'u.d. 1.7, il modulo 3,
l'u.d. 4.3 e il modulo 5.
Metodologie didattiche
Il corso di studi prevederà sia lezioni frontali sia di laboratorio. Durante le lezioni frontali si
farà uso sia di strumentazioni tradizionali (la lavagna di grafite) sia multimediali. Le lezioni di
laboratorio prevederanno sia momenti di lavoro guidati sia indipendenti. Le attività di laboratorio
indipendenti potranno essere sia di individuali sia di gruppo. Tali attività verranno svolte
utilizzando un IDE per il linguaggio di programmazione.
Verifiche e valutazioni
Le verifiche effettuate durante l'anno potranno essere orali, scritte e attività di laboratorio. In
tutti i casi prevederanno prove tese a comprendere se lo studente raggiunge almeno gli obiettivi
minimi o se supera tale prima tappa d'apprendimento. Ciò sarà fatto nel caso della
programmazione con l'assegnazione di alcuni problemi di tipologia simile a quelli già risolti in
classe e altri mai proposti prima della verifica.