Il corso si divide in due parti:
Relativamente ai fondamenti teorici, il corso tratta dell'analisi di
algoritmi quali l'ordinamento di sequenze, e l'utilizzo di struttre dati
fondamentali quali heap, alberi e grafi. Nell'ambito della parte teorica del
corso, tutti gli algoritmi introdotti verranno studiati dal punto di vista delle
prestazioni ottenibili e verranno introdotte strutture efficenti, quali alberi
binari di ricerca e alberi-RB, discutendone le problematiche teoriche ed
applicative.
Relativamente agli aspetti pratici, il corso tratta le tecniche fondamentali di
programmazione ad oggetti (Object Oriented Programming, OOP) utilizzando il
linguaggio Java. Il nucleo essenziale del corso è dedicato all'apprendimento
dei costrutti fondamentali della programmazione (istruzioni, scelte condizionate,
cicli) e dei tipi di dato basilari (interi, numeri in virgola mobile, caratteri,
stringhe, vettori). In aggiunta agli elementi fondamentali verranno introdotti
alcuni concetti di programmazione orientata ad oggetti, quali l'utilizzo di
oggetti predefiniti e la definizione di classi mediante la specifica di
attributi e metodi degli oggetti. Infine, tramite lo sviluppo di alcuni semplici
applicativi in Java, verranno introdotti alcuni rudimenti di progettazione
orientata ad oggetti (Object Oriented Design, OOD).
Il corso non pretende di essere esaustivo relativamente alle possibili strutture
dati e agli algoritmi esistenti, né all'utilizzo del linguaggio Java e dei
metodi di OOP e OOD, ma piuttosto di fornire gli strumenti essenziali per
affrontare corsi più avanzati che sfruttino il paradigma degli oggetti nelle
fasi di progettazione e sviluppo. Particolare attenzione sarà dedicata ai
concetti fondamentali, alla disciplina della programmazione e allo sviluppo
delle capacità di sintesi e analisi dei programmi Java.
Al termine del corso, lo studente sarà in grado di progettare semplici
applicativi di natura gestionale che non prevedano l'utilizzo di risorse esterne
(sistemi web e/o data base) e avrà messo in pratica i fondamenti teorici
analizzati nella parte dedicata agli algoritmi e alle strutture dati.
Prof. Mauro Di Manzo (fondamenti teorici) e-mail mauro@dist.unige.it Tel. 010-3532818 |
Armando Tacchella (programmazione Java) e-mail tac@dist.unige.it Tel. 010-3532782 |
Tutto il materiale relativo al corso (inclusa questa presentazione sintetica)
è reperibile sul sito del corso all'indirizzo:
http://www.star.dist.unige.it/~tac/FDI-SV/