Insegnamento ALGORITMI E STRUTTURE DATI

Nome del corso di laurea Programmazione e gestione di sistemi informatici
Codice insegnamento 55000606
Curriculum Comune a tutti i curricula
Docente responsabile Francesco Betti Sorbelli
Docenti
  • Francesco Betti Sorbelli
Ore
  • 42 Ore - Francesco Betti Sorbelli
CFU 6
Regolamento Coorte 2023
Erogato Erogato nel 2023/24
Erogato altro regolamento
Attività Caratterizzante
Ambito Tecnologie informatiche e dell'informazione
Settore INF/01
Anno 1
Periodo Secondo Semestre
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