Advanced Computer Programming Methods (Metodi Avanzati di Programmazione) - Corso di Laurea Triennale in Informatica (sede di BRINDISI)


Academic Year 2007/2008
(second semester)

Lecturer: Michelangelo Ceci

Ricevimento studenti presso il Dipartimento di Informatica, Università di Bari. Stanza 512 (quinto piano)
Contents (in italian) - Academic Year 2007/2008 

Notices to the students

La discussione del caso di studio/verbalizzazione per l'appello di Febbraio si terra' il giorno Venerdi' 27/02/2009 alle ore 13:00 (Brindisi). Gli studenti esonerati dallo scritto che intendono consegnare il caso di studio in questo appello devono contattare il docente entro il giorno 23/02/2009 alle ore 24:00.

Lecture notes:

01 - Introduction (In depth study)
02 - Imperative Programming ( Examples to unzip in the same folder of transparencies )
03 - Astrazione ( Examples to unzip in the same folder of transparencies; see also W.R. Cook: Object-Oriented Programming Versus Abstract Data Types; D.A. Watt: Programming Language Concepts and Paradigms, chapters 5-6, Prentice Hall, 1990 Available in the library)
04 - ParadigmaOO (Examples to unzip in the same folder of transparencies)
Object Oriented Modeling in UML
Introduction to Java
Objects in Java (Examples to unzip in the same folder of transparencies; Transparencies)
Control Flow in Java (Examples to unzip in the same folder of transparencies; Transparencies)
Hiding the implementation (Examples to unzip in the same folder of transparencies; Transparencies)
Parameter passing & Initialization (Examples to unzip in the same folder of transparencies; Transparencies)
Reusing classes (Examples to unzip in the same folder of transparencies; Transparencies)
Polymorphism (Examples to unzip in the same folder of transparencies; Transparencies)
Containers (Examples to unzip in the same folder of transparencies; Transparencies)
Handling exceptions (Examples to unzip in the same folder of transparencies; Transparencies)
Run-time type identification (Examples to unzip in the same folder of transparencies; Transparencies)
Generics (Examples to unzip in the same folder of transparencies; Transparencies)
Input/output (Examples to unzip in the same folder of transparencies; Transparencies)
Java Database Connectivity (Examples to unzip in the same folder of transparencies; Transparencies)
SWING (Examples to unzip in the same folder of transparencies; Transparencies)
Network Programming (Examples to unzip in the same folder of transparencies; Transparencies)
Applet (Examples to unzip in the same folder of transparencies; Transparencies)
Remote Method Invocation (Examples to unzip in the same folder of transparencies; Transparencies)
Multithreading (Examples to unzip in the same folder of transparencies; Transparencies)

Laboratory:


CASE STUDY: Monopoly Game
Game rules (see also Game description on Wikipedia)

Step 1: Exercise 1 - Description
Comparing results: the solution (jar file) (Attenzione: se il jar è eseguito da dos la dimensione del buffer dello schermo, in larghezza, deve essere di almeno 264 altrimenti la tavola viene visualizzata male)
Initializing class 'Tavola': The constructor
Printing the 'Tavola': txt and pdf

Step 2: Exercise 2 - Description
Comparing results: the solution (jar file) (Attenzione: se il jar è eseguito da dos la dimensione del buffer dello schermo, in larghezza, deve essere di almeno 264 altrimenti la tavola viene visualizzata male)
Initializing class 'Tavola': The constructor
Printing the 'Tavola': txt

Step 3: Exercise 3 - Description
Comparing results: the solution (jar file)
Keyboard class: The java file and its description
Initializing class 'Tavola': The constructor

Step 4: Exercise 4 - Description
Comparing results: the solution (jar file)
Classes: Master, Transazione and initialization of class Tavola

Step 5: Exercise 5 - Description

Step 6: Exercise 6 - Description
Database schema, MySQL Connector and Tavola

Step 7: Exercise 7 - Description
Visual Editor for SWING

Step 8: Exercise 8 - Description

Step 9: Exercise 9 - Description

The documentation of the project should include:
- a brief description of the implemented system
- a UML class diagram
- a short description of classes and interfaces
- a short description of the differences (if any) with respect to the project presented during the course
- a quick installation guide
- a user guide
- some example of testing
- comments on possible improvements of the current version
- a printed version of the code (if not too long!!).


Exams:

Instructions (Modalita' di svolgimento dell'esame):
1. Il caso di studio e' valido solo per il corrente anno accademico.
2. Gli esonerati (Brindisi), cioe' coloro che hanno superato entrambi gli esoneri previsti nell'a.a. corrente, possono consegnare il caso di studio durante l'intero a.a. (fino ad Aprile 2009) senza perdere l'esonero. La discussione del progetto avverra' dopo la sua consegna.
3. Coloro che superano la prova scritta devono consegnare il progetto ENTRO due giorni prima la data prevista per la corrispondente prova orale (da calendario degli appelli).
4. Il voto finale sara' ottenuto come media dei voti conseguiti dalle diverse prove (scritto e orale). Per gli esonerati la media sara' calcolata sulle due prove in itinere e sulla prova orale.
5. Il voto massimo previsto per ogni prova (scritto e orale) e' 33/30.
Per gli appelli la prova scritta riguarda l'intero programma.
Le date delle prove scritte compaiono sul sito ufficiale del corso di laurea: link. La prenotazione e' obbligatoria e si effettua mediante il sito web del dipartimento (apposita funzionalita').


Prova in itinere del 18 04 2008: traccia risultati
Prova in itinere del 10 06 2008: traccia risultati
Prova scritta del 15 07 2008: traccia risultati
Prova scritta del 23 09 2008: traccia risultati
Prova scritta del 19 11 2008: traccia risultati
Prova scritta del 16 02 2009: traccia risultati






Links:

Previous years' courses




Top of this page