CS 5204 Course Project


Overview


Each student in the class must do an individual "programming" or "writing" project and must serve as a "reviewer" for the project of another student in the class. Each project produces an intermediate report and a final report. All project materials must be submitted in a form that clearly identifies the student and can be handled in a mangeable way.  Grading is done both for creating a project and for serving as a reviewer of a project.
 

Programming Projects

Description

A programming project produces a well-designed executing system that solves a specified distributed programming problem. Programming projects may be implemented using either:

Several of these systems will be discussed in class. The in-class discussion, however, is only a brief introduction and is not sufficient by itself to equip students with the knowledge to complete the project. Reading outside of the class will be needed to understand how each system operates and work outside of the class will be required to obtain and install a working version of the system.

Each programming project will involve a team of two students. The two  students on a team will each receive the same grade for the project.  The students may select their own partners and may divide the work in any appropriate way. It is expected that both students will contribute equally to the work and benefit equally from the learning associated with the project. It is considered a violation of the Honor Code for one student to allow another student not to contribute to the project as an equal partner. Problems  with equal participation should be brought to the attention of the instructor at the earliest possible time. Students may also collaborate on the installation of the software needed for the project and they may collaborate on achieving a basic understanding of the mechanisms of each system. However, each team's design and code must represent that team's creative work.

Default Project

The default programming project is a simple electronic commerce system. The system consists of four different machines for the client, two "stores", and a "bank." The system allows the client to view and purchase items from either store. As part of the purchase order, the client provides an "account number" which the store will verify by contacting the "bank". Before authorizing the expenditure, the bank will seek confirmation from the client that the amount and the store are acceptable. The interaction between the client and the store should be asynchronous. That is, the client should not block waiting for the store to reply to it requests to view or purchase items. This allows the client to conduct business with several stores simultaneously.

Proposal

Before beginning this form of project, the two students forming the team must submit a project proposal for approval by the instructor. The proposal must give the names of the two students, the underlying distributed technology or system that will be used, a short (one page) description of the system to be implemented, and a brief explanation of the relevance of this system to important topics in opeating systems.

Writing Projects

Description

A writing project produces a 10 page technical paper based on the contents of two papers published in the technical literature on a subject related to the course.   Page limits are strictly enforced on writing projects. Papers will be downgraded for using overly small font or other formatting devices to avoid the effect of the page limit. Figures, tables, and graphs must be used as appropriate.The paper should be written in a style and format as if it were being submitted to a technical journal for review. This means that it must contain a title, abstract, standard sections, and reference list. Writing projects will be graded both on the technical content of the written paper as well as on the quality of the writing and presentation.

Proposal

Before beginning this form of project, students must submit a project proposal for approval by the instructor. The proposal must give a complete bibliographic entry for each of  the two papers  and describe the relevance of these papers to a topic in the course.
 

Intermediate Report


An intermediate report must be submitted for each project during the term.  The report is mandatory and must submitted on a specified date. The intermediate reports will not be graded, but they are required to demonstrate progress toward the completion of the project. Only the final project report will be graded. Failure to turn in the intermediate reports on the specified dates will result in loss of credit for the project.

Programming Projects: Each programming team must prepare a brief written description of their system and conduct a live demonstration for the student reviewing their project. The written description must contain a design diagram showing the essential components in the system and a 2 page overview. The overview must state the objective of the system, identify the underlying technologies used in the project, explain the design diagram, and give other information helpful to the reviewer. After reading the materials prepared by the programming team and observing the live demonstration, the reviewer writes a 1-2 page report describing the demonstration and giving critical and helpful comments for consideration by the programming team. The written materials prepared by the programming team and the reviewers report must be submitted together on the review due date. The submitted materials must give the names of the programming team members on the reviewer on the first page.

Writing Projects: Student doing a writing project should give to their reviewer a draft of the paper being written at least one week prior to the review due date.  Sections not yet written must be indicated by appropriate section titles. The reviewer should carefully read the paper, marking up the draft paper with critical and helpful comments. The reviewer must write a 1-2 page commentary that gives other critical and helpful comments on the paper as a whole. A copy of the marked-up manuscript and the reviewers report must be submitted together on the review due date. The submitted materials must give the names of the student doing the writing project and the name of  the reviewer on the first page.
 

Reviewers


Each student in the class must serve as a source of feedback and critical commentary for the project of another student. The assignment of reviewers will be done by the instructor.  The reviewers should feel both free and obliged to give critical, helpful feedback to the student whose project they are reviewing. The intermediate reports do not enter in the grading, so critical comments will not negatively affect the grade of either the student doing the project or the student doing the review. Only the failure to complete and document the review will result in a lower project grade for both students.
 

Final Reports

A final report is required for both programming projects and writing projects. The final reports must be submitted in both paper form and also in electronic form in a neutral format (e.g., Postscript, PDF, HTML); proprietary formats (e.g., a Word file or a LaTex file) are not acceptable.

Programming Projects: Students doing programming projects must arrange a time to conduct a live demonstration for the instructor or GRA to exhibit the required functionality of the system. Also submitted at the demonstration is a final system's design in a graphical diagram using a standard design notation (e.g., the Unified Modelling Language) and a report highlighting the significant aspects of the project.

The final report should follow this outline:
 

  1. title/author/abstract - approximately 1/2 page. The abstract should indicate the purpose of the distributed system (e.g., remote execution of a sequence of computations, sorting, matrix multiplication), any standard algorithms that are used (e.g., two phase commit),  and the technologies employed in building the system (e.g., RMI). The abstract should also indicate your learning objective in building this system (e.g., become more familiar with Java RMI, develop deeper understanding of commit protocols).

  2.  
  3. project description - 4 pages that includes one or more diagrams illustrating the structure of the distributed system and the corresponding narrative text. This description should allow a knowledgeable reader to understand the overall architecture of the distributed system.

  4.  

     
     
     

  5. summary - approximately 1/2 page indicating what you learned from this project and what extensions or variations of this project might be possible.
Writing Projects: The final draft of the paper serves as the final report for writing projects.
 

Grading


Credit is given both for producing a project and for acting as a reviewer for another project as follows:
 
 

Role 
Points
Creator
65
Reviewer
10

Extra credit may be given for exceptional work that represents the highest level of creative activity.