ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI TECNICO SCIENTIFICHE E LABORATORIO Empoli, 31/05/2016 Libri di testo : Cloud Secondo Biennio P. Gallo, F.Salerno Minerva Scuola Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi - Atlas Programma Finale : U.D.1: Ripasso e consolidamento del linguaggio C++ C++: La programmazione (procedurale e strutturata) imperativa: Dati ed istruzioni di I/O Strutture di controllo (Costrutti fondamentali e derivati) Procedure e funzioni Strutture informative di dati (semplici e composte) Esempi ed implementazioni varie. U.D. 2 : Le funzioni ricorsive C++ C++: Ricorsione ed iterazione Ricorsione indiretta (mutua) Uso di una pila per la gestione delle chiamate a procedure ricorsive Esempi ed implementazioni varie U. D. 3 : Strutture di dati dinamiche e puntatori C++ C++: Linguaggi di programmazione e strutture di dati dinamiche. 1
Gestione di memoria dinamica. Rappresentazione di nuovi tipi di dati : I puntatori. I puntatori: dichiarazione e uso di puntatori, operazioni sui puntatori. Puntatori ed array. Puntatori come valori di ritorno. Puntatori a strutture. Puntatori passati per indirizzo. Realizzazione di una pila con puntatori. Realizzazione di una coda con puntatori. Confronto tra uso di array e di strutture dinamiche con i puntatori Esercizi vari. U.D. 4: Evoluzione dei linguaggi di programmazione ( Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi Atlas pag. 61-102) L importanza dell astrazione. La produzione del software: Pseudocodifica e Metodologia Top-Down L algoritmo. Programmazione strutturata. I paradigmi di programmazione. Storia dei linguaggi di programmazione. Elementi comuni ai linguaggi di programmazione. Programmazione ad oggetti. Confronto tra programmazione imperativa e ad oggetti U. D. 5 : Linguaggio Java (le basi) ( Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi Atlas pag. 109-142) Java : Caratteristiche generali L ambiente di programmazione La struttura dei programmi Gli identificatori e le parole chiave. Variabili e costanti. Tipi di dato Il casting per la conversione di tipo Operatori Commenti e documentazione La gestione dell I/O Le strutture di controllo: sequenza, ripetizione e ciclo. La struttura di dati array Gli array multidimensionali. Le eccezioni Esercizi vari. U.D. 6 : La Programmazione ad oggetti e relativa programmazione in Java ( Cloud B P. Gallo, F.Salerno Minerva Scuola pag.4-102) ( Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi Atlas pag. 163-220) Nascita e scopo della programmazione ad oggetti Classi ed oggetti Definire una classe 2
Creare una classe i metodi costruttori UML : rappresentazione grafica ed istanze Comunicazione ed interazione tra oggetti Il metodo Main() Analisi ad oggetti e diagramma UML Un confronto con la programmazione imperativa OOP come evoluzione della programmazione imperativa Le interfacce Information Hiding ed incapsulamento Vantaggi dell incapsulamento Attributi e metodi di classe Oggetti come parametri Array di oggetti Le aggregazioni tra oggetti: oggetti come attributi Creazione degli oggetti. Riferimenti nulli ed uguaglianza tra oggetti Utilizzo degli oggetti. Attributi e metodi static Ereditarietà Specializzazione, tipi di ereditarietà e classi astratte Polimorfismo. Classi astratte Binding statico e dinamico Richiamare metodi delle superclassi Metodi distruttori e garbage collection Le eccezioni La persistenza Librerie Le stringhe Esercizi vari. U. D. 7 : Linguaggio Java Strutture Dati ( Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi Atlas pag. 235-277) ( Cloud B P. Gallo, F.Salerno Minerva Scuola pag.164-274) Java: Strutture dati dinamiche Array dinamici Gestione automatica della memoria Conoscenza e gestione dinamica delle seguenti strutture informative mediante OOP (= Oriented Programming Object) La struttura astratta di pila : le caratteristiche di una pila La struttura astratta di coda (e coda circolare) : le caratteristiche di una coda La struttura astratta di lista : le caratteristiche di una lista Altre strutture concatenate : la lista circolare; la lista bidirezionale; la lista multipla Conoscenza e gestione dinamica delle seguenti strutture informative mediante OOP (= Oriented Programming Object) Gli alberi : terminologia. Alberi generici ed alberi binari (conversione dall uno all altro) Algoritmo del Monkey Sort. Alberi bilanciati e relazioni tra numero dei nodi e livelli Allocazione in memoria degli alberi generi 3
Allocazione in memoria degli alberi binari Visita di un albero Visita in profondità Alberi e rappresentazione delle espressioni Alberi binari di ricerca ABR Alberi e Valutazione espressioni Esercizi vari e multipli (Procedure e funzioni ricorsive come metodi di classi. Es: calcolare il numero dei nodi di un albero; lettura di un albero; in un albero individuare i nodi figli di un nodo dato I file di Input/output. SERIALIZZAZIONE di oggetti in un file (lettura/scrittura ) U.D. 9 : Programmazione guidata dagli eventi ed interfaccia grafica ( Java Programmazione ad oggetti ed Applicazioni Android A. Lorenzi, A. Rizzi Atlas pag. 295-340) ) ( Cloud B P. Gallo, F.Salerno Minerva Scuola pag.110-140) Le interfacce utente. Gli elementi dell interfaccia grafica. (Gli elementi grafici come oggetti della OOP) Oggetti componenti ed oggetti contenitori. Gerarchie di oggetti e di classi GUI. Programmazione guidata dagli eventi Le librerie AWT e Swing in Java L ambiente di programmazione NetBeans Etichette, pulsanti, campi di testo, aree di testo Caselle combinate e caselle di controllo (Layout di elementi grafici) La gestione di eventi Eventi del mouse Eventi legati agli oggetti GUI Finestre di dialogo I menu Esercizi vari Programma di LABORATORIO DI informatica Classe 4 A INF a. s. 2015-2016 Laboratorio PASSAGGIO DI PARAMETRI ALLE FUNZIONI, FUNZIONI SU VETTORI DI CARATTERI e RICORSIONE LINGUAGGIO C/C++ Implementazione della funzione di confronto fra 2 vettori di caratteri e di quella ricorsiva Incrementa. Java e la Programmazione ad oggetti Introduzione alla programmazione ad oggetti in JAVA. Installazione del JDK e settaggio della variabile d'ambiente PATH. Definizione della classe Persona, creazione di istanze di oggetti e interazione fra queste [scambio di messaggi]. Scrittura codice con NOTEPAD++, compilazione ed esecuzione da riga di comando. Realizzazione di un programma JAVA, in ambiente NETBEANS, in grado di simulare il funzionamento di un Automobile. Implementazione della classe Data e utilizzo della stessa al fine di gestire una sequenza di scadenze per dei Pagamenti Rateali. 4
L EREDITARITÀ e la derivazione di una classe da una classe base: simulazione di un Campionato di Calcio, secondo una logica Object Oriented. Sviluppo del gioco del Domino in JAVA. [OOP] Java e la PERSISTENZA DEI DATI Introduzione all interfaccia Serializable. Utilizzo della serializzazione in relazione all esercitazione del Campionato di Calcio. Java e le LISTE Esercitazione al computer sulle liste. Java e LA CREAZIONE DI UN INTERFACCIA GRAFICA [GUI] Esercizi sull'implementazione di semplici interfacce grafiche in JAVA con Swing. Presentazione dei principali controlli di una GUI in JAVA: panel, label, button, textbox, Layout Manager, Radio Button Group, Immagini e finestre di dialogo. Realizzazione di un interfaccia con MENU. Realizzazione del gioco Ricerca dell Asso di Cuori. Implementazione del Solitario dei 4 Re. (Prof.ssa Carla Lami) (Gli alunni) (Prof. Simone Calugi) 5
Proposte per un ripasso anche in vista di un eventuale recupero del debito formativo a settembre: Pratico : Analizzare accuratamente il codice Campionato di Calcio fatto in classe Analizzare accuratamente il codice Arca di Noè fatto in classe Analizzare accuratamente il codice Albero Binario fatto in classe Analizzare accuratamente il Progetto 12 del libro di laboratorio Teoria: Introduzione agli oggetti Cloud - pag.226 Incapsulamento e Information Hiding Cloud - pag.262 Ereditarietà e Polimorfismo Cloud - pag. 302 GUI ed Eventi Cloud Libro laboratorio Struttura di memoria dinamica Cloud - pag.344 Sequenza, Pila, Coda Cloud - pag.372 Alberi Cloud B pag. 402 Riguardare esercizi proposti durante l anno sulla piattaforma Moodle. Buone Vacanze 6