CSCI 3366 (Parallel and Distributed Processing), Fall 2017:
Project

Credit:
50 points.

Honor Code Statement

Please include with each part of the assignment the Honor Code pledge or just the word ``pledged'', plus one or more of the following about collaboration and help (as many as apply).1Text in italics is explanatory or something for you to fill in. For written assignments, it should go right after your name and the assignment number; for programming assignments, it should go in comments at the start of your program(s).

Overview

One of the requirements for this course is completion of a project. You may work individually or with one other person in the class. The project will count as 50 points of your total grade. It should be comparable in length and difficulty to the longest of the homeworks (Homework 2), and if two people work together, the project should be about twice as ambitious as a solo project. All projects must be approved in advance by the instructor, who will be the final arbiter of whether the topic and level of difficulty are appropriate.

Suggestions for topics

Possible project topics include the following, or you may propose something else. If your project involves writing code, you may use any language/library that can be run on the department's network of Linux machines.

Parallel applications

Your project could be the design and implementation of a non-trivial parallel application. There are many, many possibilities here, mostly falling into one of two categories:

Programming environments

Your project could focus on comparing/contrasting different languages/libraries, possibly including ones we didn't discuss in class, or discussed only briefly. The idea here is similar to the first suggestion under ``Performance experiments'' but with the focus on programmer ease of use rather than performance. If you choose this option and include in the mix of languages/libraries something we didn't discuss in class, you should include in your project a short discussion of its major features -- something along the lines of the discussion in class of how Java sockets/RMI and POSIX threads map onto the Implementation Mechanisms framework.

A hybrid project combining this idea with the ones in ``Performance experiments'' might also work well.

Performance experiments

Your project can consist of a set of experiments designed to measure something about a parallel-programming platform or platforms, such as one of the following.

What to turn in and when



Footnotes

... apply).1
Credit where credit is due: I based the wording of this list on a posting to a SIGCSE mailing list. SIGCSE is the ACM's Special Interest Group on CS Education.


Berna Massingill
2017-12-11