Scheda programma d'esame
ALGORITHMS AND DATA STRUCTURES FOR DATA SCIENCE
ROSSANO VENTURINI
Academic year2023/24
CourseDATA SCIENCE AND BUSINESS INFORMATICS
Code751AA
Credits9
PeriodSemester 2
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
ALGORITHMS AND DATA STRUCTURES FOR DATA SCIENCEINF/01LEZIONI72
ROSSANO VENTURINI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

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. 

Knowledge

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.

Modalità di verifica delle conoscenze

Esercizi saranno utilizzati per verificare le capacità di progettazzione di algoritmi e strutture dati e il loro utilizzo.

Assessment criteria of knowledge

Designing of algorithms and data structures and their use will be tested with exercises.

Capacità

L'obiettivo del corso è quello di insegnare agli studenti la progettazione e lo sviluppo di algoritmi efficienti scegliendo le più appropriate solutioni.

Skills

The goal of the class is to enable students to design and implement efficient algorithms, choosing the most appropriate solutions in their future projects.

Modalità di verifica delle capacità

Esame scritto e orale

Assessment criteria of skills

Written and oral exam

Prerequisiti (conoscenze iniziali)

Conoscenza del linguaggio di programmazione Python

Prerequisites

Basic knowledge of Python

Indicazioni metodologiche

Le lezioni di teoria utilizzaranno un tablet mentre le lezioni di laboratorio utilizzeranno

notebook Jupyter.

Teaching methods

Theory lectures will use a tablet. Laboratory lectures will be with notebook Jupyter.

Programma (contenuti dell'insegnamento)

 

  • 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

 

Syllabus
  • 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.

 

Bibliografia e materiale didattico
  • Introduction to Algorithms,  3rd Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press, 2009
Bibliography
  • Introduction to Algorithms,  3rd Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, The MIT Press, 2009
Indicazioni per non frequentanti

Nessuna differenza. Le registrazioni video delle lezioni saranno rese disponibili attraverso la 

pagina Web del corso.

Non-attending students info

Video lectures will be online.

Modalità d'esame
  • L'esame è composto da una prova scritta e una prova/e orale.
Assessment methods
  • The exam is made up of one written test, and one oral test.
Additional web pages

https://github.com/rossanoventurini/adsds

Updated: 26/07/2023 09:40