METHODS FOR ALGORITHMS AND DATA STRUCTURES
cod. 1012414

Academic year 2024/25
1° year of course - First semester
Professor
Donatella GRANATA
Academic discipline
Informatica (INF/01)
Field
A scelta dello studente
Type of training activity
Student's choice
48 hours
of face-to-face activities
6 credits
hub:
course unit
in - - -

Learning objectives


The objective of the course is to present the main data structures and their related algorithms. Furthermore, the course intends to provide students with notions related to the study of the computational complexity of algorithms. Finally, the course also aims to provide students with the ability to apply problem analysis techniques to solve simple practical problems algorithmically.

With reference to the Dublin Descriptors:

Knowledge and Understanding
The course introduces the concepts related to data structures and the study of correct and efficient algorithms. Students acquire the ability to study the complexity of algorithms related to problems of various nature and the ability to use data structures that allow efficient information management.

Applying Knowledge and Understanding
The theoretical knowledge presented is always applied to the resolution of specific problems. During the course, exercises and problems of different nature will be addressed, with particular reference to the implementation of programs that use the different data structures studied and their related algorithms.

Making Judgements
The exercises proposed in relation to the theoretical part carried out in class can be tackled individually or in groups and, often, can be solved in different ways. The comparison with classmates and listening to the solutions proposed by others, during homework or in-class activities, favor the development of specific skills to clarify one's arguments and identify common structures between different approaches.

Communication Skills
Classroom discussions allow for the improvement of communication skills. These discussions concern the methods for solving the proposed problems, highlighting the advantages and disadvantages of the different approaches proposed. Students learn to work both independently and in groups.

Learning Skills
The study of basic algorithmic techniques and their application to problems of heterogeneous nature contribute to developing in students the ability to learn in an in-depth and not just superficial and repetitive way. The knowledge thus acquired is never rigid and mechanical, but perfectly adaptable to any evolution and change of perspective and context.

Prerequisites


Basic notions of mathematical analysis and programming.

Course unit content


During the course, the basics of algorithms and data structures are provided, with particular reference to the study of the computational complexity of algorithms and the design of correct algorithms for the different data structures.

Full programme


1) Introduction to graphs.
2) Computational complexity classes.
3) Linear programming.
4) Network flow problems and graph problems.
5) Exact algorithms, heuristics, and meta-heuristics.

Bibliography

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduzione agli algoritmi e strutture dati, McGraw Hill, 2010.
Combinatorial Optimization : Algorithms and Complexity / Christos H. Papadimitriou, Kenneth Steiglitz
Hillier, Lieberman, Introduction to Operations Research, McGraw Hill, 2016.

Teaching methods


The course consists of classroom lectures.

Assessment methods and criteria


The exam consists of a written test in which the knowledge of the theoretical part of the course and the ability to apply the teachings to the solution of practical problems are assessed.

Other information

- - -

2030 agenda goals for sustainable development

- - -