LABORATORY FOR ALGORITHMS AND DATA STRUCTURES
cod. 15397

Academic year 2024/25
2° year of course - Second semester
Professor
Alessandro DAL PALU'
Academic discipline
Informatica (INF/01)
Field
Discipline informatiche
Type of training activity
Characterising
48 hours
of face-to-face activities
6 credits
hub:
course unit
in ITALIAN

Learning objectives

The course provides a hands-on practice about algorithms and data structures. It guides in the implementation of such concepts

Taking Dublin Indicators into account:

Knowledge and understanding

The course recaps the contents of "algorithms and data structures" class and provides the student a means to comprehend such aspects. The design and practical implementation develops a deep confidence in the usage of such algorithms.

The reference text is in Italian/Engligh. Standard English terminology is commonly used during the lessons as goodwill to the consultation of the international scientific literature.

Applying knowledge and understanding
The knowledge presented is always applied to the resolution of specific problems. The companion exercises are focused on problem solving and testing the comprehension of proposed algorithms. Solution methods are presented in the form of an algorithm, providing the students the ability to formalize and adapt known algorithms to specific contexts.

Making judgments
The exercises, which are proposed in relation to the theoretical part presented in class, can be solved individually or in small groups. The comparison with classmates, work at home or in classroom, favors the development of specific skills in students to enable the explanation of arguments to fellows and teachers. Often the exercises can be solved in many different ways and listening to the solutions proposed by other allows students to develop the ability to identify common structures, beyond the apparent superficial differences.

Communication skills
The numerous discussions on the different methods to solve problems allow students to improve communication skills. Specific communication of computer technology is also used during classes and exercises.

Learning skills
The explanation of algorithms and data structures and their implementation in a high level language (non-object oriented) offers the chance to focus on the core concepts of algorithms: the degsign of a data structure, the deep knowledge of classical algorithms, the design of customized algorithms, the comprehension of computational complexity.
The knowledge acquired is never rigid and definitive, but it is adaptable to any evolution and change of perspective and context.

Prerequisites

Algorithms and data structures, Basics of Programming A+B

Course unit content

The course builds upon the basic concepts presented in the Algorithms and Data Structures course and focuses on the practical application of theoretical concepts. In particular, classic sorting and searching algorithms are implemented with assistance or independently. Additionally, algorithms on graphs are introduced for analysis, implementation, and evaluation. The course provides an opportunity to gain hands-on experience with the actual behavior of algorithms in relation to their computational complexity measures.

Full programme

Sorting, search on ordered arrays, heaps, algorithms on graphs, dynamic programming

Bibliography

Cormen. Introduction to algorithms and data structures

Teaching methods

classes and coding lab

Assessment methods and criteria

Learning outcomes and methods of verification
Being able to understand and make appropriate use of algoritms and data structures. Being able to implement an algorithm starting from its pseudo-code version. Undestanding of the structure of an algorithm and being able to modify its behaviour. Understanding the expected behaviour and the computational complexity of an algorithm.

Learning assessment/examination
The exam consists of a oral test that can be accessed only after completing the laboratory assignments. It is possible to take the oral test several times. The oral test validates the learning outcomes through questions about programs and results returned by developed codes.

Other information

2030 agenda goals for sustainable development