Algorithms 1
Course objectives
General goals: This course introduces students to basic methods for algorithm design and analysis. They will study well-known algorithms that solve fundamental problems such as sorting or searching, together with the simplest tools to analyze them from an efficiency point of view. Specific goals The course aims to make the basic algorithms and fundamental data structures correctly used. In particular, the main algorithms for solving search and sorting problems will be addressed. The most important data structures will then be studied: unordered and ordered arrays, simple and double lists, dictionaries, trees. Finally, the tools for calculating the computational cost of algorithms will be provided. Knowledge and understanding: At the end of the course, students will know the basic methodologies for the design and analysis of iterative and recursive algorithms, elementary data structures, the main sorting algorithms and the most basic implementations of dictionaries. Applying knowledge and understanding: At the end of the course, students will be familiar with the main basic data structures, particularly those implementing dictionaries. They will be able to explain the algorithms and analyze their complexity, highlighting how performance depends on the data structure used. They will be able to design new data structures and related algorithms, reworking existing ones; will be able to explain the main sorting algorithms, illustrating the underlying project strategies and the related complexity analyses; they will be able to compare the asymptotic behavior of the execution times of the studied algorithms; they will be able to design recursive solutions to problems and asymptotically analyze the resulting algorithms. Critical and judgmental abilities: The student will have the basis for analyzing the quality of an algorithm and of the related data structures, both from the point of view of the effective resolution of the problem and from that of the computational efficiency with which the problem is solved. Communication skills: The student will acquire the ability to present his knowledge in a clear and organized way, which will be verified through the questions presented in the written tests and during the oral exam. The student will be able to express an algorithmic idea rigorously at a high level, in pseudocode. Learning ability: The knowledge acquired will allow the student to tackle the study of algorithmic techniques and more advanced data structures.
Program - Frequency - Exams
Course program
Prerequisites
Books
Teaching mode
Frequency
Exam mode
Lesson mode
Program - Frequency - Exams
Prerequisites
Books
Exam mode
Lesson mode
- Lesson code10620599
- Academic year2025/2026
- Coursecorso|33503
- CurriculumCurriculum unico
- Year1st year
- Semester2nd semester
- SSDINF/01
- CFU6
- Subject areaFormazione informatica