CS551 - Spring'26

Website for CS 551 - Spring'26

« back

CAS CS 551 - Course Syllabus Spring 2026

Instructor: Vasiliki Kalavri
Teaching Fellow: Lei Huang

Lectures: Thursdays 12:30-3:15pm, CDS 950
Discussions: Wednesdays 1:25pm - 2:15pm, CAS 116

Instructor Office Hours: TBA
TF Office Hours: Tuesday 3-4:30pm, Friday 1-2:30pm (CDS 722, 7th floor)

IMPORTANT: Refrain from using email to reach the course staff. Use Piazza for all class communication, including to privately contact the instructors or TFs.

1. Overview

1.1 Course topics

Modern data-driven applications increasingly require continuous, low-latency processing of large-scale, rapid data events such as clicks, search queries, online interactions, financial transactions, traffic records, and sensor measurements. Distributed stream processing has become highly relevant to industry and academia due to its capabilities to both improve established data processing tasks and to facilitate novel applications with real-time requirements. In this course, you will learn how to design, implement, and evaluate scalable and reliable stream processing and event-driven applications.

Specifically, we will cover the following topics:

1.2 Course objectives

At the end of the course, successful students will have gained skills and hands-on experience on the following methods and technology:

Further, students will be exposed to recent developments in stream processing research through paper assignments and presentations. The collaborative semester-long project will prepare them for the practical aspects of their future careers and expose them to project management tools and software engineering best practices.

1.3 Prerequisites

CAS CS 350/351 or equivalent and CAS CS 460 or consent of instructor

Students must also have good programming skills (Go/Java/Rust/C++) and solid background in computer systems and database systems fundamentals.

2. Instructional Format and Course Materials

2.1 Courseware

2.2 Lectures

Lectures will be held during the assigned time slots. The detailed schedule provides the topic and assigned readings for each lecture. You must complete the readings before the day of the lecture and actively participate in class discussions. Lecture slides will be made available on Piazza prior to the lectures or shortly after.

The best material to study from are the assigned readings (papers), the lecture and lab slides, and the notes you take in class. If you are looking for additional resources, you may find the following books helpful:

We will also assign additional readings and discuss the following stream processing systems used in industry:

2.3 Discussions

Discussions are a core component of the course and discussion attendance is mandatory. The Teaching Fellow will lead the discussion sessions and present material on programming tools and answer questions (or provide clarifications) regarding the assignments. The Teaching Fellow will post information to Piazza as necessary.

2.4 Programming Language and Software Tools

All programming assignments will be in Golang, and we recommend using VSCode for development.

No prior knowledge of Go is required to succeed in the course; the labs and programming assignmnets will gradually introduce you to the language. For code management, we will be using Git. You are expected to regularly push your code to your Github repository. We will provide instructions on how to set up your programming environment on Piazza. Make sure your code is well-documented and always use meaningful commit messages. We will be using your Git commit history to track your progress and give you feedback.

2.5 Office Hours

We will be holding office hours to further discuss lecture material (with instructors) and hands-on assignments (with instructors and the TF). Course staff will be giving you advice on good coding practices but they are not there to debug your code. Debugging is your responsibility.

3. Assignments, Project, and Grading Criteria

3.1 Programming Assignments

We will release three programming assignments during the semester:

Assignment Release Date Due Date Late Due Date Duration
PS0: Go Primer 1/21 1/29 2/5 9 days
PS1: Windows 1/28 2/11 2/18 15 days
PS2: State management 2/11 2/19 2/26 9 days

All assignments are due by 11:59pm on the day of the respective deadline. After each deadline, you will have 1 more week (7 days) to submit late with a 30% penalty. Submissions will not be accepted after this extended period.

3.2 Reading Assignments and Quizzes

During the semester, we will read and discuss various technical papers. For each paper, you will be asked to submit:

  1. a short quiz assessing your understanding of the paper’s core ideas
  2. a list of questions to be discussed during lecture time. These deliverables are individual.

Paper assignments are always due at 11:59pm on the day before the corresponding lecture. See the course schedule for the list of papers and the tentative dates for each paper.

3.1 In-class quizzes

We will have three in-class quizzes on February 12, March 19, and April 23. These dates are not flexible. Please plan your work and travel plans accordingly. No make-up quizzes will be offered. You can miss up to one quiz, in which case, the portion of your grade corresponding to the missed quiz will be computed as the average of your score on the other two quizzes with a 20% penalty.

In-class quizzes will be administered on Gradescope. More information about quiz conduct and grading will be provided on Piazza.

3.3 Semester Project

This class is highly collaborative and research-oriented. Early in the semester, you will be provided with a list of semester projects and you will be asked to select your top-3 preferences. You will then be assigned to a project team with 3-5 students. During the semester, the team will be working together to deliver the following assignments:

The deliverables are due on the following dates (by 11:59pm):

Project Deliverable Due Date
Project Selection 2/12
Design Document 2/26
Midterm project presentation 3/25
Final project presentation 4/29

3.4 Grading Scheme

Your final grade will be determined as follows:

  1. Participation & effort: 10%
    • In-class participation.
    • Discussion participation.
    • Piazza contributions.
    • Git activity (project + discussions).
    • Group meeting minutes.
    • Office Hours participation.
  2. Programming assignments: 20%
    • PS0: 5%
    • PS1: 7%
    • PS2: 8%
  3. In-class quizzes: 15%

  4. Reading assignments and paper quizzes: 5%

  5. Semester project (in teams of 3-5 students): 50%
    • Design document (maximum 3 pages) 5%.
    • Midterm demo 15%.
    • Final demo and deliverables: 30%.

4. Class and University Policies

4.1 Attendance

Students are expected to attend each class session unless they have a valid reason for being absent. Acceptable excused absences include observing religious holidays and illness. In such cases, students are advised to contact the instructor as soon as possible, so that reasonable accommodations can be provided. Please review the BU attendance policy and the BU Policy on Religious Observance for more information.

4.2 Academic Conduct

Academic standards and the code of academic conduct are taken very seriously at our university. Please take the time to review the CAS Academic Conduct Code and the GRS Academic Conduct Code. Please review the sections regarding plagiarism and cheating carefully. Copies of the CAS Academic Conduct Code are also available in room CAS 105. A student suspected to violate this code will be reported to the Academic Conduct Committee, and if found culpable, the student will receive a grade of “F” for the course


All assignments must be completed individually, unless instructed otherwise. Discussions with fellow students via Piazza or in-person are encouraged, but presenting the work of another person as your own is expressly forbidden. This includes “borrowing”, “stealing”, copying programs/solutions or parts of them from others. We will be using automated plagiarism checkers. If your submission has more than 50% similarity with another submission or a publicly available solution we have crawled from the web, you will automatically receive 0 points. Cheating will not be tolerated under any circumstances.

Any resources, including material from other students (current or past), that are used, beyond the text or that provided by the TF or professor must be clearly acknowledged and attributed. Using such material may result in a lower grade. However, if such material is used and not acknowledged and attributed, it will automatically be considered as possible academic misconduct.

4.3 On the use of GenAI tools

You can use AI tools, such as TerrierGPT, as coding assistants when developing solutions to the programming assignments and your projects. You can also use such tools for paper reading and as studying companions. However, beware that using AI-generated content in your assignments and projects could negatively affect your grade, as it may contain subtle errors, omissions, bugs, and misinterpretations. Ultimately, you are solely responsible for your deliverables.

5. Accommodations


If you are a student with a disability or believe you might have a disability that requires accommodations, please contact the Office for Disability Services (ODS) at (617) 353-3658 or access@bu.edu to coordinate any reasonable accommodation requests. ODS is located at 25 Buick Street on the 3rd floor.