11929 - Algorithms and Data Structures (CL.B)

Academic Year 2024/2025

  • Moduli: Vittorio Maniezzo (Modulo 1) Moreno Marzolla (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Science and Engineering (cod. 8615)

Learning outcomes

Upon completion of the course, the student knows:

- algorithms for solving basic computational problems on elementary data structures;

- basic techniques for calculating the computational cost of algorithms;

- the P, NP, and NP-hard computational complexity classes.

In particular, the student is able to:

- design efficient algorithms for solving simple computational problems;

- estimate in order of magnitude the computational cost of algorithms;

- analyze the computational complexity of basic computational problems;

- assess the efficiency and correctness of an algorithm;

- design and develop a solution for basic computational problems.

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

Readings/Bibliography

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

Teaching methods

Lectures in class

 

Assessment methods

Additional optional written and oral exams. Project.

The exam consists of two tests, a project and a written (optional oral) exam. The project must be submitted and approved prior to the written exam and does not contribute to the final grade, but only qualifies the student to take the written exam.

Attendance is strongly recommended but not required.

The written exam, which lasts 1.5 hours, consists of three exercises, a multiple-choice quiz and a theoretical question that tests knowledge (knowing) and an exercise that tests skills (knowing how to do), which are discussed in the "Knowledge and Skills to be Achieved" section.

Tools such as calculators, vocabularies, codes, etc. are not allowed during the tests.

Active participation in class is rewarded.


Teaching tools

Lecture notes and handouts related to the textbook. They are not a substitute for the book itself.

Office hours

See the website of Vittorio Maniezzo

See the website of Moreno Marzolla