Programma Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell’Informazione Università di Siena Via Roma 56 – 53100 – SIENA Uff. 0577234850-7102 [email protected] http://www.dii.unisi.it/~rigutini/ Programma 1. Introduzione alla programmazione e JAVA: Linguaggi di programmazione Applicazioni, Applet e Servlet (JSP) JAVA Regole di base di JAVA IDE Debug JavaDoc 2. Classi ed Oggetti in JAVA Programmazione ad Oggetti Istanziare un oggetto Definire una classe: membri public e private Definire le variabili e le costanti di una classe Definire i metodi di una classe Overloading Il parametro implicito this Il costruttore Metodi static Variabili static Caso particolare: costruttore privato Programma 1. Tipi di dato e controllo del flusso Tipi di dato semplici Operatori Array Controllo del flusso if … else … … else if … switch … case … while () … do … while () il ciclo for break e continue Programma 1. Ereditarietà Package Interfacce: interface Operatore instanceof Inner Class Ereditarietà: public, private, protected and “friend” Overrinding: final Upcasting e downcasting Classi astratte: abstract La classe Object Garbage Collector Programma 1. Eccezioni Gestione degli errori Lanciare una eccezione Eccezioni controllate e non controllate Rimandare l’eccezione al chiamante Gestire l’eccezione La clausola fìnally Note di cronaca Bibliografia Di Base Cay S. Hortsmann “Concetti di informatica e fondamenti di JAVA 2”, APOGEO Bruce Ekel, “Thinking in Java”, Apogeo Versione cartacea in italiano, in biblioteca Versione elettronica in Inglese all’indirizzo http://www.mindview.net/Books/TIJ/ Cay S. Hortsmann, Gary Cornell, "Java 2: i fondamenti," McGrawhill Avanzati Jamie Jaworski, "Java 2: tutto & oltre," Apogeo Cay S. Hortsmann, Gary Cornell “Java 2 : tecniche avanzate”, McGrawhill info Tel.: 0577 233606 Email: [email protected] Web: http://www.dii.unisi.it/~rigutini/ Progetti Progetto Il tema del progetto deve essere concordato con il docente Possibilità di farlo a gruppi, ma occorre fare un progetto un po’ più grande Esame Non c’è orale ma domande sul progetto per spiegare le scelte progettuali e realizzative dello stesso Regole Ogni progetto deve essere accompagnato da una documentazione (poche pagine) Il codice sorgente deve essere commentato Verrà inoltre valutato L’organizzazione (modularizzazione) del software in librerie, classi, ... La complessità del problema che si è affrontato e il numero delle persone che hanno partecipato al progetto La correttezza dell’uso dei costrutti di programmazione Java Alcune proposte: Giochi intelligenti: dama, scacchi, carte, forza 4…e simili con una buona interfaccia grafica ed in cui deve essere possibile giocare con il computer (che può adottare una strategia anche banale, ad es. a briscola prendo tutte le volte che posso) Giochi da tavolo: monopoli, “trivial pursuit”, ecc … ci si può limitare ad implementare parzialmente le regole del gioco ma comunque deve essere possibile giocare con il computer SalaGiochi: Tetris, PuzzleBubble, Alcune proposte: Costruire un’applicazione per la gestione di un’archivio: una biblioteca, una scuola, videoteca, … Proprietà L’archivio deve essere gestito da un DBMS SQL e contenere almeno 4-5 tabelle collegate fra di loro L’interfaccia deve controllare i dati inseriti dall’utente (date di nascita,...) L’interfaccia deve permettere la visualizzazione e lamodifica dei dati Alcune proposte Altre applicazioni che comunque comportino: un’interfaccia non banale e costituita da più finestre alcune fra le seguenti proprietà L’uso di alcune strutture dati (tabelle hash, alberi ordinati,...) L’uso di funzionalità particolari di Java (per le quali lo studente debba leggere la documentazione): es. esecuzione di thread, accesso ad un DBMS, esecuzione di servlet, interazione di più istanze del programma attraverso la rete, ... L’implementazione di algoritmi non banali (per le quali lo studente debba studiare un pò): algoritmo dei cammini minimi, algoritmi che risolvono problemi usando euristiche,.... Info Tel. : 0577234850-7102 email: [email protected] Sito web personale: http://www.dii.unisi.it/~rigutini/