Students
Tuition Fee
Not Available
Start Date
2026-06-05
Medium of studying
Not Available
Duration
Not Available
Details
Program Details
Degree
Bachelors
Major
Computer Science | Data Science | Software Engineering
Area of study
Information and Communication Technologies | Mathematics and Statistics
Course Language
English
Intakes
Program start dateApplication deadline
2026-01-07-
2026-02-05-
2026-06-05-
2026-07-13-
2026-09-08-
2027-01-07-
2027-02-05-
2027-06-05-
2027-07-13-
2027-09-08-
About Program

Program Overview


ALGORITHMS AND DATA STRUCTURES

The course of Algorithms and Data Structures aims at expanding the students' knowledge and skills related to programming in the small with imperative languages; it provides the basis for designing efficient algorithms and for developing data structures that enable effective information organization.


OVERVIEW

The course focuses on the development of skills related to programming, algorithm design, and data structure implementation.


AIMS AND CONTENT

LEARNING OUTCOMES

  • Expanding knowledge and skills related to programming in the small through imperative languages
  • Learning to design correct and efficient algorithms
  • Implementing data structures that support effective and efficient organization of information

AIMS AND LEARNING OUTCOMES

At the end of the course, the student will be able to:


  • Compute the complexity of known algorithms (sorting, adding, searching, and modifying elements in a data structure) to identify the most efficient one
  • Design the interface of a data type
  • Implement the data type with different data structures that include indexed and linked structures
  • Understand the difference in the efficiency of the functions supported by the data type when different data structures are employed

PREREQUISITES

The basic skills that students should already possess to properly face the course contents are those provided by the "Introduction to Programming" course.


TEACHING METHODS

  • Traditional, with frontal lessons and laboratory sessions
  • The course includes the development of an optional individual project
  • For students who intend to develop transversal skills, teaching methods also include:
    • Production of short videos on topics already explained during classes
    • Production of documentation that explains in written form topics already presented during classes
    • Peer review activities
    • Flipped classroom on a topic for which teachers have provided documentation before the class
    • Development of an individual project (mandatory to obtain the corresponding open badge)

SYLLABUS/CONTENT

  • Methods for algorithm analysis: cost criteria, asymptotic notation, complexity analysis of recursive algorithms
  • Sorting algorithms: insertion sort, selection sort, bubble sort, mergesort, quicksort
  • Basic data structures: arrays and lists; stacks and queues; dictionaries implemented with lists
  • Dictionaries: implementation with binary search trees and hash tables
  • Trees: indexed and linked representations for binary trees and general trees; depth-first search and breadth-first search of trees
  • Search Trees: Binary search trees, search trees as a data structure for implementing dictionaries, balanced trees
  • Hash tables: collision lists and open addressing
  • Priority queues: implementation with lists and heaps
  • Graphs: definitions, data structures, primitives for querying and updating graphs; graph visits in depth and in width; examples of application of graph visit algorithms
  • Laboratory: C++ laboratories related to course topics

RECOMMENDED READING/BIBLIOGRAPHY

All topics covered by the program are faced during frontal lessons. The teaching material provided by teachers via AulaWeb (including fragments of C++ code implementing algorithms and data structures addressed during the course) is essential for preparing the exam.


TEACHERS AND EXAM BOARD

  • VIVIANA MASCARDI
  • MAURIZIO LEOTTA
  • FRANCESCA ODONE

Exam Board

  • FRANCESCA ODONE (President)
  • MAURIZIO LEOTTA
  • VIVIANA MASCARDI (President Substitute)

LESSONS

LESSONS START

According to the calendar approved by the Degree Program Board.


Class schedule

The timetable for this course is available on the Portale EasyAcademy.


EXAMS

EXAM DESCRIPTION

  • Exam description: The exam consists of a written part and a laboratory part. The two parts are independent of each other.
  • Computation of the final mark: The final mark is obtained as the sum of the written mark + the lab mark + the mark of the individual (optional) project.

ASSESSMENT METHODS

The various parts of the exam have been carefully designed by teachers to verify whether the student is able to:


  • Compute the complexity of known algorithms
  • Design the interface of a data type
  • Implement the data type with different data structures
  • Understand the difference in the efficiency of the functions supported by the data type when different data structures are employed

Exam schedule

  • Data appello: 07/01/2026, 08/01/2026, 05/02/2026, 09/02/2026, 05/06/2026, 10/06/2026, 13/07/2026, 14/07/2026, 08/09/2026, 17/09/2026
  • Orario: 09:00, 14:00
  • Luogo: GENOVA
  • Degree type: Scritto, Laboratorio

OPENBADGE

  • SOFT SKILLS - Creazione progettuale base 1 - A
  • SOFT SKILLS - Imparare a imparare avanzato 1 - A
  • SOFT SKILLS - Alfabetica avanzato 1 - A
See More