DIPARTIMENTO DI INFORMATICA ED APPLICAZIONI

ISTITUTO SUPERIORE STATALE “Pitagora”
DIPARTIMENTO DI INFORMATICA ED APPLICAZIONI
PROGRAMMA DI INFORMATICA
Classe: IV Inf. A
Docenti: prof. Alessandro CITARELLA – prof. Andrea QUINTALE
Anno scolastico: 2013/2014
Modulo n°1: Dal linguaggio C al C++
Unità Didattica 1: La programmazione ad oggetti in C++
Obiettivi specifici:
• Formalizzare oggetti del mondo reale in oggetti del dominio applicativo.
• Conoscere e saper applicare le proprietà fondamentali della
programmazione ad oggetti.
Contenuti teorici: Gli oggetti del mondo reale. Un esempio di dominio
applicativo. Caratteristiche e definizione di classe in C++. Attributi e metodi.
Overload dei metodi. Costruttori e distruttori. Specificatori di visibilità. Attributi
e metodi statici.
Unità Didattica 2: Ciclo di vita degli oggetti e gestione della memoria.
Obiettivi specifici:
• Saper utilizzare il modello di gestione della memoria in C++
Contenuti: Richiamo degli argomenti relativi ai puntatori nel linguaggio C
affrontati in terza. Puntatori e reference. L’algebra dei puntatori. Puntatori e
passaggio dei parametri. Puntatori e array. Puntatori e stringhe. Puntatori a
strutture. Gli argomenti della funzione main().
Lo stack e l’heap. L’allocazione e la deallocazione dinamica della memoria. La
pila - un primo esempio di struttura dati astratta con l’allocazione dinamica.
L’allocazione dinamica di oggetti in memoria. L’operatore new. Accesso a
variabili e funzioni membro. Puntatori e oggetti. Assegnazione di oggetti di una
stessa classe. Puntatori a oggetti e passaggio di oggetti come parametri.
Passaggio per valore. Passaggio per indirizzo tramite puntatore. L’operatore
delete. Il puntatore all’oggetto corrente this. Classi nello stesso file o in file
separati.
Unità Didattica 3: Progettazione software in C++.
Obiettivi specifici:
• Costruzione del dominio applicativo.
Contenuti pratici: Esempi di progettazione e costruzione di un dominio
applicativo: Il lettore virtuale di DVD; Una semplice chat. Le schede CRC e
diagrammi UML delle classi. Tipologie di associazioni tra classi. Generalizzazione
delle classi. La gestione dinamica degli array in C++. La classe polilinea.
Modulo n°2: Estendere i linguaggi: ADT - Tipi di dato astratti.
Unità Didattica 1: Strutture dati notevoli implementate in C++
Obiettivi specifici:
• Conoscere le principali strutture dati esistenti.
Saper riconoscere ed implementare le operazioni definite sulle strutture
dati.
• Saper scegliere la struttura dati più adatta alla soluzione di un problema.
Contenuti teorici: Insiemi dinamici. Puntatori. Operazioni sugli insiemi.
Strutture dati lineari: la Pila, la Coda, la Lista Concatenata. Strutture dati non
lineari: il Grafo, l’Albero.
Contenuti pratici: Implementazione dei tipi astratti nella programmazione a
oggetti. Vettori statici e vettori dinamici. Le collezioni. La lista concatenata. La
Pila. La Coda. La Coda Circolare. I Grafi. Gli Alberi.
•
Modulo n°3: Dal linguaggio C++ al Java
Unità Didattica 1: La programmazione ad oggetti in Java
Obiettivi specifici:
• Imparare un nuovo linguaggio di programmazione.
• Conoscere e saper applicare le proprietà fondamentali della
programmazione ad oggetti.
Contenuti: Tipi di dato astratto e principio di information hiding. Classi e
oggetti, attributi e metodi nei diagrammi UML. Caratteristiche, storia e
applicazioni del linguaggio Java. Compilazione ed esecuzione di programmi
Java: memoria heap e garbage-collector. ECLIPSE, l’ambiente di sviluppo IDE
per le applicazioni Java. Struttura di un programma Java e fondamenti del
linguaggio (package, classi, membri di una classe, membri statici, costruttori).
La struttura base di una classe e il metodo main. Convenzioni di codifica del
linguaggio Java. Tipi di dato primitivi e classi wrapper. Stringhe e codifica
Unicode. La documentazione automatica dei programmi con Javadoc. Gli array
in java. Esempi di classi: Libro, Mensola, Scaffale. Oggetti e riferimenti:
implementazione e uso del costruttore di copia. Array come parametri e valori
di ritorno dei metodi di una classe. Eccezioni predefinite non controllate.
Definizione e generazione delle eccezioni. Gestione dell’Input/Output predefinito
in Java. Gestione dell’Input/Output da file di testo. Serializzazione e persistenza
degli oggetti su file. Tabelle e indirizzamento hash.
Unità Didattica 2: Ereditarietà e Polimorfismo.
Obiettivi specifici:
• Conoscere e saper applicare le proprietà fondamentali della
programmazione ad oggetti
Contenuti: Concetti e definizioni. Classi derivate. Overriding e Overloading dei
metodi. Gerarchie di classi. Up-Casting e Down-Casting di oggetti. La classe
Object e l’overriding del metodo clone(). Classi astratte e metodi astratti.
Interfacce. Polimorfismo e binding dinamico. Run-Time Type Identification
(RTTY) e operatore instanceof. Esempi di gerarchie di classi: Merci in vendita in
un supermercato. Gerarchie di eccezioni e loro gestione. Esempio: L’architettura
software di un sito web che commercializza libri, cd audio e film in DVD. Tipi
parametrici e classi generiche in linguaggio Java. I contenitori del linguaggio
Java: “le collezioni”.
Unità Didattica 3: Introduzione alle Graphic User Interface (GUI) in
Java
Obiettivi specifici:
• Saper realizzare applicazioni visuali.
Contenuti: Esempio di classe Calcolatrice. La libreria AWT:componenti
fondamentali e gestione degli eventi. Contenitori (Finestre e Pannelli).
Componenti (Etichette, Caselle di testo, Bottoni). Disposizione dei componenti
grafici (FlowLayout, BorderLayout, GridLayout). La gestione degli eventi. Il
modello a delegazione. Le aree di disegno. Il pattern architetturale Model-ViewControl e la separazione tra logica di business e GUI. Esempio di applicazione
visuale: una calcolatrice.
Strumenti Utilizzati
• Libri di testo
- Corso di Informatica Volume 2 - Formichi e Meini - Editore Zanichelli
- Strutture dati e programmazione a oggetti in C/C++ - Volume 2B – Carucci,
Giuliani, Bigatti. Editore SEI/Apogeo (fornite agli alunni dispense digitali da
pag. 54 a 163)
- Il linguaggio C++ - Gallo, Salerno – Editore Minerva Italica - (fornite agli
alunni dispense digitali da pag. 93 a 112 / da pag. 139 a pag 155)
•
Laboratorio di informatica
Pozzuoli, lì 30.05.2014
Gli alunni
________________________
________________________
I Docenti
________________________
________________________