Skip to content

Free University of Bozen-Bolzano

Data Structures & Algorithms

Semester 1 · 76410 · Bachelor in Informatics and Management of Digital Business · 6CP · IT


• Searching and sorting
• Analysis of algorithms: correctness and complexity
• Divide and conquer, recurrences
• Pointers, dynamic data structures, linked lists
• Abstract data types: stacks, queues, priority queues, maps
• Elementary graph and tree algorithms

Lecturers: Ivan Donadello

Teaching Hours: 40
Lab Hours: 20
Mandatory Attendance: Attendance is not compulsory, but strongly recommended. The lectures consist of presentations, interspersed by small exercises, and discussions with the students. The goal of the course is to enable students to develop and analyze algorithms, which is a skill that can only be acquired by training. Students who are unable to follow all lectures and labs are encouraged to attend at least some of them. They are also encouraged to work out all the exercises given during the lectures and the labs.

Course Topics
- Search and sorting - Analysis of algorithms: correctness and complexity - Divide and conquer, recurrences - Pointers, dynamic data structures, linked lists - Abstract data types: stacks, queues, priority queues, maps - Elementary graph and tree algorithms

Teaching format
Frontal lectures and labs.

Educational objectives
The course belongs to the type "attività formative di base – informatica di base". By following this course, students will be able to formulate algorithmic problems and to recognize algorithmic problems underlying an application. They will also acquire an in-depth understanding of the standard data structures and the corresponding algorithmic techniques to solve such problems. They will recognize how certain algorithmic approaches depend on the choice of a suitable data structure and vice versa. Moreover, students will learn how to analyze whether an algorithm is correct and which time and space resources it needs. Finally, students will learn how to compare different algorithms with respect to their suitability for a given application. Knowledge and understanding: • D1.3 - Know the basic principles of programming. • D1.6 - Know the most important data structures and their use in programming languages. Applying knowledge and understanding: • D2.2 - Ability to solve algorithmic problems using programming methods. Learning skills • D5.1 - Learning ability to undertake further studies with a high degree of autonomy.

Additional educational objectives and learning outcomes
The course belongs to the type "attività formative di base – informatica di base". By following this course, students will be able to formulate algorithmic problems and to recognize algorithmic problems underlying an application. They will also acquire an in-depth understanding of the standard data structures and the corresponding algorithmic techniques to solve such problems. They will recognize how certain algorithmic approaches depend on the choice of a suitable data structure and vice versa. Moreover, students will learn how to analyze whether an algorithm is correct and which time and space resources it needs. Finally, students will learn how to compare different algorithms with respect to their suitability for a given application.

Assessment
The assessment is based on a written final exam. The written exam consists of questions to verify knowledge, questions that assess the ability to apply knowledge acquired in the course, and exercises.

Evaluation criteria
There are no requirements for attending the final exam. In the written exam, students have to apply techniques taught in the course in a defined setting and have to develop algorithms for new problems. The algorithms developed have to be analyzed with respect to correctness and efficiency. The answers are marked according to their correctness, the suitability of the algorithms developed, and the validity and clarity of the analysis.

Required readings

Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein (CLRS), 2nd or 3rd edition

University Library: ST 134 C811



Supplementary readings

Algorithms and Data Structures - The Basic Toolbox, K. Mehlhorn and P. Sanders, free download from

http://www.mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Sanders-Toolbox.pdf



Further information
Subject Librarian: David Gebhardi, David.Gebhardi@unibz.it Software used: Java/C compiler and debugger


Download as pdf

Sustainable Development Goals
This teaching activity contributes to the achievement of the following Sustainable Development Goals.

4

Request info