Modules | Area | Type | Hours | Teacher(s) | |
ALGORITHM ENGINEERING | INF/01 | LEZIONI | 72 |
|
Lo studente che completerà il percorso didattico acquisirà una serie di abilità e conoscenze nella progettazione e nell'analisi (teorica e sperimentale) di algoritmi e strutture dati avanzate per la soluzione efficiente di problemi combinatori che coinvolgono tipi di dati elementari quali interi, stringhe, punti geometrici, alberi e grafi. Questi "strumenti" algoritmici saranno progettati e analizzati in vari modelli di computazione —quali RAM, memoria a 2-livelli, cache-oblivious, streaming— così da tenere in considerazione le caratteristiche architetturali dei moderni PC.
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.
Gli studenti verranno valutati sulle loro abilità e conoscenze relative ai contenuti del corso sia per quanto riguarda l'uso della terminologia, sia per quanto riguarda le loro capacità di problem solving basate sugli strumenti algoritmici appresi in classe. La verifica consisterà di un esame scritto/orale, con l'eventualità di prove intermedie.
Ulteriori informazioni sono disponibili nella home page del corso.
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:
Further information can be found in the home page of the course.
Gli studenti saranno in grado di progettare algoritmi e strutture dati per la memorizzazione, la ricerca e il processing di vari tipi di Big Data.
Students will be able to design algorithms and their corresponding data structures for the storage, searching and processing of Big Data of various types.
La verifica consisterà di un esame scritto/orale, con l'eventualità di prove intermedie. Ulteriori informazioni sono disponibili nella home page del corso.
Methods:
Further information can be found in the home page of the course
Gli studenti apprenderanno le tecniche fondamentali per il progetto di algoritmi e strutture dati per Big Data, e alcuni risultati allo stato dell'arte.
Students will be aware of latest algorithm design techniques to be deployed in their software design choices.
La verifica consisterà di un esame scritto/orale, con l'eventualità di prove intermedie. Ulteriori informazioni sono disponibili nella home page del corso.
Methods:
Further information can be found in the home page of the course
Corso base di algoritmi e strutture dati
Basic algorithms and data structures
Lezioni di didattica frontale. L'apprendimento si realizzerà seguendo le lezioni in classe e attraverso lo studio individuale.
Delivery: face to face
Learning activities:
Attendance: Advised
Teaching methods:
In questo corso studieremo, progetteremo e analizzeremo (dal punto di vista teorico e pratico) algoritmi e strutture dati avanzate per la soluzione efficiente di problemi combinatori che coinvolgono tipi di dato elementare quali interi, stringhe, punti geometrici, alberi e grafi. Questi "strumenti" algoritmici saranno progettati e analizzati in vari modelli di computazione —quali RAM, memoria a 2-livelli, cache-oblivious, streaming— così da tenere in considerazione le caratteristiche architetturali dei moderni PC.
Ogni lezione seguirà un approccio top-down che partirà dalla discussione di un problema reale che occorre nel progetto di software che gestiscono Big Data, lo astrarrà in modo formale utilizzando un linguaggio matematico, utile per un indagine algoritmica, e poi introdurrà soluzioni algoritmiche atte a minimizzare l'uso di alcune risorse computazionali quali tempo, spazio, comunicazione, I/O, energia, ecc..
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.
Le lezioni faranno uso della lavagna. Il docente ha predisposto delle note in Inglese a supporto dello studio individuale.
No slides for teaching, and use just the old-fashioned blackboard. The teacher has prepared notes in English on the course's content.
L'esame consiste di esercizi scritti che valuteranno le conoscenze acquisite e le capacità di problem solving degli studenti. La prova dura 2 ore. Alla fine della stessa il docente procederà all'immediata correzione dello scritto e la prova orale consisterà nell'eventuale discussione dei contenuti/svolgimento del compito.
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.
http://didawiki.di.unipi.it/doku.php/magistraleinformaticanetworking/ae/start