CS455: Introduction to Distributed Systems

[Announcements] [Syllabus] [Grading] [Schedule] [Assignments]




All assignments are due at 5:00 PM on the due date. There is a late penalty of 7.5% per-day for up to a maximum of 2 days. All assignments will be posted at least 2 weeks prior to its due date. We will have a mix of both written and programming assignments. All assignments will be posted on this page. All assignments should be submitted using the checkin system. Comprehensive instructions for using this is available in this PDF document.

Each assignment in this course is split into two components: a programming component that accounts for 80% of the grade for the assignment and a written component that accounts for the remaining 20%. The written part of the assignment will be posted after the programming component has been submitted. The questions in the written part are intended to reflective so that you think a little deeper about your implementation choices, possible extensions to your work, and how you would address inefficiencies in your work. Programming assignments are due on Wednesdays and written assignments including term papers/presentations are due on Fridays.

Assignment HW-Test: Test of the Checkin system

This assignment just makes sure that you are able to use the checkin system. There are no points for this assignment, but it is mandatory. The checkin folder set aside for this submission is HW-TEST. Addtional details are available here.

Note: Checkin system will go live on 1/15/2018
Due: 1/24/2018

Assignment 1: Routing Packets Within a Structured Peer-to-Peer (P2P) Network Overlay

The objective of this assignment is to get you familiar with coding in a distributed setting where you need to manage the underlying communications between nodes. Upon completion of this assignment you will have a set of reusable classes that you will be able to draw upon. As part of this assignment you will be implementing routing schemes for packets in a structured peer-to-peer (P2P) overlay system. This assignment requires you to: (1) construct a logical overlay over a distributed set of nodes, and then (2) use partial information about nodes within the overlay to route packets. The assignment demonstrates how partial information about nodes comprising a distributed system can be used to route packets while ensuring correctness and convergence. Additional information about this assignment is available here.

Checkin folder: HW1-PC

Programming Component Due: 2/14/2018

Written Component: Will be posted 2/14/2018 Due 2/16/2018

Assignment 2: Threading Assignment


Assignment 3 : Analytics Using MapReduce

Term Project & Paper [This is a group assignment: Teams of 2-3]
CS455 is a capstone course and includes a writing component in the form of a term project and paper. As part of this assignment you will be doing a term project that involves using Apache Spark for performing analytics. You are free to use Spark for processing on-disk files or to use it for processing data streams.

There is also a separate presentation component for your term project. All presentations must follow the Term Project Presentation Guidelines.




Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 2018 Colorado State University