First cycle
degree courses
Second cycle
degree courses
Single cycle
degree courses
School of Science
Course unit
SCP7078720, A.A. 2017/18

Information concerning the students who enrolled in A.Y. 2017/18

Information on the course unit
Degree course Second cycle degree in
SC2377, Degree course structure A.Y. 2017/18, A.Y. 2017/18
bring this page
with you
Number of ECTS credits allocated 12.0
Type of assessment Mark
Course unit English denomination FUNDAMENTALS OF INFORMATION SYSTEMS
Website of the academic structure
Department of reference Department of Mathematics
Mandatory attendance No
Language of instruction English
Single Course unit The Course unit can be attended under the option Single Course unit attendance
Optional Course unit The Course unit can be chosen as Optional Course unit

Teacher in charge GABRIELE TOLOMEI
Other lecturers ARMIR BUJARI INF/01

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 First semester
Year 1st Year
Teaching method frontal

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

Start of activities 02/10/2017
End of activities 19/01/2018

Prerequisites: The student should have basic knowledge of programming and algorithms.
Target skills and knowledge: This class teaches the concepts, methods, and technologies at the basis of storage, networking, and processing of data and big data. 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 part concerning networking 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 datacenters. The programming part focuses on programming for data scientists using Python, starting from the description of its interactive computational environment, and continuing with storage, data manipulation, and visualization.
Examination methods: The student is expected to pass a written and an oral exam.
Assessment criteria: 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.
Course unit contents: The course will cover the topics listed below:
- Databases
Introduction to relational databases: data model; relational algebra; SQL; DBMS;
NoSQL technologies: characteristics of NoSQL databases; aggregate data models: key value stores, document databases, column family stores, graph databases, others; distribution models: sharding, replication (master-slave,peer-to-peer).
Streams of Data: architecture(s); data modeling; query processing and optimization.
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).
- Programming
Programming for Data Scientist using Python: computational environment (IPython and Jupyter); storage and manipulation (NumPy and Pandas); data visualization (Matplotlib).
Planned learning activities and teaching methods: The course consists of lectures.
Additional notes about suggested reading: Slides presented during the lectures are made ​​available to students as reference material.
Textbooks (and optional supplementary readings)