Modules | Area | Type | Hours | Teacher(s) | |
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
Nessun corequisito
No co-requisites.
Nessun prerequisito necessario.
No prerequisite is requested.
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.
Nessuna differenza. Le registrazioni video delle lezioni saranno rese disponibili attraverso la
pagina Web del corso.
Video lectures will be online.
https://github.com/rossanoventurini/adsds
https://github.com/rossanoventurini/adsds