Image: ESA - C.Carreau (SEMPDN9OY2F)
Overview | Assignments | Policies

CIS 5550: Assignments

Assignment 0: Hello World

For this assignment, you will implement "Hello World" in Java. The real purpose, of course, is to set up the environment you will need for this class, and to practice the various steps, such as GitHub commits and Gradescope submissions.

HW0 handout

Assignment 1: Static Web Server

The goal of this assignment is to build a simple HTTP server that serves static files from a given directory. An enhanced version of this server will later be used as the frontend of your search engine.

HW1 handout

Assignment 2: Dynamic Web Server

In this assignment, you will extend your static web server from HW1 with support for dynamic content and routes. The API will be based on the API from Spark Framework.

HW2 handout

Assignment 3: HTTPS Server on the Cloud

For this homework, you will add support for sessions and HTTPS to your web server from HW2, and you will deploy it on an Amazon EC2 instance.

HW3 handout

Assignment 4: In-Memory Key-Value Store

The goal of this hoemwork is to implement a simple distributed key-value store, which will build on your web server from the previous three assignments.

HW4 handout

Assignment 5: Key-Value Store with Persistence

For this assignment, you will extend the key-value store from HW4 with persistence, as well as a nice user interface and some additional API functions.

HW5 handout

Assignment 6: Analytics Engine

For this assignment, you will build a simple distributed analytics engine called Flame that is loosely based on Apache Spark.

HW6 handout

Assignment 7: Enhanced Analytics Engine

In this assignment, you will enhance your Flame engine with additional operations that will be useful for crawling, indexing, and for computing PageRank.

HW7 handout

Assignment 8: Distributed Web Crawler

For this assignment, you will build a simple distributed web crawler, based on your Flame engine from HW6+HW7 and the KVS from HW4+HW5.

HW8 handout

Final Project: Cloud-Based Search Engine

For the final project, you will combine the above components, enhance them, and add a few more, to build a complete web search engine that runs on the Cloud.

Project handout