Docente
|
FRANCIOSA PAOLO GIULIO
(programma)
The course covers algorithmic programming techniques. The primary goal is to study algorithms and data structures that efficiently solve problems that would require very high computational resources (time or space) using trivial approaches. We will address problems frequently arising in practical applications and real-world situations, such as sorting, searching, and graph traversal, as well as general design techniques including divide and conquer, greedy algorithms, and dynamic programming. The course will cover the entire algorithm engineering cycle, addressing the design, theoretical analysis, implementation, and experimental evaluation of algorithms and data structures. The students will practice solving computational problems, designing new algorithms, and implementing efficient solutions in Python.
Hands-on Data Structures and Algorithms with Python, Second edition Basant Agarwal and Benjamin Baka, Packt
A more comprehensive and deep text is: Introduction to Algorithms by T. Cormen, C. Leiserson, R. Rivest, and C. Stein, McGraw-Hill.
|