Skip to main content
CODE 80306
ACADEMIC YEAR 2026/2027
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
PREREQUISITES
Propedeuticità in ingresso
Per sostenere l'esame di questo insegnamento è necessario aver sostenuto i seguenti esami:

OVERVIEW

The first part illustrates how to analyze algorithms from the perspective of correctness and efficiency and presents some classic algorithms for computer science training, drawing on the basic concepts of complexity and elementary data structures from the Algorithms and Data Structures course.

The second part illustrates how to apply fundamental notions of probability theory to the analysis of randomized algorithms and how to evaluate the benefits of randomization in algorithm design.

AIMS AND CONTENT

LEARNING OUTCOMES

Learning classical algorithms and algorithmic patterns by analyzing their correctness and efficiency. Appreciating the potential of randomization in algorithm design through simple examples

AIMS AND LEARNING OUTCOMES

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

  • Know classical algorithms and algorithmic schemes.
  • Analyze correctness and efficiency of an algorithm.
  • Appreciate the potential of randomization in algorithm design through simple examples.

PREREQUISITES

Basic knowledge of algorithms and data structures.

TEACHING METHODS

Traditional.

SYLLABUS/CONTENT

Part One:

  • Complexity of Algorithms and Problems.
  • Induction Principle, Correctness, and Complexity of Recursive Algorithms.
  • Correctness of Iterative Algorithms with Loop Invariant.
  • Dynamic Programming Techniques and Greedy Techniques.
  • Graph Algorithms: Visits, Topological Sorting, Strongly Connected Components, Minimum Spanning Trees, Shortest Paths.
  • Introduction to NP-Completeness

Part Two:

  • Randomized Las Vegas and Monte Carlo Algorithms: Sorting Algorithms, Minimum Cut, Game Tree, Byzantine Fault Tolerance, Primality Tests, and Linear Programming.
  • Introduction to Game Theory and Occupancy Problems.

RECOMMENDED READING/BIBLIOGRAPHY

Lecture notes.

Introduction to algorithms and data structures (Third edition). Cormen, Leiserson, Rivest, Stein. McGraw Hill. 

TEACHERS AND EXAM BOARD

LESSONS

LESSONS START

According to the calendar approved by the Degree Program Board: https://corsi.unige.it/en/corsi/8759/studenti-orario

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Written and oral exam.

Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/8759/studenti-disabilita-dsa 

ASSESSMENT METHODS

The written exam checks the ability of the student to apply in practice learned notions.

The oral exam checks the understanding of concepts and the ability to appropriately illustrate learned notions.

 

FURTHER INFORMATION

For further information, please refer to the course’s AulaWeb module or contact the instructor.