Spring 2025
CS343

This course is about the fundamental concepts and algorithms underlying existing distributed systems.

We'll cover many topics, including:

  • Fault Tolerance
  • Distributed Algorithms
  • Distributed file systems
  • Peer-to-peer systems
  • Mobile and Ubiquotous systems

Instructor:


Christine Bassem

Office:SCI W420

Office hours:
Monday 3-4:30 pm in H103
Wednesday 11:30am-12:20pm in H401
Or by appointment


CS 343 Schedule


Please note that this page will be updated frequently, and it will contain all course content and resources

You can find office hours and drop-in schedule on the course calendar.

Monday Tuesday Wednesday Thursday Friday
Jan
20
21
22
Introduction
(slides)
Reading: Course Syllabus
23
Synchronization
(slides)
24
27
How to read research papers?
Presented by Laura M. O'Brien
28
29
Go demo of multi-threading
30
Go demo of RPCs
(slides - code)
31
Assignment 1 - Multithreaded WordCount
due at 11:59pm
(description - starter code)
Project Phase 0 - Team Forming
(Fill out this form - by Monday 11:59pm)
Feb
3
4
5
Get started with A2
6
MapReduce (2)
(paper summary)
7
Complete paper review on Gradescope before Sunday at 11:59pm
10
Distributed File Systems (DFS) -
Complete pre-lecture form
(slides - highlight)
11
12
Debugging session
13
DFS (2)
(GFS summary)
14
Assignment 2 - RPC WordCount
due at 11:59pm
Complete paper review on Gradescope before Sunday at 11:59pm
17
No classes
18
19
Get started with A3
20
Leader Election (2)
(Paper summary)
21
Complete paper review on Gradescope before Sunday at 11:59pm
24
25
26
Review session
27
Quiz 1 in-class
Covers material till end of leader election
28
Mar
3
4
5
Debugging session
6
Consensus (2)
(Highlight: log replication)
7
Assignment 3 - Leader Election
due Friday 11:59pm
Code for Ring leader election
Complete Fault Tolerance paper review on Gradescope before Sunday at 11:59pm
10
More on consensus and Raft
(Summaries: part 1 - part2)
11
12
Get started on A4
13
14
Complete Raft paper review on Gradescope before Sunday at 11:59pm
17
Spring break
18
Spring break
19
Spring break
20
Spring break
21
Spring break
24
Chord (2)
(summary)
25
26
No class
27
Work on A4
28
Assignment 4 - Fault tolerance in leader election
due 11:59pm
( starter code)
Complete Chord paper review on Gradescope before Sunday at 11:59pm
31
Apr
1
2
Get started on A5
3
Ad-hoc routing (2)
4
Complete ad-hoc papers review on Gradescope before Sunday at 11:59pm
7
Talk about project and Cloud Computing
8
9
Debugging Session
10
11
Assignment 5 - Log replication
due Sunday at 11:59pm
14
15
16
No class - Ruhlman
17
Quiz 2 in-class
Covers material till end of ad-hoc networks
18
21
No class - Marathon Monday
22
23
Project check-in
24
Project group work
26
28
Crowdsensing -
Complete pre-lecture form
29
30
No class
May
1
Presentations
2
Reading period starts

Administrative details of CS 343



Course Overview

Prerequisites

The prerequisite for CS 343 is CS 230:Data structures, with CS 231 and CS 242 highly recommended. Registration is by permission of instructor only.

Course Communication

Make sure that you are added to the Course's Piazza group. This group has several purposes, one of which is class announcements.
I encourage you to use it for class discussions, and questions. Be respectful to your classmates and course staff when using this platform.
If you know the answer to a classmate's question, feel free to post a reply yourself. Please do not post any code in your messages on the group.

Course Support

Support is offered in the form of office hours (offered by Christine) and tutoring hours (offered by tutors). Support hours are posted on the top of this page and on the course calendar. Of course, if you ever need to meet with Christine at times out of these hours, feel free to contact her via email.

Course Expectations

Required Readings

There will be required readings associated with most topics during the semester. The readings will usually be in the form of scientific articles, and/or tutorials. On days when the reading is critical to the group discussions in class, you will be instructed to complete a short pre-lecture form a few hours before class starts.

In-class paper overview

Almost every paper will be discussed over the period of a week. To streamline the paper reading process, each student group will be in charge of providing a brief overview of a paper before we discuss it for the first time, as well as a 2-page summary after the paper is discussed in class. The schedule of the paper review will be shared with students after the first week of classes.

After-class paper review

After we are done discussing each paper, you should complete the corresponding paper review on Gradescope. These reviews will help you better understand the papers, to help you confirm your understanding.

Assignments

Assignments will be composed of mainly programming problems. Most assignments will have check-in points half-way through to get you started. Please not that assignments in this course are programming-intensive, and you need to give them adequate time and attention. All assignment submissions will be done via Gradescope.

Quizzes

In lui of exams, there will be 2 small in-class quizzes on the concepts discussed in class from the papers we read.

Final Project

Towards the end of the semester, group teams formed at the start of the semester will work on the project. The objective of the project is to build an efficient distributed file system (DFS) to serve as the backend for a front-end client.
Each team will give a short presentation of their "almost" final project during the last week of classes, and will submit the final project with its documentation by 4pm of the last day of exams.

Late Policy

This policy applies only to Assignments. Assignment are usually due on Friday, but we will adopt a 48-hour late policy, in which you have an extra 48-hour extension on each assignment if you need it. You don't need to let me know beforehand if you plan on using this extension. However, I highly recommend that you don't make it a habit. It's always best to complete the work by the deadline, to give yourself more time to relax before the next deliverable and better plan your time.

Time Commitment

Between preparing for class, attending class, and working on assignments and quizzes, you are expected to spend about 12 hours per week on this course. This number is a ballpark average. The actual numbers will depend on the particular student and the particular week. Designing, analyzing, and implementing certain algorithms can be quite challenging, and many students can expect that during some weeks they might spend more than 12 hours on this course.
Are there ways to reduce the time you spend on the course? Yes!
Working with your group can be a good strategy to reduce assignment times. Talking about a problem with someone else can make it easier to understand and solve, and also make it easier to avoid spending lots of time on unproductive solution attempts. But remember: it is not acceptable to divide a problem set into parts, have each team member independently work on the parts, and then submit the parts as a time.
Pro-Tip: In this type of course, it is worth spending the time in the design phase rather than jump into coding. Debugging multi-threaded system applications is challenging and time consuming.

Other Expectations

You are expected to attend every lecture, including the Wednesday ones, because they will have explanations of the material and interactive problem solving exercises that are important for learning the material. However, exceptions can be made for extenuating circumstances. If you cannot attend a particular lecture, please email me as soon as you can.
You are expected to seek help from me and/or the tutors when you have trouble with the course material. Our job is to help you succeed! Sometimes students are embarrassed to seek help, especially when they are very far behind. We are not judgmental and are happy to help you with absolutely any material related to the course, no matter how long ago that material may have been covered.

Grading Policy

Consistent active participation in the course is a key factor to success in this course. Active participation can be in the form of: Your final grade for the course will be computed as a weighted average of several components. The relative weight of each component is shown below:

Disabilities and Accommodations

Thanks to Ada Lerner and Franklyn Turbak for some of this wording.

If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, please contact Accessibility and Disability Resources (ADR) to get a letter outlining your accommodation needs, and submit that letter to me. You should request accommodations as early as possible in the semester, or before the semester begins, since some situations can require significant time for review and accommodation design. If you need immediate accommodations, please arrange to meet with me as soon as possible. If you are unsure but suspect you may have an undocumented need for accommodations, you are encouraged to contact (ADR). They can provide assistance including screening and referral for assessments.

Disability Services can be reached at accessibility@wellesley.edu, at 781-283-2434, by scheduling an appointment online at their website, https://www.wellesley.edu/adr or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.

My job is to help each and every one of you learn, and part of that is making accommodations for any disabilities you might have. Please feel free to speak with me about concerns or suggestions about how I can make the course more accessible to you. I will never judge you or your disabilities, and I will keep the details of our conversations confidential. If you prefer, you may instead use my anonymous form. Though you are welcome to share any details that will help me assist in your learning, you are never required to share any private details of your life with me.
If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, it is also strongly recommended that you contact Accessibility and Disability Resources (ADR). If they know about your accommodation needs, they will send me an email describing your accommodations. It's also a good idea to meet with me early in the semester to discuss your accommodations. If you need immediate accommodations, please arrange to meet with me as soon as possible.
You should request accommodations as early as possible in the semester, or before the semester begins, since some situations can require significant time for review and accommodation design. If you are unsure but suspect you may have an undocumented need for accommodations, you are encouraged to contact Disability Services. They can provide assistance including screening and referral for assessments. Accessibility and Disability Resources can be reached at accessibility@wellesley.edu, at 781-283-2434, by scheduling an appointment online at their website www.Wellesley.edu/adr , or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.