====== Algorithm Engineering ====== {{:magistraleinformaticanetworking:ae:ae.png?150x150 |Thanks to P. Sanders}} **Teachers**: [[http://www.di.unipi.it/~ferragin/|Paolo Ferragina]] **CFU:** 9. **Language:** English. **Degree:** This course was originally offered to the students of the Master degree in Computer Science and Networking, University of Pisa and Scuola Normale Superiore "S. Anna". Since AA 2017-18, this course can be attended also by students of the Master degree in Computer Science of the University of Pisa within various curricula. \\ ====== Goals ====== 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. Some of these solutions will be discussed at an experimental level, in order to introduce proper engineering and tuning tools for algorithmic development. ====== Background====== If you wish to refresh your mind on Algorithms and Data Structures, I suggest you to follow the [[http://videolectures.net/mit6046jf05_introduction_algorithms/|Video Lectures]] by Erik Demaine and Charles Leiserson, specifically Lectures 1-5, 7 and 10. There it is missing the part on basic graph problems (representation, DFS, BFS, topological sort) which you may browse in any book, such as [[http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=11866|Introduction to Algorithms]] by Cormen-Leiserson-Rivest-Stein, third edition. ====== Current year ====== * [[.ae2023:|Academic Year 2023-2024]] ====== Previous years ====== * [[.ae2022:|Academic Year 2022-2023]] * [[.ae2021:|Academic Year 2021-2022]] * [[.ae2020:|Academic Year 2020-2021]] * [[.ae2019:|Academic Year 2019-2020]] * [[.ae2018:|Academic Year 2018-2019]] * [[.ae2017:|Academic Year 2017-2018]] * [[.ae2016:|Academic Year 2016-2017]] * [[.ae2015:|Academic Year 2015-2016]] * [[.ae2014:|Academic Year 2014-2015]] * [[.ae2013:|Academic Year 2013-2014]] * [[.ae2012:|Academic Year 2012-2013]] * [[.ae2011:|Academic Year 2011-2012]] * [[.ae2010:|Academic Year 2010-2011]] * [[.ae2009:|Academic Year 2009-2010]]