11929 - Algorithm and Data Structures

Academic Year 2023/2024

  • Moduli: Vittorio Maniezzo (Modulo 1) Roberto Casadei (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Computer Systems Technologies (cod. 6007)

Learning outcomes

At the end of the course, the student knows about the basic data structures and algorithms. The student also knows the techniques for the estimation of the computational cost (complexity) of algorithms, and is able to design and implement efficient solutions to common problems in Information Technology (IT)-related fields.

Course contents

The course consists of two modules: the first is about the theory and practice of algorithms, and the second consists of an introduction to the Python programming language.

The algorithms under study will be presented in an abstract notation, independent of the details of specific programming languages. In practice sessions, the algorithms will be implemented in the C programming language. Python will provide an additional implementation perspective.

The topics covered in this course include:

  • concepts of algorithms and efficiency/complexity
  • asymptotic analysis of complexity
  • recursive algorithms and divide-et-impera
  • search algorithms
  • sorting algorithms
  • basic data structures: stacks, queues, trees, graphs, hash tables
  • graph-traversal algorithms

Readings/Bibliography

  • Algoritmi e strutture dati - Astrazione, progetto e realizzazione. Pasquale Foggia, Mario Vento. McGraw-Hill, 2011
  • Introduzione agli algoritmi e strutture dati. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. McGraw-Hill Education, 2010

Teaching methods

  • Lectures
  • Practice in lab at the computer

Assessment methods

The exam consists in a Python project, required to access to the written exam, which consists in exercises about the theory of the course and programming exercises in C. 

Teaching tools

Slides provided by the professors.

Office hours

See the website of Roberto Casadei

See the website of Vittorio Maniezzo