Dettagli sull'Insegnamento per l'A.A. 2015/2016
Nome:
Algoritmi e Strutture Dati / Algorithms and Data Structures
Informazioni
Crediti:
: Bachelor Degree in Computer Science 6 CFU (a)
Erogazione:
Bachelor Degree in Computer Science 2nd anno curriculum General Compulsory
Lingua:
Italiano
Prerequisiti
Conoscere:
- strutture dati elementari (array, liste, …)
- concetto di ricorsione
- sommatorie, dimostrazione per induzione e calcolo infinitesimale
Obiettivi
L'obiettivo del corso è quello di fornire allo studente competenze di base sui metodi di rappresentazione delle principali strutture di dati, sui rispettivi algoritmi fondamentali per la loro gestione e sulla valutazione della complessità computazionale di un algoritmo e di un problema. Infine, mira a sviluppare un’intuizione finalizzata alla soluzione efficiente di problemi computazionali
Sillabo
- Analisi della complessità di un algoritmo
- Algoritmi di ordinamento (insertion-sort, selection-sort, merge-sort).
- Code di priorità. heap binari, heap binomiali, heap-sort.
- Il problema del dizionario: ricerca, inserimento, cancellazione. Gestione di dizionari: alberi AVL, tabelle hash.
- Grafi: rappresentazioni, algoritmi di visita e connessione.
- Algoritmi elementari su grafi: cammino minimo, minimo albero ricoprente.
Descrittori di Dublino
Alla fine del corso, lo studente dovrebbe
- By the end of this module students will be able to: 1) understand the importance of designing efficient algorithms; 2) analyze the resources (space and time) needed by an algorithm; 3) known efficient algorithms for basic computational problems (sorting, searching, graph problems, etc.).
- The aim is to make the student capable of abstracting models and formal algorithmic problems from real computational problems, and designing efficient algorithmic solutions.
- Through the presentation and the comparison of different solutions to a given probelm, students will be guided to learn and to identify independently their most efficient solution.
- The course will encourage the development of the following skills of the student: capability of formally presenting and modelling concrete problems, focusing on their main features and discarding the inessential ones.
- The course aims to develop in undergraduate students competencies and abilities necessary in their future studies, especially with respect to advanced algorithmic courses.
Testi di riferimento
- C. Demetrescu, I. Finocchi, G.F. Italiano, Algoritmi e Strutture Dati , Ed. McGraw-Hill.
Modalità d'esame
L’esame va svolto congiuntamente con la parte di laboratorio e consiste in:
una prova scritta e una prova orale di teoria, da svolgersi obbligatoriamente
una prova scritta di laboratorio, seguita da un’eventuale prova orale da svolgersi a discrezione della docente o su richiesta dello studente.
Entrambe le parti prevedono la possibilità di svolgere una prova parziale, somministrata a metà del ciclo di lezioni.
Aggiornamenti alla pagina del corso
Le informazioni sulle editioni passate di questo corso sono disponibili per i seguenti anni accademici:
Per leggere le informazioni correnti sul corso, se ancora erogato, consulta il catalogo corsi di ateneo.
Ultimo aggiornamento delle informazioni sul corso: 19 novembre 2014, 09:30