CS455: Introduction to Distributed Systems

[Schedule] [Assignments] [Infospaces] [Grading] [Syllabus]


[Announcements] [Home]


Last updated on Wednesday, April 29, 2020 6:21 PM
Professor Lecture Coordinates

Shrideep Pallickara
Office: Room 364, CS Building
Office Hours:
4:00-5:00 pm Tuesday
9:00-10:00 am Friday
E-mail: compsci_cs455 {aT} colostate.edu
(with the obvious change)
Tel: 970.492.4209


TTH (5:00 -6:15 PM)
Computer Science Building, Room-130

GTA Office Hours
Jason Stock
Office Hours in CSB 120:
2:00-4:00 pm Monday
2:00-4:00 pm Wednesday
E-mail: compsci_cs455 {aT} colostate.edu

Brandon Gildemaster
Office Hours in CSB 120:
2:00-4:00 pm Tuesday
2:00-4:00 pm Thursday
E-mail: compsci_cs455 {aT} colostate.edu

Readings will be based on the following textbooks.

[TvS] Distributed Systems: Principles and Paradigms. Andrew S. Tanenbaum and Maarten van Steen. 3nd Edition. Createspace, ISBN 9781530281756.
Distributed Systems: Concepts and Design. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair. 5th Edition. Addison Wesley. ISBN: 978-0132143011
[KS] Distributed Computing: Principles, Algorithms, and Systems. Ajay Kshemkalyani and Mukesh Singhal. 1st edition. Cambridge University Press. ISBN: 0521876346/ 978-0521876346.
[GPB] Java Concurrency in Practice. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. Addison-Wesley Professional. ISBN: 0321349601/978-0321349606.
[OW] Java Threads. Scott Oaks and Henry Wong. . 3rd Edition. O’Reilly Press. ISBN: 0-596-00782-5/978-0-596-00782-9
[TW] Hadoop: The Definitive Guide. Tom White. 3rd Edition. Early Access Release. O’Reilly Press. ISBN: 978-1-449-31152-0.
[KKWZ] Learning Spark: Lightning-Fast Big Data Analysis. 1st Edition. Holden Karau, Andy Konwinski, Patrick Wendell, and Matei Zaharia. O'Reilly. 2015. ISBN-13: 978- 1449358624.
[KW] High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark. Holden Karau and Rachel Warren. O'Reilly Media. 2017. ISBN-13: 978-1491943205.
[NL] Distributed Algorithms. Nancy Lynch. 1st edition. Morgan Kaufman. ISBN: 1558603484/978-1558603486.
[GR] Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. George Reese.1st edition. O'Reilly. ISBN: 0596156367/978-0596156367.
[PD] Computer Networks: A Systems Approach. Larry Peterson and Bruce Davie. 4th edition. Morgan Kaufmann. ISBN: 978-0-12-370548-8.
[FS] Practical Cryptography. Niels Ferguson and Bruce Schneier. 1st edition. Wiley Publishing. ISBN: 0-471-22894-X/0-471-22357-3.
[WS] Cryptography and Network Security: Principles and Practice. William Stallings. 5th Edition. Prentice Hall. ISBN: 0136097049/978-0136097044
[RR] Unix Systems Programming. Kay Robbins & Steve Robbins, 2nd edition. Prentice Hall. ISBN: 978-0-13-042411-2.
[SGG] Operating Systems Concepts. Avi Silberschatz, Peter Galvin, Greg Gagne. 8th edition. John Wiley & Sons, Inc. ISBN-13: 978-0-470-12872-5.


Week Date Topic Assignments Readings
1 Jan 20-24

Course logistics, overview, list of topics to be covered, and overview of distributed systems.

Lecture 1  [HHD-ver] (1/21)

Networking and Communications
Data encoding formats, delay-bandwidth product, switched networks, internetworking, layering of protocols, encapsulation, fragmentation and routing of packets, IPv4/IPv6, UDP, TCP and sliding windows, and TCP optimizations.

Lecture 2  [HHD-ver] (1/23)

Lab Session 1 (1/24)

HW1-TEST 1/21

HW1-PC 1/21

[TvS] Ch {1}
[PD] Ch {1, 2}
2 Jan 27-31
Lecture 3  [HHD-ver] (1/28)

Lecture 4  [HDD-ver] (1/30)

Lab Session 2 (1/31)

HW1-TEST due 1/29

[PD] Ch {3, 5}
[TvS] Ch {4}
3 Feb 03-07 Threads: Threads vs processes, thread lifecycle, stacks and heaps, creation and management of threads, data synchronization, race conditions, intrinsic locks and reentracy.

Lecture 5  [HHD-ver] (2/4)

Lecture 6  [HHD-ver] (2/6)

Lab Session 3 (1/31)

HW2-PC 2/5
[OW] Ch {1, 2}
[SGG] Ch {4}

4 Feb 10-14
Lecture 7  [HHD-ver] (2/11)

Thread Safety: Compound actions, sharing objects and confinement, multivariable invariants and thread-safety, making a class thread-safe, multivariable invariants, adding functionality to a thread-safe class, synchronized & concurrent collections, and locking strategies.

Lecture 8  [HHD-ver] (2/13)

Lab Session 4 (2/14)

  [OW] Ch {3,4}

5 Feb 17-21
Lecture 9  [HHD-ver] (2/18)

Lecture 10  [HHD-ver] (2/20)

Lab Session 5 (2/21)

HW1-PC due 2/19

HW1-WC 2/18

HW1-WC due 2/21

[GPB] Ch {5, 11}

6 Feb 24-28 Programming models for Cloud Computing: MapReduce Comparison with RDBMS, HPC, Grid computing and volunteeer computing, core architectural framework, pushing computations to the data, Map and Reduce functions, orchestration of tasks, partitioning functions, refinements, and combiner functions.

Lecture 11  [HHD-ver] (2/25)

Lecture 12  [HHD-ver] (2/27)

Lab Session 6 (2/28)

[TW] Ch {1, 2}
7 Mar 02-06 Hadoop: The Hadoop ecosystem, developing MapReduce programs using Hadoop, job configuration and submission, MapReduce data flow, combiner functions and requirements for combiners, tasks and split strategies, YARN and MapReduce Runtimes.

Lecture 13  [HHD-ver] (3/3)

Midterm 03/05

Lab Session 7 (3/6)

Midterm 03/05
[TW] Ch {1, 2}

8 Mar 09-13
Lecture 15  [HHD-ver] (3/10)

Hadoop Distributed File System
Types of nodes, metadata management, namespaces, federation, high-availability, replication and dispersion of replicas, staging of data, reading and writing files.

Lecture 16  [HHD-ver] (3/12)

Lab Session 8 (3/13)

HW2-PC due 03/11

HW2-WC 03/11

HW3-PC 03/13

HW2-WC due 03/15

[TW] Ch {3, 4}

Midterm 03/07
March 16-24: Spring Break
March 31: Last day for drop with W

9 Mar 23-27

Lecture 18  [HHD-ver] (3/26)

Lab Session 9 (3/27)

Term-Project (TP) 03/24
[TW] Ch {4, 6}
[KKWZ] Chap {1-4}
10 Mar 30 - Apr 03 Spark: Software stack, interactive shells in Spark, core Spark concepts, Resilient Distributed Datasets (RDDs), lazy evaluations, Operations:transformations & actions, Pair RDDs, dependencies and transformations, and partitioning schemes.

Lecture 19
  [HHD-ver] (3/31)

Lecture 20  [HHD-ver] (4/2)

Lab Session 10 (4/3)

TP-DO due 04/01
[KKWZ] Chap {1-4}
[KW] Chap {6}
11 Apr 06-10
Lecture 21  [HHD-ver] (4/7)

Spark Streaming
: Architecture and abstractions, execution, stateful and stateless transformations, windowed operations, and performance considerations.

Lecture 22  [HHD-ver] (4/9)

Lab Session 11 (4/10)

TP-D1 due 04/10
[TvS] Ch {6}
[CDKB] Ch {15}
12 Apr 13-17
Distributed Mutual Exclusion
Distributed coordination, conditions requirements for distributed mutual exclusion, token-based and permission-based approaches, Central-Server algorithm, Ricarat and Agarwala's algorithm, Maekawa's algorithm and voting sets.

Lecture 23  [HHD-ver] (4/14)

Lecture 24  [HHD-ver] (4/16)

Lab Session 12 (4/17)

HW3-PC due 04/15

HW3-WC 04/15

HW3-WC due 04/17

[TvS] Ch {6}
[CDKB] Ch {15}
[KS] Ch {9}

13 Apr 20-24
Election Algorithms
Election Algorithms: Requirements, performance of algorithms, ring-based algorithm, failure detectors, Garcia-Molina Bully Algorithm, and elections in wireless environments.

Lecture 25  [HHD-ver] (4/20)

Lecture 26  [HHD-ver] (4/22)

Lab Session 13 (4/24)

[TvS] Ch {6}
[CDKB] Ch {15}
[KS] Ch {9}

[TvS] Ch {2}
14 Apr 27-May 01 Architectures & Topologies
Architectural styles for designing systems including layered, objects, data, and event based. Role of topologies in systems design and their implications on throughput, scaling, fault tolerance and resiliency, and latencies.

Lecture 27  [HHD-ver] (4/27)

File Systems and Network Storage

UFS and inodes, naming, replication, semantics of file sharing, Network File System, and the Andrew File System.

Lecture 28
  [HHD-ver] (4/29)

Lab Session 14 (5/1)

TP due 04/29

TP-Pres due 05/01

[SGG] Ch {10, 11}
[RR] Ch {5,6}
15 May 04-08 Term Project Presentation Guidelines

Presentations Week: Presentation slides (and video) are listed here.

Analyzing 50 Years of Global Trade
Jared Adams, Zach Aubin, Corbin Callahan


Hard Drive Reliability in Data Centers
Using Spark

Alex Morris, Nathan Kozakis, Sam Morris


New York City Parking
Brandon Jungen, Daniel Chavez


Reddit Spam Comment Detection
Evan Lavertu, Cody Coleman


Optimizing User-Posts on Stack Overflow
Reece Sharp, Gabriel Vigil, Kyle Lagerberg


Predicting Prrotein Interactions from Protein
Primary Structures

Sajeeb Roy Chowdhury, Saptarshi Chatterjee

presentation, video

Analyzing the Impact of Historical Events
on Airline Travel

Joshua Burris, Jack Fitzgerald, Thomas Lujan


NYC Parking Ticket Data Analysis
Laksheen Mendis, Menuka Warushavithana, Philip Kirner


Modeling Climate Change in a Distributed Environment
Alex Tate, Max Hayne, Wesley Romary


An Analysis of Reddit Comments Focusing on Movie and Actor Popularity
Gus Nard, Luke Kilgore, Stephen Sutherland


Analytics and Observed Trends of Issued Parking Tickets in the New York City Metropolitan Area
Hannah VanderHoeven, Ryan Smith, Angel Augustine

presentation, video

Lab Session 15 (5/8)

Wednesday, May 13: Final Computer Science Building CSB-130 from 6:20-8:20 pm
May 18: Letter Grades will be posted





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