First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SCP4065531, A.A. 2019/20

Information concerning the students who enrolled in A.Y. 2018/19

Information on the course unit
Degree course First cycle degree in
SC1167, Degree course structure A.Y. 2011/12, A.Y. 2019/20
bring this page
with you
Number of ECTS credits allocated 9.0
Type of assessment Mark
Course unit English denomination ALGORITHMS AND DATA STRUCTURES
Website of the academic structure
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction Italian
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge PAOLO BALDAN INF/01

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Core courses INF/01 Computer Science 9.0

Course unit organization
Period Second semester
Year 2nd Year
Teaching method frontal

Type of hours Credits Teaching
Hours of
Individual study
Practice 2.0 16 34.0 No turn
Lecture 7.0 56 119.0 No turn

Start of activities 02/03/2020
End of activities 12/06/2020
Show course schedule 2019/20 Reg.2011 course timetable

Examination board
Board From To Members of the board
3 a.a 2018/2019 01/10/2018 28/02/2020 BALDAN PAOLO (Presidente)
FILE' GILBERTO (Membro Effettivo)
AIOLLI FABIO (Supplente)

Prerequisites: Basics of programming
Discrete mathematics
Mathematical analysis
Target skills and knowledge: The course provides an introduction to algorithms and to their analysis. The student learns some fundamental algorithms and data structures that are the basis of the development of many software systems. The analysis of these algorithms helps the student to improve its capability of developing correct and efficient programs.
Examination methods: Written test and oral exam.
Assessment criteria: The exercises of the written test are designed to assess the ability of the student of identifying efficient algorithmic solutions to given problems. The oral test verifies the theoretical knowledge of the topics discussed during the lessons.
Course unit contents: - Foundations
Informal analysis of InsertSort: counting the execution steps. Growth of functions: asymptotic notations. Analysis of MergeSort algorithm. Solution of recurrences: the master theorem. Analysis of QuickSort: expected running time. Randomized QuickSort.

- Sorting and order statistics
Analysis of HeapSort. Lower bounds for sorting. Priority queues. Sorting in linear time: CountingSort and RadixSort.

- Data Structures
Hash tables. Binary search trees. Red-black trees. Augmenting data structures. Interval trees.

- Advanced Design and Analysis Techniques.
Dynamic programming. Greedy algorithms. Amortized analysis.
Planned learning activities and teaching methods: Lectures and exercises.
Additional notes about suggested reading: Exercises and additional material are available through the web page and the moodle site of the course.
Textbooks (and optional supplementary readings)
  • T.H.Cormen, C.E.Leiserson, R.L.Rivest, C.Stein, Introduzione agli Algoritmi e Strutture Dati (terza edizione). --: McGraw-Hill Italia, 2010. Cerca nel catalogo

Innovative teaching methods: Teaching and learning strategies
  • Lecturing
  • Problem based learning
  • Problem solving
  • Loading of files and pages (web pages, Moodle, ...)

Innovative teaching methods: Software or applications used
  • Moodle (files, quizzes, workshops, ...)
  • Latex

Sustainable Development Goals (SDGs)
Quality Education Industry, Innovation and Infrastructure