Scheda programma d'esame
ALGORITHM ENGINEERING
PAOLO FERRAGINA
Anno accademico2017/18
CdSINFORMATICA E NETWORKING
Codice531AA
CFU9
PeriodoPrimo semestre
LinguaInglese

ModuliSettore/iTipoOreDocente/i
ALGORITHM ENGINEERINGINF/01LEZIONI72
PAOLO FERRAGINA unimap
LINDA PAGLI unimap
Learning outcomes
Knowledge

The student who successfully completes the course will have the ability to design and analyze (theoretically and experimentally) advanced algorithms and data structures for the efficient solution of combinatorial problems involving all basic data types, such as integers, strings, (geometric) points, trees and graphs. These algorithmic tools will be designed and analyzed in several models of computation— such as RAM, 2-level memory, cache-oblivious, streaming— in order to take into account the architectural features and the memory hierarchy of modern PCs.

Assessment criteria of knowledge

The student will be assessed on his/her demonstrated ability to discuss the main course contents using the appropriate terminology, to show his/her problem solving capabilities given the tools teached in class.

Methods:

  • Final oral exam
  • Final written exam

Further information can be found in the home page of the course

Skills

Students will be able to design algorithms and their corresponding data structures for the storage, searching and processing of Big Data of various types.

Assessment criteria of skills

Methods:

  • Final oral exam
  • Final written exam

Further information can be found in the home page of the course

Behaviors

Students will be aware of latest algorithm design techniques to be deployed in their software design choices.

Assessment criteria of behaviors

Methods:

  • Final oral exam
  • Final written exam

Further information can be found in the home page of the course

Prerequisites

Basic algorithms and data structures

Co-requisites

Basic programming skills

Prerequisites for further study

Basic discrete mathematics and probability knowledge

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study

Attendance: Advised

Teaching methods:

  • Lectures
Syllabus

In this course we will study, design and analyze (theoretically and experimentally) advanced algorithms and data structures for the efficient solution of combinatorial problems involving all basic data types, such as integers, strings, (geometric) points, trees and graphs. These algorithmic tools will be designed and analyzed in several models of computation— such as RAM, 2-level memory, cache-oblivious, streaming— in order to take into account the architectural features and the memory hierarchy of modern PCs. Every lecture will follow a problem-driven approach that starts from a real software-design problem, abstracts it in a combinatorial way (suitable for an algorithmic investigation), and then introduces algorithmic solutions aimed at minimizing the use of some computational resources like time, space, communication, I/O, energy, etc.

Bibliography

No slides for teaching, and use just the old-fashioned blackboard. Since the course covers many different algorithmic themes and will deal with advanced results and issues which are not yet part of books I'll distribute my notes and sometimes copies of papers/books.

Assessment methods

The exam consists of a writtenset of exercises to be solved in two hours. At the end they will be corrected (on the fly) and the student will be interviewed on the solutions and errors possibly done.

Ultimo aggiornamento 06/07/2017 10:04