CS455: Introduction to Distributed Systems

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


[Announcements] [Home]

Information Spaces


Information Spaces is a new knowledge repository that we are building to enhance learning. A key aspect of this repository is a collection of short videos (none will exceed 2 minutes) that give you focused information about a particular topic. The objective of information spaces is to:

  • Augment in-class learning
  • Facilitate getting up to speed on some concepts
  • Help with getting started on tools, frameworks, and APIs that are needed for assignments


  1. General Info
  2. Java Programming
  3. Network Programming
  4. Hadoop Programming
  5. Spark Programming
  6. Suggestion Form

General Info

Submitting Assignments Using Checkin

How to use the checkin system to submit assignments and check assignment grades.

Finding and Using Multiple 120 Lab Machines

How to find and use multiple machines from the 120 lab.
The starting script.
The closing script.
The tmux guide.

Being a Good Citizen on Piazza

A few brief guidelines on how to be a good citizen on Piazza.

Java Programming

Introduction to Packages in Java

A basic introduction to defining and using packages in Java.

Introduction to Building Java with Gradle

A basic introduction to configuring and building java projects with gradle.
A written guide to using gradle.
The start script used in the written guide.

Setting Up Gradle in Eclipse

A basic introduction to configuring gradle in eclipse.

Network Programming

Introduction to Sockets in Java

A basic introduction to the objects used for socket programming in Java.
The socket cheat sheet used in the video.

Simple Server/Client Example

A simple server and client communication example using the code from the previous video, "Introduction to Sockets in Java".
The server code.
The client code.

Introduction to Java NIO

The intro's text file.
The server code.
The client code.
The start script for assignment 2.
NIO: Introduction

A basic introduction to Java NIO (non-blocking input and output that allows multiple connections on a single thread).

NIO: Objects & Tools

This video covers the common objects and tools of Java NIO required to build a simple select server and client.

NIO: Example, The Client

The first video of the series covering the server/client example. This video explains the client program.

NIO: Example, The Server Select Loop

The first part of the server video, explaining the select loop.

NIO: Example, The Server Reading/Writing/Accepting

The second part of the server video, explaining the reading, writing, and accepting of the server.

Hadoop Programming

Hadoop Configuration Files

How to modify our hadoop configuration template files.

Setting Up Your Hadoop Environment

How to set up your computing environment to run an hdfs and yarn cluster.

Spark Programming

Setting Up a Spark Cluster

How to modify spark configuration files and start a cluster.
A written guide for configuring spark.

Creating and Submitting Spark Jobs

How to structure, compile, and submit jobs to a spark cluster.

Using the Spark Shell

How to start and develop with the spark shell.

Suggestion Form



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