Spring 2024
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

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

Instructor:


Christine Bassem

Office: W420

Office hours:
Wednesday 1 - 2:30 pm and Thursday 1 - 2:30 pm in H405

Tutors:


Lana Honcharuk

Wednesday TA

Support hours: Wednesday 7-8 pm (virtual)

Cynthia Wang

Support hours: 4:30-6:30 pm (virtual)


CS 343 Schedule


Please note that this page will be updated frequently, and it will contain all course content and resources
Monday Tuesday Wednesday Thursday Friday
Jan
22
Introduction
(slides)
Reading: Course Admin
23
24
25
Synchronization
(slides)
[Optional] Reading: Intro to concurrency
26
29
Networks and the cloud
(slides)
Merged with CS 323
Class held in **OBS-114**
30
31
How to read research papers?
Presented by Jillian Amaral
Merged with CS 323
Class held in **SCI-H105**
Feb
1
Multithreading and RPCs in GoLang
(slides)
2
Assignment 1 - Multithreaded WordCount
due at 11:59pm
(description - starter code)
5
Project Phase 0 - Team Forming
(Fill out this form - by Monday 11:59pm)
6
Project teams formed
Sign up for paper presentations
7
ER Diagrams
8
MapReduce (2)
(paper summary)
Complete paper review on Gradescope
9
12
Distributed File Systems (DFS)
(slides - highlight)
13
14
Best practices for debugging
15
DFS (2)
(slides - paper summary) Complete paper review on Gradescope
16
Assignment 2 - RPC WordCount
due at 11:59pm
19
No classes
20
Decentralized algorithms (1)
Leader Election (1)
(slides - highlight)
21
Leader Election (2)
(Paper summary)
Complete paper review on Gradescope by Friday
22
[Optional Topic] Decentralized algorithms (2)
Minimum Spanning Trees
23
26
Project group work
27
28
Best practices for debugging
29
Mar
1
Assignment 3 - Leader Election
due Sunday 11:59pm
Code for Ring leader election
4
Consensus (1)
(slides - highlight)
5
6
Quiz 1 in-class
Covers material till end of decentralized algorithms
7
Consensus (2)
(Paper summary) Complete paper review on Gradescope
8
11
Fault tolerance and consensus
Finishing up Raft
12
13
Debugging session
14
No class - work on assignment
Complete paper review on Gradescope
15
Assignment 4 - Fault tolerance in leader election
due 11:59pm
( starter code)
18
Spring break
19
Spring break
20
Spring break
21
Spring break
22
Spring break
25
26
27
Chord (2)
(summary)
Complete paper report on Gradescope by end of week
28
29
Apr
1
Ad-hoc routing (2)
Complete paper report on Gradescope
2
3
Debugging session
4
Project group work
5
Assignment 5 - Log replication
due Sunday at 11:59pm
8
Fault-tolerance in ad-hoc routing
9
10
No class
[Optional] Chat about project
11
Rhulman - No classes
12
15
No classes
16
17
Project discussion
18
Project discussion
19
22
23
24
Quiz 2 in-class
Covers material till end of fault-tolerant ad-hoc routing
25
Project group work
Finalize RPC signatures to allow API connection
26
29
In-class presentations
30
May
1
In-class 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.

Textbook

The recommended textbooks for the course are: Every lecture, there will be required readings from multiple sources with a reference to the related chapters in these books. You do not have to buy the books, but they are excellent references.

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. 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 myself) and tutoring hours (offered by Lana). Support hours are posted on the top of this page. 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 either be sections from the recommended textbooks, scientific articles, and/or tutorials.

In-class paper review

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.

Assignments

Assignments will be composed of both written and programming problems. All written assignment problems are to be completed individually, while all programming problems are to be completed in pairs. All assignment submissions will be done via Gradescope.

Final Project

Throughout the semester, project teams of 3 students work on a project, in collaboration with students in CS 323. The objective of the project is to build an efficient distributed file system (DFS) to serve as the backend for CS 323 projects, who will act as our clients. Teams from both courses will have the chance to discuss the design aspects and specifications in joint group-work lectures.
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 ballpark average. The actual numbers will depend on the particular student and the particular week. Designing, describing, and analyzing certain algorithms can be quite challenging. Because of this, 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. Be proactive about seeking help. If you get stuck on a problem and can't get unstuck within about 30 minutes, stop working on the problem and seek help from the instructors or the tutors.

Other Expectations

You are expected to attend every lecture, 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.

Covid Policies

Masking: In keeping with the general guidance from the college, masks will be required at all times in the classroom for students and instructors (except when taking a drink of water, etc.). We will revisit this policy later in the semester if there are new developments and/or updates to the college policy.
Covid absences: Students and instructors should follow all Covid guidelines from the college such as isolating for 5 days after a positive test. Lectures will not be recorded or hybrid to accommodate student absences assuming classes remain in person, but all slides and code used in lectures will be available in the course Drive folder.
The college has established that Covid absences should be treated similar to other medical absences. A student missing 1-2 classes for a minor case should get notes from classmates and contact the instructor about making up any missed work. A student missing more than 2 classes should contact their instructor and class dean to make a plan which can include taking an incomplete if the student chooses to.