Unit DATA INTENSIVE APPLICATION AND BIG DATA

Course
Computer engineering and robotics
Study-unit Code
A003171
Curriculum
In all curricula
Teacher
Fabrizio Montecchiani
Teachers
  • Fabrizio Montecchiani
Hours
  • 48 ore - Fabrizio Montecchiani
CFU
6
Course Regulation
Coorte 2022
Offered
2023/24
Learning activities
Caratterizzante
Area
Ingegneria informatica
Academic discipline
ING-INF/05
Type of study-unit
Opzionale (Optional)
Type of learning activities
Attività formativa monodisciplinare
Language of instruction
Italian.
Contents
-Introduction to Big Data
-Programming models and technologies for distributed computing
-Data models and NoSQL technologies
Reference texts
The course presents methods and technologies that are not covered by a single textbook. To support the student, the topics covered during the lectures are presented in the slides provided by the teacher.

In addition, some textbooks are suggested for further information on the various topics of the course.

T. White, «Hadoop: The Definitive Guide», 3rd Edition, Yahoo Press.
R. Shaposhnik, C. Martella, D. Logothetis, «Practical Graph Analytics with Apache Giraph», Apress.
M. J. Fowler, P. J. Sadalage,  «NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence», Addison-Wesley.
Educational objectives
The aim of the course is to provide both theoretical and practical notions on the design and development of data-intensive applications.
Prerequisites
Knowledge is required about the design and analysis of algorithms, imperative and object programming (Java language), and relational databases.
Teaching methods
The course is divided into two main types of lessons:

Lectures (about 60% of total time): lessons held in the classroom. In each lesson new concepts are taught with the support of projected slides.

Laboratory guided exercises (for about 40% of total time): lessons held in the software engineering lab. In each lesson the students design and implement new programs under the guidance of the teacher.
Other information
None.
Learning verification modality
The assessment methods of this course aim to estimate the theoretical knowledge of the student and his/her ability to apply this knowledge to solve both theoretical and practical problems. The different types of tests are described hereunder.

- Oral test with theoretical and practical exercises

Duration: 30 minutes

Score: 15/30

Aims: Assess the knowledge of the different theoretical notions provided by the course and the ability of developing simple programs.


- Project

Presentation and discussion of a project work (software plus documentation)

Score: 15/30

Aims: Assess the practical abilities of the student with respect to the topics covered in the course.
Extended program
The program may be updated before the beginning of the lessons.

1. Introduction
a. Introduction to Big Data
b. Scaling up vs scaling out
c. Key ideas for Big Data management
2. Part I: Programming models and technologies for distributed computing
a. The MapReduce model
b. The Hadoop platform
c. The Think-Like-A-Vertex model
d. The Giraph platform
e. Apache Spark
3. Part II: Data models and NoSQL technologies
a. Basic principles of NoSQL technologies
b. The CAP theorem and beyond
c. Key-value stores
d. Column-family stores
e. Document databases
f. Graph databases
Condividi su