
ALGORITHMIC METHODS AND MACHINE LEARNING
Second cycle degree in DATA SCIENCE
Campus:
PADOVA
Language:
English
Teaching period:
Second Semester
Lecturer:
ALESSANDRO SPERDUTI
Number of ECTS credits allocated:
12
Prerequisites:

The student should have basic knowledge of programming. 
Examination methods:

Written exam and (individual) project. The project is due by the end of the course. 
Course unit contents:

The course will cover the topics listed below:
 Algorithmic Methods:
Preliminaries: definition of problem, instance, solution, algorithm. Models of computation. Analysis of algorithms: correctness and running time,. Asymptotic analysis.
Basic data structures: lists, stacks, queues. Trees and their properties. Dictionaries and their implementation. Priority queues.
Graphs: representation of graphs. Basic properties. Graph searches and applications.
Divide and Conquer paradigm: the use of recursion. Recurrence relations. Case study: sorting.
Dynamic programming: coping with repeating subproblems. Memoization of recursive code. Case study: optimization algorithms on sequences.
Greedy paradigm: solving by successive choices. Applicability of the paradigm. Case study: data compression.
 Machine Learning
Introduction to Machine Learning: why machine learning is useful; when to use it.; where to use it; Machine Learning paradigms; basic ingredients of Machine Learning; complexity of the hypothesis space; complexity measures; examples of supervised learning algorithms.
Application Issues: classification pipeline, representation and selection of categorical variables; model selection, evaluation measures.
in Depth (theory and practice using Python and ScikitLearn): Support Vector Machines; Decision Trees and Random Forest; Neural Networks and Deep Learning; Manifold Learning; Kernel Density Estimation. 

