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.
A programming project produces a well-designed executing system that solves a specified distributed programming problem. Programming projects may be implemented using either:
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.
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.
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.
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.
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:
Credit is given both for producing a project and for acting as a
reviewer for another project as follows:
|
|
|
| Creator |
|
| Reviewer |
|
Extra credit may be given for exceptional work that represents the highest
level of creative activity.