Insegnamento ALGORITMI E STRUTTURE DATI

Corso
Programmazione e gestione di sistemi informatici
Codice insegnamento
55000606
Curriculum
Comune a tutti i curricula
Docente
Francesco Betti Sorbelli
Docenti
  • Francesco Betti Sorbelli
Ore
  • 42 ore - Francesco Betti Sorbelli
CFU
6
Regolamento
Coorte 2023
Erogato
2023/24
Attività
Caratterizzante
Ambito
Tecnologie informatiche e dell'informazione
Settore
INF/01
Tipo insegnamento
Obbligatorio (Required)
Tipo attività
Attività formativa monodisciplinare
Lingua insegnamento
ITALIANO
Contenuti
Algoritmi di ordinamento; Strutture dati elementari; Code di priorità; Alberi binari di ricerca, alberi binari di ricerca bilanciati e più recenti implementazioni; Tabelle Hash; Visita dei grafi e visite.
Testi di riferimento
T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (terza edizione), McGraw-Hill, 2010, ISBN: 978-88-386-6515-8.

Slides messe a disposizione dal docente.
Obiettivi formativi
Gli obiettivi del corso sono focalizzati sul fornire agli studenti una solida comprensione degli algoritmi di ordinamento e delle strutture dati fondamentali. Durante il corso, gli studenti impareranno e acquisiranno competenze pratiche nell'implementazione e nell'utilizzo degli algoritmi di ordinamento come insertion sort, selection sort, mergesort, quicksort e heapsort. Saranno in grado di valutare l'efficienza di ciascun algoritmo e di selezionare l'algoritmo più appropriato per risolvere un dato problema.

Inoltre, il corso coprirà anche le strutture dati elementari come le code, le pile e le liste. Gli studenti saranno in grado di comprendere le caratteristiche di ciascuna struttura dati e di utilizzarle in modo efficiente per risolvere problemi specifici. Verrà inoltre introdotta la nozione di code di priorità, consentendo agli studenti di comprendere come gestire dati con priorità differenti in un'implementazione efficiente.

Un altro obiettivo del corso è quello di introdurre gli studenti ai concetti di alberi binari di ricerca e delle sue varianti bilanciate come gli alberi AVL e gli alberi rosso-neri. Gli studenti acquisiranno conoscenze sulle strutture dati ad albero e saranno in grado di effettuare operazioni di ricerca, inserimento e cancellazione in modo efficiente.

Le tabelle hash saranno anche oggetto di studio nel corso, in cui gli studenti apprenderanno come risolvere problemi di ricerca e memorizzazione di grandi quantità di dati utilizzando questa struttura dati. Verranno presentate le diverse tecniche di hashing e le strategie di gestione delle collisioni.

Infine, il corso coprirà anche le visite dei grafi, consentendo agli studenti di acquisire familiarità con gli algoritmi di visita come la ricerca in profondità (DFS) e la ricerca in ampiezza (BFS). Saranno in grado di applicare queste tecniche per analizzare e risolvere problemi legati alla struttura dei grafi.

Complessivamente, gli obiettivi del corso sono quello di fornire agli studenti una solida base di conoscenza sugli algoritmi di ordinamento, le strutture dati fondamentali e le visite dei grafi, permettendo loro di diventare in grado di analizzare, valutare e risolvere una vasta gamma di problemi algoritmici in diversi contesti.
Prerequisiti
Elementi di Analisi Matematica, Matematica Discreta e un linguaggio di programmazione imperativo.
Metodi didattici
Lezioni frontali in classe.
Altre informazioni
Frequenza consigliata.
Tuttavia tutti gli argomenti trattati sono rintracciabili sui testi consigliati.
Modalità di verifica dell'apprendimento
Prova scritta + orale.
Programma esteso
Algoritmi di ordinamento (insertion, selection, mergesort, quicksort, hepsort); Strutture dati elementari (code, pile, list); Code di priorità; Alberi binari di ricerca, alberi binari di ricerca bilanciati e più recenti implementazioni; Tabelle Hash; Visita dei grafi e visite.
Obiettivi Agenda 2030 per lo sviluppo sostenibile
Questo insegnamento concorre alla realizzazione degli obiettivi ONU dell'Agenda 2030 per lo Sviluppo Sostenibile.
Condividi su