Il 0% ha trovato utile questo documento (0 voti)
82 visualizzazioni3 pagine

Algoritmi e Strutture Dati

Questo documento descrive un corso universitario su algoritmi e strutture dati. Viene fornita una descrizione dettagliata del corso inclusi obiettivi formativi, programma, docente e bibliografia. Gli argomenti trattati includono vari algoritmi e strutture dati come liste, alberi e grafi oltre a tecniche di ottimizzazione e compressione dati.

Caricato da

Domenico Mereu
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
82 visualizzazioni3 pagine

Algoritmi e Strutture Dati

Questo documento descrive un corso universitario su algoritmi e strutture dati. Viene fornita una descrizione dettagliata del corso inclusi obiettivi formativi, programma, docente e bibliografia. Gli argomenti trattati includono vari algoritmi e strutture dati come liste, alberi e grafi oltre a tecniche di ottimizzazione e compressione dati.

Caricato da

Domenico Mereu
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3

DIPARTIMENTO Dipartimento dell'Innovazione Industriale e Digitale - Ingegneria Chimica,

Gestionale, Informatica, Meccanica (DIID)


SCUOLA SCUOLA POLITECNICA
ANNO ACCADEMICO OFFERTA 2015/2016
ANNO ACCADEMICO EROGAZIONE 2017/2018
CORSO DILAUREA INGEGNERIA INFORMATICA E DELLE TELECOMUNICAZIONI
INSEGNAMENTO ALGORITMI E STRUTTURE DATI
TIPO DI ATTIVITA' B
AMBITO 50289-Ingegneria informatica
CODICE INSEGNAMENTO 01175
SETTORI SCIENTIFICO-DISCIPLINARI ING-INF/05
DOCENTE RESPONSABILE VASSALLO GIORGIO Ricercatore Univ. di PALERMO
ALTRI DOCENTI
CFU 6
NUMERO DI ORE RISERVATE ALLO 96
STUDIO PERSONALE
NUMERO DI ORE RISERVATE ALLA 54
DIDATTICA ASSISTITA
PROPEDEUTICITA'
MUTUAZIONI
ANNO DI CORSO 3
PERIODO DELLE LEZIONI 1° semestre
MODALITA' DI FREQUENZA Facoltativa
TIPO DI VALUTAZIONE Voto in trentesimi
ORARIO DI RICEVIMENTO DEGLI VASSALLO GIORGIO
STUDENTI Lunedì 11:00 13:00
DOCENTE: Prof. GIORGIO VASSALLO
PREREQUISITI
RISULTATI DI APPRENDIMENTO ATTESI Conoscenza e capacità di comprensione
Lo studente alla fine del corso acquisirà una buona conoscenza dei principali
algoritmi e delle più importanti strutture dati utilizzate nella programmazione
avanzata. Sarà in grado di analizzare e comprendere il codice sorgente dei
principali algoritmi utilizzati per lo sviluppo del software.

Capacità di applicare conoscenza e comprensione


Lo studente sarà in grado di valutare le caratteristiche, i vantaggi e le limitazioni
dei principali algoritmi e strutture dati. Sarà in grado di progettare, analizzare e
valutare le soluzioni software a problemi di media complessità.

Autonomia di giudizio
Lo studente sarà in grado sia di effettuare l'analisi di un problema che di
progettare, a partire da precise specifiche, una opportuna soluzione software.
Sarà in grado di valutarne la qualità di una soluzione software in termini di
semplicità, leggibilità, efficienza e possibilità di riutilizzo.

Abilità comunicative
Lo studente acquisirà la capacità di comunicare ed esprimere problematiche
inerenti l’oggetto del corso. Sarà in grado di sostenere conversazioni su
tematiche relative alla implementazioni software di algoritmi e strutture dati
efficienti. Sarà in grado di utilizzare un linguaggio semplice e chiaro per la
descrizione dei processi di analisi e di sintesi di soluzioni software a problemi di
media complessità.

Capacità d’apprendimento
Lo studente dovrà sviluppare la capacità di apprendere i processi di analisi e di
sintesi relativi alla codifica di algoritmi di media complessità e alla relativa
implementazione di librerie e strumenti software.
VALUTAZIONE DELL'APPRENDIMENTO Prova scritta e orale.
OBIETTIVI FORMATIVI Al termine del modulo lo studente conoscerà i concetti di base necessari alla
analisi e all’applicazione di alcuni tra i più diffusi algoritmi, e avrà una
conoscenza di strumenti di media complessità relativi alla progettazione di
software avanzato e/o scientifico.
ORGANIZZAZIONE DELLA DIDATTICA Lezioni frontali. Esercitazioni in aula e nelle aule informatiche.
TESTI CONSIGLIATI Luciano M. Baroni et al., Programmazione Scientifica, Pearson Education.
PROGRAMMA
ORE Lezioni
5 Introduzione al concetto di algoritmo, complessità computazionale degli algoritmi. Semplici esempi di algoritmi
per la gestione di vettori e matrici: Prodotto di matrici di numeri reali e complessi. Utilizzo di una matrice di
interi per la simulazione di macchine a stati finiti. Algoritmi di ordinamento e calcolo della loro complessità
computazionale. Implementazione di funzioni per la gestione di insiemi con operatori bitwise.
5 Liste semplici, liste circolari. Inserimento, ricerca e cancellazione di un elemento in una lista. Esempi di
strutture dati elementari: pile e code. Code aperte ai due estremi, code con priorità. Implementazione di una
coda con priorità con heap binario e con heap binomiale. Utilizzo di una pila per l'implementazione di un
semplice interprete di espressioni matematiche in notazione polacca inversa.
5 Algoritmi sulle stringhe. Distanza di Levenshtein.
Alberi binari di ricerca. Ordinamento, inserimento e ricerca di dati in un albero binario. Calcolo della
complessità computazionale delle operazioni su alberi binari.
5 Funzioni di hashing e implementazione di una tabella hash con un vettore di liste semplici. Utilizzo di tabelle
hash e alberi binari per l'implementazione di insiemi e e di mappe associative semplici e multiple.
5 Concetto di grafo, grafi orientati e non orientati, matrice di incidenza. Strutture dati per l'implementazione di un
grafo. Algoritmo di Dijkstra e di Bellman-Fordper trovare il percorso di costo minimo in un grafo. Problemi NP:
percorso euleriano minimo in un grafo. Tecniche di rilassamento per la soluzione approssimata di problemi NP.
Minimo albero di copertura.
5 Algoritmi di ottimizzazione: discesa lungo il gradiente, metodo del gradiente coniugato.
Tecniche di compressione dell'informazione, tecniche di entropy encoding e algoritmo di Huffman.
5 Strutture dati per la geometria, algebra geometrica, concetto di multivettore. Prodotto geometrico.
Esempi di algoritmi e strutture dati per l'implementazione delle principali operazioni dell'algebra geometrica.
Algoritmi e strutture dati per la codifica di oggetti geometrici elementari (punti rette, piani) con l'utilizzo
dell'algebra geometrica.
5 Introduzione alla analisi numerica. Integrazione numerica di funzioni. Integrazione con il metodo Monte Carlo.
Integrazione di equazioni differenziali.
ORE Esercitazioni
20 Esercitazioni sulla sintesi, l'analisi e le applicazioni degli algoritmi studiati. Implementazione in linguaggio C e/o
java degli algoritmi e delle soluzioni software studiate.

Potrebbero piacerti anche