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/