The course provides the foundational concepts, methods, languages, and systems for ingesting, processing, and analyzing data that flows to enable real-time decisions. The course aims to the tame velocity dimensions of Big Data without forgetting the volume and variety dimensions.
Topics covered and tentative scheduling
- 14/09/2021 – Administrative items and course introduction
Streaming Data Engineering
- 15/09/2022 – From the foundations of streaming algorithms to real-world languages and systems
- 22/09/2022 – Languages for Data Stream Management Systems (DSMS) illustrated via EPL
- 28/09/2022 – DSMS Practice – Fire Alarm case study in EPL
- 29/09/2022 – Languages for Complex Event Processing (CEP) illustrated with the every clause and the pattern guards in EPL
- 5/10/2022 – CEP Practice – Robotic Arm case study in EPL
- 12/10/2022 – Scaling stream processing with Apache Kafka and Apache Spark
- 13/10/2022 – Spark Structured Streaming
- 20/10/2022 – Practice with Spark Structured Streaming
- 26/10/2022 – ksqlDB: cutting all from the same molt
- 27/10/2022 – Practice with ksqlDB
- 02/11/2022 – Wrap up and preview of the questions and the exercises about Streaming Data Engineering
Streaming Data Science
This second part of the course covers Time-series Analytics (TSA), Streaming Machine Learning (SML), and Recurrent Neural Networks (RNN)
- 09/11/2022 – SML Theory/Practice – Foundations: learning one sample at a time, and prequential evaluation
- 10/11/2022 – SML Theory/Practice – Concept drift and Methods for streaming classification illustrated via River part 1/2
- 16/11/2022 – SML Theory/Practice – Methods for streaming classification part 2/2 and Ensemble methods for streaming machine learning via River part 1/2
- 17/11/2022 – SML Theory/Practice – Ensemble methods for streaming machine learning via River part 2/2 and Wrap up
- 23/11/2022 – TSA Theory/Practice – Introduction to Time-series Analytics and the key concept of Stationarity
- 24/11/2022 – TSA Theory/Practice – Decomposing and detrending time-series with and without seasonality
- 30/11/2022 – TSA Theory/Practice -Time-series forecasting
- 1/12/2022 – TSA Theory/Practice – Temporal Dependence, ARMA/ARIMA/SARIMA models & order estimation
- 14/12/2022 – Continual AI & Recurrent Neural Networks
- 15/12/2022 – Preview of the questions and the exercises about Streaming Data Science
- 21/12/2022 – Combining TinyML and SML/TSA for adaptive machine learning at the Edge
- 22/12/2022 – Stream Reasoning: Artificial Intelligence + Stream Processing (BONUS LECTURE)
NOTE: for the material refer to the github and the recordings refer to the Webeep page of the course
Please complete this form if you want a thesis on the course topic.
Students are expected to know the basics about: database management, SQL and Machine Learning.
For a refresh of SQL, I recommend https://www.w3schools.com/sql/. It is simple and comprehensive.
For a gentle introduction to Machine Learning, I recommend watching the following two videos by Luis Serrano:
- A Friendly Introduction to Machine Learning – https://youtu.be/IpGxLWOIZy4
- Machine Learning: Testing and Error Metrics – https://youtu.be/aDW44NPhNw0
I also recommend you to read/enjoy the visual introduction to Decision Trees by R2D3.
Expected learning outcomes
|Knowledge and understanding||Students will learn how to identify problems that can be addressed with big data techniques tailored for velocity and apply the stream data analysis technologies for solving real-world problems|
|Applying knowledge and understanding||Given specific project cases, students will be able to define and implement a streaming data analysis solution for the problem, and apply it on real data streams from social media and IoT sensors|
|Making judgements||Given specific project cases, students will be able to learn how to decide which streaming data analysis solution to apply and how to evaluate this decision|
|Communication||Students will learn to write a report on a project describing and motivating the decisions taken and the results obtained, and oresent their work in front of their colleagues and teachers|
|Lifelong learning skills||Students will learn how to develop a realistic streaming data analysis project in all its phases|
The exam consists of a theoretical (written exam, with a possible oral discussion if necessary by the instructor) and an optional practical part (project work with oral presentation). Further contributions to the mark may come from optional continuous evaluations along the course using in-presence quizzes during the lessons and other interactive modalities in class (max two marks).
The written exam comprises a mix of theoretical questions regarding any course subjects and exercises regarding the technical content and how to apply it in practice. Students can get up to 30 in the written test. The whole exam is a closed-book evaluation. A minimum score on each part is requested.
The optional practical project requires using one or more of the technologies presented in the lectures. It solves a realistic streaming data analysis problem based on real or realistic datasets publicly available or provided by the teachers. Only students who get at least 27/30 in the written exam can opt for it. The maximum increment for the optional project is three marks.
The final grade is computed as follows: written text result + optional continuous evaluation result + optional practical project result. E.g., written text 27 + optional continuous evaluation 1 + optional practical project 3 = 30L
- Kreps, Jay, I Love logs: Event data, stream processing, and data integration., O’Reilly Media, Inc., 2014
- Event Processing Language (EPL)
- ksqlDB Documentation
- Spark Structured Streaming
- Flux language
- Geoff Holmes, Ricard Gavaldà, Albert Bifet, Bernhard Pfahringer, Machine Learning for Data Streams: With Practical Examples in MOA, MIT Press, 2018