CdSDATA SCIENCE AND BUSINESS INFORMATICS
Codice751AA
CFU9
PeriodoSecondo semestre
LinguaInglese
Moduli | Settore/i | Tipo | Ore | Docente/i | |
ALGORITHMS AND DATA STRUCTURES FOR DATA SCIENCE | INF/01 | LEZIONI | 72 |
|
Il corso introduce le strutture dati e le tecniche algoritmice di base che permettono agli studenti di risolvere problemi computazionali sui principali tipi di dato quali sequenze, insiemi, alberi e grafi.
Le lezioni teoriche saranno seguite da un'intensa attività in laboratorio in linguaggio Python.
Gli studenti sperimenteranno con algoritmi e strututre dati scrivendo le loro implementazioni o utilizzando librerie.
The course introduces basic data structures and algorithmic techniques
that allow students to solve computational problems on the most
important data types, such as sequences, sets, trees, and graphs.
The lectures will be complemented by an intensive activity in laboratory. Students will experiment with algorithms and data structures by writing their
own implementations or by using third-party libraries.
Esercizi saranno utilizzati per verificare le capacità di progettazzione di algoritmi e strutture dati e il loro utilizzo.
Designing of algorithms and data structures and their use will be tested with exercises.
L'obiettivo del corso è quello di insegnare agli studenti la progettazione e lo sviluppo di algoritmi efficienti scegliendo le più appropriate solutioni.
The goal of the class is to enable students to design and implement efficient algorithms, choosing the most appropriate solutions in their future projects.
Esame scritto e orale
Written and oral exam
Conoscenza del linguaggio di programmazione Python
Basic knowledge of Python
Le lezioni di teoria utilizzaranno un tablet mentre le lezioni di laboratorio utilizzeranno
notebook Jupyter.
Theory lectures will use a tablet. Laboratory lectures will be with notebook Jupyter.
-
Introduzione e definizioni di base: algoritmi, problemi e istanze
-
Complessità computazionale e analisi degli algoritmi
-
Ordinamento: Mergesort, Quicksort e Heapsort.
-
Ricerca: Binary Search, Binary Search Tree, Trie e Hashing.
-
Algoritmi su alberi: rappresentazione e visite
-
Algoritmi su grafi: rappresentazione, visite e principali problemi
-
Modello a memoria esterna: ordinamento e ricerca
-
Introduction and basic definitions: algorithm, problem, instance.
-
Computational complexity analysis of algorithms.
-
Sorting: Mergesort, Quicksort and Heapsort.
-
Searching: Binary Search, Binary Search Tree, Trie, and Hashing.
-
Algorithms on Trees: representation and traversals.
-
Algorithms on Graphs: representation, traversals, and most important problems.
-
External memory model: sorting and searching.
- Introduction to Algorithms, 3rd Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press, 2009
- Introduction to Algorithms, 3rd Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press, 2009
Nessuna differenza. Le registrazioni video delle lezioni saranno rese disponibili attraverso la
pagina Web del corso.
Video lectures will be online.
- L'esame è composto da una prova scritta e una prova/e orale.
- The exam is made up of one written test, and one oral test.
https://github.com/rossanoventurini/adsds