Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Scienze
SCP7078720, A.A. 2019/20

Informazioni valide per gli studenti immatricolati nell'A.A. 2019/20

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
SC2377, ordinamento 2017/18, A.A. 2019/20
porta questa
pagina con te
Crediti formativi 12.0
Tipo di valutazione Voto
Sito della struttura didattica
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione INGLESE
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Altri docenti ARMIR BUJARI INF/01

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Tecnologie dell'informatica INF/01 6.0
CARATTERIZZANTE Tecnologie dell'informatica ING-INF/05 6.0

Organizzazione dell'insegnamento
Periodo di erogazione Primo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
Ore Studio
LEZIONE 12.0 96 204.0

Inizio attività didattiche 30/09/2019
Fine attività didattiche 18/01/2020
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2017

Prerequisiti: The student should have basic knowledge of computer programming and problem solving skills.
Conoscenze e abilita' da acquisire: The aim of this class is to teach the concepts, methods, and technologies which any modern data scientist should master.
In particular, the focus of this class is on the processing/storaging of data and big data, which also involves elements of computer networking.
The ability of processing data effectively and efficiently will be gained using Python, which is possibly the reference programming language for data scientists. Ultimately, students will acquire coding skills to collect, clean, visualize, and analyse data, and more generally to tackle with any data science/machine learning task.
Concerning storage, the basics of relational databases are introduced, followed by a review of non-relational solutions typically adopted for big data. Basics of systems for storage of streams of data are presented as well. The networking submodule provides an introduction to fundamental concepts in the design and implementation of computer communication networks, their protocols, and applications. Topics covered in this part include: layered network architecture, data link protocols, network and transport protocols and applications. Examples will be drawn from the Internet TCP/IP protocol suite. After that, advanced and emerging networking paradigms aimed at addressing QoS and engineering flexibility of current infrastructure networks are introduced. Topics covered range from software defined networking to cloud provisioning schemes and data centers.
Modalita' di esame: The student is expected to pass a written and an oral exam.
Criteri di valutazione: The written and the oral exams will be evaluated on the basis of the following criteria: i) student’s knowledge of the concepts, methods, and technologies at the basis of the topics covered in the course; ii) student’s capacity for synthesis, clarity, and abstraction.
Contenuti: The course is structured into 3 submodules:
- Python Programming (for Data Science)
This submodule provides students with the foundational coding skills they need as data scientists. First, the basics of the Python programming language are covered (i.e., built-in data types, functions, I/O, etc.) along with the environment which is used throughout the class (i.e., Jupyter Notebook). Afterwards, students will dig into a set of the most up-to-date data science Python packages; those are: numpy/scipy (for numerical/scientific computing), pandas (for data manipulation), matplotlib/seaborn (for data visualization), and finally scikit-learn (for learning from data). Eventually, at the end of this submodule students will be able to implement all the stages of a typical machine learning pipeline: from collecting data to building predictive models for solving either a classification or a regression problem.
- Databases
This submodule is dedicated to data storage, and it covers the following topics:
Architecture of Database management systems (DBMS). Relational modeling.
Logical and Physical Design of a Relational Database.
SQL Language: Data Definition and Data Manipulation Language, Database Query
The PostgreSQL database: Creation and Definition of a Database, SQL Queries.
- Networking
This submodule allows students to get familiar with computer networking. In particular, it focuses on the following topics:
Networking Fundamentals: Network architectures (OSI Model); TCP and UDP Transport layer protocols; IP Addressing and Routing; Link Layer Forwarding; DNS and DHCP.
Advanced Networking: Virtual LAN (VLAN) and Virtual eXtensible Lan (VXLAN), Software Defined Networking: control, data plane and virtualization; concepts on Cloud Computing: service and deployment models: data centers architectures, topologies, addressing, routing, traffic characteristics; Case Study: The Web of Things (IoT standards and protocols).
Attivita' di apprendimento previste e metodologie di insegnamento: The course consists of lectures.
Eventuali indicazioni sui materiali di studio: Slides presented during the lectures are made ​​available to students as reference material.

The Python submodule will follow the book "Whirlwind tour of Python" and "Python Data Science Handbook. Both are freely available at

The database submodule will follow the book "Database Systems - Concepts, Languages and Architectures"
by Paolo Atzeni et al., which is freely available at
Testi di riferimento:

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Laboratory
  • Interactive lecturing

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Istruzione di qualita'