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.
FID3017 Stream Processing 7.5 credits
Information per course offering
Course offerings are missing for current or upcoming semesters.
Course syllabus as PDF
Please note: all information from the Course syllabus is available on this page in an accessible format.
Course syllabus FID3017 (Autumn 2016–)Content and learning outcomes
Course contents
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
Specific prerequisites
Recommended prerequisites
Recommended prerequisites:
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).
Equipment
Literature
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.
Grading scale
Examination
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
Examiner
Ethical approach
- 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.