11929 - Algorithms and Data Structures

Course Unit Page

Academic Year 2014/2015

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

Links to further information


Office hours

See the website of Luciano Margara

See the website of Pietro Di Lena