Students will study, design and analyze algorithms and data structures for the efficient solution of many different problems, highlighting the applicative contests in which the considered algorithms and data structures can be successfully employed. This course deepens and extends the algorithmic notions given in Algoritmi e Strutture dati 1.
Knowledge and understanding:
The main objective of this course is to give a deeper insight to the most important and useful algorithms and data structures.
Applying knowledge and understanding:
Students will be able to design and analyze algorithms fo medium-difficult problems.
Ability to judge the quality of a software solution by means of efficency and possibly reuse. Students will be able to appreciate the consequence of their algorithmic results.
Ability to motivate and explain efficient programming concepts, relevant alternatives and decision recommendations, even to nonprofessional audience. Students will be able to highlight the technological consequences of their theoretical studies.
Learning skills: Students can keep up-to-date with the latest developments in algorithmics by consulting scientific journals and advanced books. The knowledge acquired in the course will allow the students to attend both master and specialistic classes.