CS 87 Course Project

Spring 2018

Overview | Proposal | Mid-way | Presentation, Report, Demo | Links

Course Project

The goal of this project is to give you a taste of what it is like to do research: first you will find and refine a project topic organized around a general problem to solve, this will require some examination of related work (resulting in an annotated bibliography); second, you will come up with an initial solution to the problem and a plan for implementing your solution; third, you will implement your plan, possibly modifying it as need be; fourth, you will evaluate your solution though some type of verification or testing process; finally, you will convey the results of your work to others both in written form and through an oral presentation.

Since this is a project spanning the second half of the course, it should be a substantial amount of work. You can choose from a very broad range of projects, but your project must have something to do with parallel or distributed computing, it must have some implementation and some experimentation parts, and it must have some component that looks like science; there should be a general question that you are trying to answer though your project.

Getting Started

You can come up with your own project idea or start with one that I suggest. Posted to the course wiki I have suggestions for starting points project ideas. My starting point ideas are not fully investigated. As a result, all require some background investigative work and further definition of the problem you are solving and how you plan to solve it.

You should begin with a general idea of the problem you want to look at, then do a literature search of related work and projects to get some ideas of what has been done and what some approaches are to solving your problem. It is fine to do a project whose goal is to reproduce other researcher's results, and/or to compare different, already developed, approaches to a particular problem. However, there must be some question that you are trying to answer through your project (one example of a general question is "Can distributed service X be efficiently implemented on system Y?"). The answer to the question(s) associated with your project will involve both implementation and testing. Depending on your project, it may have more focus on implementation or more on testing, but every project must have some of both.

You must work in groups of 2 to 4 on your course project; no individual projects are allowed. Larger groups should split into subgroups of 2 or 3. I will help singles find groups, but I encourage you to find your own group based on interests in similar projects ideas.

Assignments for the different Project Parts will be linked to here as they are assigned

Part 1: Project Proposal and Annotated Bibliography:

Project Proposal Assignment
Due Friday, March 30 before 1pm
Counts towards 5% of your final grade.

Week 11: Project Work Week

Project Work Week Assignment
A full week devoted solely to your working on your project. Each group must meet with me during this week to discuss your project and its progress, changes, and any roadblocks you have encountered.

Part 2: Mid-way Oral and Written Progress Report

Project Midway Assignment

Due week 12
Counts towards 5% of your final grade

Part 3: Written Project Report, Presentation, and Demo

Project Final Assignment
Written Final Project Report: Due May 11 before noon
Final Presentation: Due May 13 during scheduled final exam slots.
Project Demo and Project Code due on or before May 14.
Counts towards 30% of your final grade


my Research and Writing guide, resources for finding related work, information about creating an annotated bibliography, and organizing report organization.
Tips for Research and Writing and Oral presentations
Tools for creating Documents (latex, bibtex, and others)