ALGORITHMS AND DATA STRUCTURES
(obiettivi)
General objectives
The primary objective is to study algorithms and data structures that efficiently solve problems whose solution, using trivial approaches, would require very high resources. The algorithms studied will be implemented in Java language.
Specific objectives
Knowledge and ability to understand Basic data structures and their use in solving sorting, searching, and graph problems will be shown. It will be shown how the data structures described are made available in Java language. The student will be able to determine the computational complexity of algorithms, and associate them with the appropriate complexity class.
Ability to apply knowledge and understanding At the end of the course the students will be able to determine algorithms to efficiently solve complex problems, in particular problems on graphs, and choose the most suitable data structures to obtain an efficient implementation of the algorithm. They will also be able to use the Java classes that implement the data structures studied.
Autonomy of judgment Students will be able to distinguish the computational complexity of problems and algorithms, and to identify the computationally more costly steps in solving a problem.
Communication skills Students will be able to describe, in appropriate terms, the characteristics of the main data structures, and identify the primitives needed to efficiently implement an algorithm.
Learning ability Students who pass the exam will be able to take advanced courses, of an applicative nature, that require the use of sophisticated algorithms. They will also be able to appreciate software engineering and computational complexity theory teachings.
