Unit ALGORITHMS AND DATA STRUCTURES
- Course
- Programming and management of computer systems
- Study-unit Code
- 55000606
- Curriculum
- In all curricula
- Teacher
- Francesco Betti Sorbelli
- Teachers
-
- Francesco Betti Sorbelli
- Hours
- 42 ore - Francesco Betti Sorbelli
- CFU
- 6
- Course Regulation
- Coorte 2023
- Offered
- 2023/24
- Learning activities
- Caratterizzante
- Area
- Tecnologie informatiche e dell'informazione
- Academic discipline
- INF/01
- Type of study-unit
- Obbligatorio (Required)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- Italian
- Contents
- Sorting algorithms; Basic data structures; Priority queues; Binary search trees, balanced binary search trees, and more recent implementations; Hash tables; Graph traversal and visits.
- Reference texts
- T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (terza edizione), McGraw-Hill, 2010, ISBN: 978-88-386-6515-8.
The slides provided by the instructor. - Educational objectives
- The objectives of the course are focused on providing students with a solid understanding of sorting algorithms and fundamental data structures. Throughout the course, students will learn and acquire practical skills in implementing and utilizing sorting algorithms such as insertion sort, selection sort, mergesort, quicksort, and heapsort. They will be able to evaluate the efficiency of each algorithm and select the most appropriate one to solve a given problem.
Additionally, the course will cover basic data structures such as queues, stacks, and lists. Students will be able to understand the characteristics of each data structure and efficiently use them to solve specific problems. The concept of priority queues will also be introduced, allowing students to understand how to handle data with different priorities in an efficient implementation.
Another objective of the course is to introduce students to binary search trees and their balanced variants such as AVL trees and red-black trees. Students will acquire knowledge about tree data structures and be able to perform search, insertion, and deletion operations efficiently.
Hash tables will also be studied in the course, where students will learn how to solve problems related to searching and storing large amounts of data using this data structure. Different hashing techniques and collision handling strategies will be presented.
Finally, the course will also cover graph traversal and visits, enabling students to become familiar with traversal algorithms such as depth-first search (DFS) and breadth-first search (BFS). They will be able to apply these techniques to analyze and solve problems related to graph structures.
Overall, the objectives of the course are to provide students with a solid foundation of knowledge in sorting algorithms, fundamental data structures, and graph visits, enabling them to analyze, evaluate, and solve a wide range of algorithmic problems in various contexts. - Prerequisites
- Elements of Mathematical Analysis, Discrete Mathematics, and an imperative programming language.
- Teaching methods
- The course will be delivered through traditional classroom lectures.
- Other information
- The recommended attendance policy for classroom lectures depends on the specific policies and rules of the academic institution and the course. However, generally, students are advised to attend the lectures regularly.
- Learning verification modality
- Written + oral exam.
- Extended program
- Sorting algorithms (insertion sort, selection sort, mergesort, quicksort, heapsort); Basic data structures (queues, stacks, lists); Priority queues; Binary search trees, balanced binary search trees, and more recent implementations; Hash tables; Graph traversal and visits.
- Obiettivi Agenda 2030 per lo sviluppo sostenibile
- This course contributes to the achievement of the United Nations' Sustainable Development Goals outlined in the 2030 Agenda for Sustainable Development.