# Algorithms (2016/2017)

Course code
4S02709
Name of lecturer
Roberto Segala
Coordinator
Roberto Segala
Number of ECTS credits allocated
12
INF/01 - INFORMATICS
Language of instruction
Italian
Location
VERONA
Period
II sem., I sem.

#### Lesson timetable

II sem.
Day Time Type Place Note
Wednesday 8:30 AM - 11:30 AM lesson Lecture Hall A
I sem.
Day Time Type Place Note
Monday 8:30 AM - 11:30 AM lesson Lecture Hall A
Wednesday 11:30 AM - 2:30 PM lesson Lecture Hall A

#### Learning outcomes

Provide the foundamental tools to design algorithmic solutions for concrete programs. The algorithms are evaluated and compared based required amount of resources. At the end of the course students know the main algorithms for sorting, selection, priority queues, graph visit, shortest paths, minimum spanning tree, max flow. They can also solve algorithmic problems of medium complexity and can compare algorithms based on their computational complexity.

#### Syllabus

Complexity: complexity of algorithms, asymptotic notation, resolution of recurrence equations.
Sorting and selection: insertion sort, merge sort, heap sort, quick sort, randomized quick sort. Linear algorithms, counting sort, radix sort, bucket sort. Selection algorithms.
Data structures: heap, binary search trees, RB-trees, B-trees, binomial heaps, hash tables, priority queues, disjoint sets, extension of data structures, graphs.
Design and analisis of alsorithms: divide et impera, greedy, dynamic programming, local serch, backtracking, branch and bound.
Foundamental algorithms: minimum spanning tree (Prim and Kruskal), linear programing (simplex and basic elements of the elipsoid method) shortest path with single source (Dijkstra and Bellman-Ford) and multiple source (Floyd-Warshall and Johnson), maximum flow (Ford-Fulkerson, Karp), maximnal matching on bipartite graph.

 Author Title Publisher Year ISBN Note T. Cormen, C. Leiserson, R. Rivest, C. Stein Introduzione agli Algoritmi e Strutture Dati (Edizione 2) McGraw-Hill 2005 88-386-6251-7

#### Assessment methods and criteria

The exam consists of a writtene test of three hours, divided into two parts, and possibly of an oral colloquium.

The forst part of the written test consists of several questions with multiple choices. It produces a valuation from 0 to 30. The exam is not passed if the evaluation is below 18. The exam ends if the evaluation is between 18 and 23. The second part of the written test, available only if the evaluation of the first part is at least 24, consists of one or more exercises of increasing complexity. The evaluation is between 24 and 30.

The optional oral examination is available only if the evaluation of the second part of the written test is at least 27.

The evaluation scale is the following. 18-28 (pure notionistic knowledge), 22-24 (acceptable understanding of the arguments), 25-27 (ability to apply the concepts learned in the course), 28-30 (ability to elaborate autonomous ideas based on the concepts learned in the course).