21210213 - Algoritmi

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.
scheda docente | materiale didattico

Programma

Recalls on computational complexity
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

Testi Adottati

For Python language, the textbook and teaching materials used as part of the "Fondamenti di informatica e programmazione" course will be useful.
Handouts provided by the lecturer.

Modalità Erogazione

Classroom lessons

Modalità Frequenza

Class attendance is not mandatory

Modalità Valutazione

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.