CS455: Introduction to Distributed Systems

csu-logo
red-line
[Announcements] [Syllabus] [Grading] [Schedule] [Assignments]

[Piazza]

[Home]

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.



Programming Component (HW1-PC): Posted 1/5 Due: 2/14/2018 Checkin folder: HW1-PC

Written Component (HW1-WC):Posted 2/13/2018 Due 2/16/2018 Checkin folder: HW1-WC







Assignment 2: Scalable Server Design: Using Thread Pools to Manage & Load Balance Active Network Connections

As part of this assignment you will be developing a server to handle network traffic by designing and building your own thread pool. This thread pool will have a configurable number of threads that will be used to perform tasks relating to network communications. Specifically, you will use this thread pool to manage all tasks relating to network communications. This includes: managing incoming network connections, receiving data over these network connections, and sending data over any of these links. Additional information about the assignment is available here.

Programming Component (HW2-PC) Posted 1/31, Due: 3/7/2018 Checkin folder: HW2-PC

Written Component (HW2-WC): Posted 3/6/2018 Due 3/9/2018 Checkin folder: HW2-WC










Assignment 3: Analyzing On-time Performance of Commercial Flights in the United States using MapReduce

As part of this assignment, you will be working with datasets released by the United States Bureau of Transportation Statistics. You will be developing MapReduce programs that parse and process the on-time performance records for flights operated by major carriers in the U.S. from October, 1987 to April, 2008. Additional details are available here.


Additional Useful Documents:
[1]. Hadoop Setup Guide

[2]. Running the WordCount example


Programming Component (HW3-PC) Posted 3/8/2018 Due: 4/11/2018 Checkin folder: HW3-PC

Written Component (HW3-PC): Posted 4/11/2018 Due 4/13/2018 Checkin folder: HW3-WC
















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. Additional details about the Term Project are available here.


Requirements posted 03/23

Deliverable-ZERO: Email cs455 with team composition. Due 3/30
TP-D1: Due 04/06
Final Source Codes: Due 04/25
Term Project Report & Powerpoint Presentation: Due 04/27




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