| Docente:
| Prof. Pier Luca Lanzi
Dipartimento di Elettronica e Informazione
Primo Piano – Ufficio 121
Ricevimento: Lun. 11-13 |
| Esercitatore: |
Ing. Daniele Loiacono
|
|
| Orario |
Lunedì 14.15 – 17.15 aula S.0.5
Giovedì 16.15 – 18.15 aula EL.0 |
Distribuzione dell’Attività Didattica
30 ore di lezione, 20 ore di esercitazione,
non sono previste ore di laboratorio.
Argomenti Trattati
- Prima Parte:
Linguaggi di Programmazione
- I linguaggi di programmazione: concetti generali e classificazioni fondamentali; cenni storici
- Sintassi e semantica
- La struttura dei dati
- La struttura di controllo
- Modularizzazione
- Linguaggi orientati agli oggetti
- Cenni ai linguaggi Interpretati
- Seconda Parte:
Algoritmi e Strutture Dati
- Introduzione alla complessità del calcolo
- La notazione “Theta-grande”
- La realizzazione di tipi astratti di dati in Java
- Strutture dati e algoritmi fondamentali
- Algoritmi di ricerca e ordinamento
- Alberi e loro gestione
- Realizzazione mediante puntatori
- Alberi binari
- Algoritmi di visita e gestione
- B-trees
- Grafi, loro rappresentazione e gestione
- Pile, code e tabelle hash
- Applicazioni di elaborazioni numeriche e simboliche: a scelta e a rotazione alcuni tra: string matching, compressione dei dati, crittografia (cenni), moltiplicazione tra matrici, trasformata veloce di Fourier (FFT)
Bibliografia
- Per la prima parte: Ghezzi C., Jazayeri M.: Programming language concepts, 4th edition, John Wiley & Sons, 2002.
- Per la seconda parte: C.A.Shaffer: A practical Introduction to data structures and algorithm analysis.
- Lucidi e dispense distribuite attraverso il sito del docente.
Prerequisiti
I fondamenti dell’informatica come impartiti nei corsi di Informatica 1 e Informatica 2. Elementi di programmazione a oggetti in Java, così come impartita in Ingegneria del software.
Materiale Didattico
Temi d’Esame