Skip to content

Libera Università di Bolzano

Data Structures and Algorithms

Semestre 1 · 42433 · Corso di laurea in Ingegneria elettronica e dell’Informazione · 6CFU · IT


· Ricerca e ordinamento.
· Analisi degli algoritmi: correttezza e complessità.
· Divide et impera, ricorsioni
· Puntatori, strutture dati dinamiche, liste collegate
· Algoritmi elementari su grafi e alberi.
· Tipi di dati astratti: stack, code, code con priorità, mappe.

Docenti: Sergio Tessaris, Ivan Donadello

Ore didattica frontale: 40
Ore di laboratorio: 20
Obbligo di frequenza: La frequenza non è obbligatoria, ma è vivamente consigliata. Le lezioni consistono in presentazioni, intervallate da brevi esercizi e discussioni con gli studenti. L'obiettivo del corso è consentire agli studenti di sviluppare e analizzare algoritmi, un'abilità che può essere acquisita solo con la pratica. Tutto il materiale utilizzato durante le lezioni e i laboratori sarà pubblicato sulle pagine OLE del corso. Si raccomanda vivamente la frequenza alle lezioni e ai laboratori.

Argomenti dell'insegnamento
· Ricerca e ordinamento. · Analisi degli algoritmi: correttezza e complessità. · Divide et impera, ricorsioni · Puntatori, strutture dati dinamiche, liste concatenate · Algoritmi elementari su grafi e alberi. · Tipi di dati astratti: stack, code, code con priorità, mappe.

Modalità di insegnamento
Lezioni frontali e laboratori

Obiettivi formativi
Conoscenze e comprensione: • D1.3 - Conoscere i principi fondamentali della programmazione. • D1.6 - Conoscere le strutture dati più importanti e il loro impiego nei linguaggi di programmazione. Applicazione delle conoscenze e della comprensione: • D2.2 - Capacità di risolvere problemi algoritmici utilizzando metodi di programmazione. Capacità di apprendimento • D5.1 - Capacità di apprendimento per intraprendere ulteriori studi con un elevato grado di autonomia.

Obiettivi formativi e risultati di apprendimento (ulteriori info.)
Il corso appartiene alla tipologia "attività formative di base – informatica di base". Frequentando questo corso, gli studenti saranno in grado di formulare problemi algoritmici e di riconoscere i problemi algoritmici alla base di un'applicazione. Acquisiranno inoltre una comprensione approfondita delle strutture dati standard e delle tecniche algoritmiche corrispondenti per risolvere tali problemi. (ulteriori informazioni) Comprenderanno come determinati approcci algoritmici dipendano dalla scelta di una struttura dati adeguata e viceversa. Inoltre, gli studenti impareranno ad analizzare se un algoritmo è corretto e quali risorse temporali e spaziali richiede. Infine, gli studenti impareranno a confrontare diversi algoritmi in base alla loro idoneità per una data applicazione.

Modalità d'esame
La valutazione si basa su un esame finale scritto. L'esame scritto comprende domande volte a verificare le conoscenze, domande che valutano la capacità di applicare le conoscenze acquisite durante il corso ed esercizi.

Criteri di valutazione
Non sono previsti requisiti per sostenere l'esame finale. Nell'esame scritto, gli studenti devono applicare le tecniche apprese durante il corso in un contesto ben definito e devono elaborare algoritmi per risolvere nuovi problemi. Gli algoritmi sviluppati devono essere analizzati in termini di correttezza ed efficienza. Le risposte vengono valutate in base alla loro correttezza, all'adeguatezza degli algoritmi sviluppati, nonché alla validità e alla chiarezza dell'analisi.

Bibliografia obbligatoria

Introduzione agli algoritmi, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest e Clifford Stein (CLRS), 2ª o 3ª edizione Biblioteca universitaria: ST 134 C811



Bibliografia facoltativa

Algoritmi e strutture dati - The Basic Toolbox, K. Mehlhorn e P. Sanders, scaricabile gratuitamente da

http://www.mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-SandersToolbox.pdf



Altre informazioni
Responsabile della sezione: David Gebhardi, David.Gebhardi@unibz.it Software utilizzato: compilatore e debugger Java/C


Scarica come PDF

Obiettivi di sviluppo sostenibile
Questa attività didattica contribuisce al raggiungimento dei seguenti Obiettivi di Sviluppo sostenibile.

4

Richiesta info