The course studies fundamentals of data-stream processing methods, algorithms, and systems for processing infinite/never-ending data (data streams). We will use computation systems for data stream processing, such as Storm, InfoSphere, Apache Spark och Flink. The course also considers current research topics in stream processing and its connection to other relevant research areas.
Content and learning outcomes
The course contents includes:
• Introduction to Stream Processing
• Application Development
• Large-scale development
• Visualization and Debugging
• Architecture of a stream processing system
• Architecture of InfoSphere Streams, Storm, Apache Spark and Apache Flink
• Design principles and patterns for stream processing applications
• Stream analytics
• Application use-cases
• Overview of the current research in data stream processing and its connection to other relevant research areas.
Intended learning outcomes
The course studies fundamentals of data stream processing. The emphasis of the course is on the theoretical foundations and research issues surrounding the algorithmic, analytical, software engineering, and distributed processing architectural foundations of stream processing. It also provides a solid programming foundation and an understanding of the practical aspects of building stream processing applications. We will use computation systems for stream processing, such as Storm and InfoSphere, Spark and Flink.
After this course, students will be able to program and build stream processing systems, services and applications. They are also expected to know how to solve problems in real-world applications that process infinite/never-ending data (data streams). In addition, students will be able to describe and apply current research trends in data-stream processing (including methods, algorithms, language support and tools).
Literature and preparations
Acquaintance with concepts and terminology associated with statistics, database systems, and machine learning; a course on data structures, algorithms, and discrete mathematics (such as IX1500 Discrete Mathematics); a course in software systems, software engineering, and programming languages; a course on processing, storing and analyzing massive data (such as ID2221 Data-Intensive Computing).
The contents of the course are derived from the following textbook:
H.C.M. Andrade, B. Gedik, D.S. Tugara, Fundamentals of Stream Processing: Application Design, Systems, and Analytics, Cambridge University Press, 2014
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
Other requirements for final grade
Examination is based on compulsory attendance, a number of approved assignments, oral presentations and a passed report describing a possible use of stream processing tools, algorithms and methods in student's research; relationship between student's research and stream processing methods; discussion of current research issues and possible solutions in stream processing. To pass the course, a student should also be able to critically evaluate and assess different approaches, as well as be able to compare and explain advantages and disadvantages of various methods, algorithms and systems for stream processing.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.Course web FID3017