The goal of the course is to provide the knowledge of the most common and useful data structures (stacks, queues, lists, trees, graphs) and of the main algorithms to handle them. The students will learn the tools to formally analyze the computational complexity of algorithms and problems. A further goal of the course is to assume familiarity with the main algorithmic approaches (divide and conquer, greedy, iterative, top-down, bottom-up). The Python programming language will be employed for exercise sessions and exams.
teacher profile teaching materials
Insight into sorting algorithms
Binary search
Elementary data structures and operations
Advanced data structures and operations
Development of data structures and algorithms in the Python language
Examples of applications with algorithms and data structures in Python language
(note: it is the same textbook as the first-year course "Fondamenti di Informatica e Programmazione")
Programme
Recalls on computational complexityInsight into sorting algorithms
Binary search
Elementary data structures and operations
Advanced data structures and operations
Development of data structures and algorithms in the Python language
Examples of applications with algorithms and data structures in Python language
Core Documentation
Kenneth A. Lambert. Programmazione in Python. Apogeo. 2° ed. 2018(note: it is the same textbook as the first-year course "Fondamenti di Informatica e Programmazione")
Type of delivery of the course
Classroom lessonsType of evaluation
A final examination will be held with the support of a computer. The test includes questions on theoretical and programming topics and programming exercises in Python. If the the test carried out by the candidate will include elements that do not allow the teacher to carry out an objective evaluation (e.g. unclear aspects, ambiguities or other) the teacher can ask for an in-depth oral interview.