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
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
Handouts provided by the lecturer.
Programma
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
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 lessonsModalità Frequenza
Class attendance is not mandatoryModalità 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.