11929 - Algorithms and Data Structures (CL.A)

Course Unit Page

Academic Year 2022/2023

Learning outcomes

At the end of the course the student: - knows the basic algorithms and data structures; - knows how to compute computational costs; - Knows the classes P and NP; he can dvise fficient algorithms for solving simple computational problems; he can estimate the order of magnitude of the cost of a given algorithm; he can analyze the complexity of a problem; he knows techniques for analyze the correctness and the efficiency of an algorithm; he is able to write and to present a project for solving a computational problem.

Course contents

- basic notion of discrete mathematics for analyzing order of magnitude - Sorting - Median and selection - Elementary data structures: stacks, queues, graphs - Search algorithms on graphs - basic algorithms on graphs - Classes P and NP - NP hard Problems


- T. Cormen, C. Leiserson, R. Rivest. Introduction to algorithms. MIT Press.

Teaching methods

Lectures in class

Assessment methods

Written and oral exam. Project.

Teaching tools

- Slides and books

Office hours

See the website of Luciano Margara

See the website of Moreno Marzolla