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
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.
You can come up with your own project idea or start with one that
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
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)