OBSOLETE PAGE
view the updated version














Course unit
ALGORITHMIC METHODS AND MACHINE LEARNING
SCP7079257, A.A. 2017/18

Information on the course unit
Degree course Second cycle degree in
DATA SCIENCE
SC2377, Regulation 2017/18, A.Y. 2017/18
1160878
Number of ECTS credits allocated 12.0
Course unit English denomination ALGORITHMIC METHODS AND MACHINE LEARNING
Website of the academic structure http://datascience.scienze.unipd.it/2017/laurea_magistrale
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction English
Campus PADOVA

Lecturers
Teacher in charge ALESSANDRO SPERDUTI INF/01
Other lecturers GIANMARIA SILVELLO ING-INF/05

ECTS: details
Type Scientific-Disciplinary Sector Credits allocated
Core courses INF/01 Computer Science 6.0
Core courses ING-INF/05 Data Processing Systems 6.0

Mode of delivery (when and how)
Period Second semester
Year 1st Year
Teaching methods frontal

Organisation of didactics
Type of hours Credits Hours of
teaching
Hours Individual
study
Shifts
Lecture 12.0 96 204.0 No turn

Calendar
Start of activities 26/02/2018
End of activities 01/06/2018

Examination board
Board From To Members of the board
1 Algorithmic Methods and Machine Learning - 2017/2018 01/10/2017 30/09/2018 SPERDUTI ALESSANDRO (Presidente)
SILVELLO GIANMARIA (Membro Effettivo)
AIOLLI FABIO (Supplente)
BALDAN PAOLO (Supplente)
BRESOLIN DAVIDE (Supplente)

Syllabus
Prerequisites: The student should have basic knowledge of programming.
Target skills and knowledge: This class teaches the basics in algorithmic methods and machine learning.
The part of the course covering algorithmic methods will first concentrate on the main data structures and their efficient implementation. Attention will then shift to the fundamental algorithmic paradigms for problem solving and their applicability through the discussion of relevant case studies. The other part will focus on machine learning techniques typically used in a data science scenario. First of all, general concepts concerning machine learning will be introduced. Then, the theory underpinning each presented technique will be explained and subsequently followed by practical demonstrations using Python and Scikit-Learn.
Examination methods: Written exam and (individual) project. The project is due by the end of the course.
Assessment criteria: The project work, and the written exam, will be evaluated on the basis of the following criteria: i) student’s knowledge of the concepts, methods, and technologies; ii) ability of the student to master the implementation technology; iii) student’s capacity for synthesis, clarity, and abstraction, as demonstrated by the written exam and project presentation. The final grade is obtained as the weighted sum of the grades of the written exam (80%) and the project (20%).
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 Scikit-Learn): Support Vector Machines; Decision Trees and Random Forest; Neural Networks and Deep Learning; Manifold Learning; Kernel Density Estimation.
Planned learning activities and teaching methods: The course consists of lectures.
Additional notes about suggested reading: Log of the lessons, didactic material (slides) and the detailed exam modalities will be available in the Website accessible from the MOODLE platform.
Textbooks (and optional supplementary readings)