Skip to main content

FID3017 Stream Processing 7.5 credits

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.

Course offerings are missing for current or upcoming semesters.
Headings with content from the Course syllabus FID3017 (Autumn 2016–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

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).

Course disposition

No information inserted

Literature and preparations

Specific prerequisites

No information inserted

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).


No information inserted


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

P, F


    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

    No information inserted

    Opportunity to raise an approved grade via renewed examination

    No information inserted


    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.

    Further information

    Course web

    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

    Offered by

    Main field of study

    This course does not belong to any Main field of study.

    Education cycle

    Third cycle

    Add-on studies

    No information inserted

    Postgraduate course

    Postgraduate courses at EECS/Software and Computer Systems