Salta al contenuto principale
CODICE 48382
ANNO ACCADEMICO 2017/2018
CFU
SETTORE SCIENTIFICO DISCIPLINARE INF/01
LINGUA Italiano
SEDE
PERIODO 1° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

L'insegnamento introduce il tipo di dato, controparte teorica del modulo software, costituito da valori e operazioni; introduce strutture dati e algoritmi che implementano, in modo non unico, un tipo di dato. Insegna a valutare la complessita' spaziale e temporale di un'implementazione.
Introduce la programmazione orientata a oggetti ed usa il linguaggio Java per implementare tipi di dato classici (pila, coda, dizionario) ed algoritmi per il problema dell'ordinamento.

 

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

Introduzione a: tipi di dato; algoritmi, strutture dati e valutazione della loro complessità; programmazione orientata a oggetti sull'esempio del linguaggio java; implementazione di tipi di dato in java.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

Essere in grado di implementare un tipo di dato scegliendo le strutture dati e gli algoritmi opportuni attraverso un'analisi della complessita' delle varie possibili scelte implementative. Conoscere tipi di dato classici (pila, coda, dizionario) e loro implementazioni. Conoscere gli algoritmi di ordinamento classici e loro valutazione. Conoscere la programmazione object-oriented ed il linguaggio Java.

 

MODALITA' DIDATTICHE

L'insegnamento prevede lezioni in aula e in laboratorio (con esercizi) coordinate fra loro.
Ci sono tre lezioni alla settimana di due ore ciascuna. Nella settimana-tipo, una lezione e' in aula, una in laboratorio, una e' in aula o in laboratorio secondo come richiesto dal flusso degli argomenti trattati.

 

PROGRAMMA/CONTENUTO

Tipo di dato astratto. Dall'operazione all'algoritmo, dal tipo alla struttura dati. Complessita' spaziale e temporale. Tipi di dato pila e coda, tipo di dato dizionario e varie implementazioni. Algoritmi di 
ordinamento.
Paradigma di programmazione object-oriented e linguaggio Java. Classi e oggetti, uguaglianza e copia di oggetti, costruttori, clientship, ereditarietà, overriding, eccezioni. Implementazione di tipi di dato in
Java.

 

TESTI/BIBLIOGRAFIA

Appunti del corso (in italiano).  Manuale e tutorial di Java on-line (in inglese). Libro: M.T.Goodrich, R.Tamassia, Data structures and algorithms in Java, John Wiley & Sons (in inglese), Strutture dati e algoritmi in Java, Zanichelli (traduzione italiana).

 

DOCENTI E COMMISSIONI

Commissione d'esame

PAOLA MAGILLO (Presidente)

ELENA ZUCCA (Presidente)

DAVIDE ANCONA

LEZIONI

INIZIO LEZIONI

In accordo con il calendario accademico approvato dal Consiglio di Corsi di Studi.

Orari delle lezioni

PROGRAMMAZIONE 2

ESAMI

MODALITA' D'ESAME

L'esame consiste di una prova pratica in laboratorio e un orale. Di norma le due parti sono mattina e pomeriggio dello stesso giorno e  costituiscono un'unita' inscindibile. Per dettagli vedere "Modalita' di accertamento".

MODALITA' DI ACCERTAMENTO

La prova di laboratorio richiede di scrivere, o modificare, codice che implementi varianti di algoritmi o strutture dati visti nel corso.
L'orale consiste in domande sul programma e puo' includere la scrittura di esempi in codice o pseudocodice. Puo' includere una discussione di  quanto fatto nella prova pratica.
Alla fine delle lezioni verranno dati esempi di prova di laboratorio con soluzioni.

Calendario appelli

Data appello Orario Luogo Tipologia Note
11/01/2018 15:00 GENOVA Laboratorio
01/02/2018 15:00 GENOVA Laboratorio
05/06/2018 15:00 GENOVA Laboratorio
23/07/2018 15:00 GENOVA Laboratorio
17/09/2018 15:00 GENOVA Laboratorio

ALTRE INFORMAZIONI

Prerequisiti: Programmazione 1