---

* Academics

Graduate Program

Master's Project Guidelines

GUIDELINES FOR COMPUTER SCIENCE MASTERS PROJECTS

Candidates in the Computer Science Master of Science degree program who entered the program before Fall 2001 may complete a Master's Project instead of a Master's Thesis. Students entering the program Fall 2001 or later should consult the document Guidelines for Computer Science Master's Theses.

I. PURPOSE

The Master's Project is expected to be a substantial piece of software whose completion demonstrates the student's skill in problem-solving, algorithm and data-structure design, programming language and software systems usage, program testing and debugging, and software documentation. In addition to being of sufficient complexity to demonstrate the student's programming competence, a Master's Project is also expected to have some practical significance. More than just a large programming exercise, it should, in general, be carried out with some definite use and application in mind.

II. WORK INVOLVED

A Computer Science Master's Project begins with an idea. The idea may originate from the student or be suggested by someone else such as a faculty or staff person at Rensselaer or a person from another organization. Discussion with Computer Science faculty may be of help in evolving ideas or locating fruitful literature sources. Since a Master's Project requires much thinking and planning, students are encouraged to be on the lookout for potential project ideas as early as possible in their degree program.

The student must find a project advisor and a sponsoring faculty member interested in the project. The sponsoring faculty member must be a full-time member of the Rensselaer Computer Science Department faculty (Professor, Associate Professor, Assistant Professor). The sponsoring faculty member is responsible for the final evaluation of the project and has the authority to assign a grade for the project when completed. The project advisor is the person who directly supervises the project. In many cases the sponsoring faculty member and the project advisor are the same person. However, with the approval of the sponsoring faculty member, the project advisor may be another Rensselaer faculty or staff person, or a technical staff person from another organization. It is expected that the project advisor and the student will meet on a regular basis to discuss the student's work, and that the sponsoring faculty member will be kept informed of the progress of the project.

The student must write a formal proposal for the project in accordance with the requirements in Section III. After the proposal has been approved by the project advisor and the sponsoring faculty member, a copy of the approved proposal is placed in the student's file by the sponsoring faculty member.

The student must register for CSCI-6980 Master's Project prior to completion of the project. The grade that is assigned to the project by the sponsoring faculty member appears on the student's transcript as a grade for this course. This course represents three of the thirty credits needed to complete the Master of Science program in Computer Science. If a student registers for CSCI-6980 in a semester and does not complete the project in that semester, a grade of IP (in progress) is assigned for the course until the project is completed and a final grade assigned. The final grade then replaces the IP grade.

On completion of the project, and its approval by the project advisor, the student should prepare the final write-up and other items described below in Section IV. These items are then submitted to the sponsoring faculty member for evaluation and grading.

III. PROJECT PROPOSAL

The project proposal should describe the project to be undertaken in sufficient detail to serve as a basis for the project's evaluation. The detailed content and format requirements for the proposal are defined by the project advisor and sponsoring faculty member. As a minimum, the proposal should contain:

  • Statement of the problem to be solved.
  • Significance of the problem, project justification.
  • Specification of project goals --- how much of the problem the project is intended to solve, and what are the expected results of the project.
  • Method of solution --- description of the approach to be used to solve the problem, including major algorithms and data structures to be employed.
  • Computer hardware and software to be used.
  • Plans for program check-out --- testing procedures and data.
  • Possible extensions suggested for follow-up projects.
  • Budget estimate, if required resources are not available or their use will incur a cost. Include a description of how these costs will be paid.
  • Semester to be registered for CSCI-6980 Master's Project.
  • Expected completion date for the project.

The project proposal should have a cover page with the title of the project, the name of the student, and a place for the project advisor and the sponsoring faculty member to sign to indicate approval of the proposal. The suggested format for the title page is the following:

Suggested Format

IV. FINAL SUBMISSION

On completion of the project and its final approval by the project advisor, the student must prepare and submit to the sponsoring faculty member a final write-up of the project. The detailed requirements for the content and format of the final write-up are determined by the sponsoring faculty member and project advisor. In general, the final write-up should include at a minimum the items listed below.

FINAL WRITE-UP

This is an expanded version of the proposal with the addition of the accomplishments and the conclusions of the project. It should include full documentation of the project. The contents of the final write-up typically will include the following as appropriate:

  • Overview: A short description of the project. This should state the project's purpose, area of application, highlights of algorithms used, comparison with other available programs for the same purpose, and other pertinent information to enable a potential user to decide whether to use the project results.
  • User Manual: A description of how the software systems developed in the project are used. It should contain such user information as command formats, descriptions of menu options and dialogue boxes, formats for preparing input data, interpretation of outputs produced and error messages, time and memory requirements, and samples of use. It should also describe any computer system requirements for using the software.
  • Implementation Manual: A description of how the software systems for the project were developed and what is necessary to maintain them. It should list the location and content of all relevant files and instructions for installing, compiling and configuring the software. It should describe the organization of the software, including major algorithms and data structures. Dependencies on hardware and software systems should be described. Limitations of the software should be discussed.
SAMPLE RESULTS

Sample outputs for a sufficient quantity and variety of inputs to demonstrate the correct execution of all software systems developed for the project. For example, these sample outputs may take the form of screen dumps or reports produced by the software. In some cases, it may be more appropriate to hold a live demonstration of the software for the project advisor and sponsoring faculty member.

SOFTWARE SOURCE CODE LISTING

A code listing of all software written for the project. The software is expected to conform to professional standards regarding structure, clarity, modularity, documentation, etc. The project advisor and sponsoring faculty member may require that the code listing be provided in hardcopy form, electronic form, or both.

V. OTHER ISSUES

Other issues that sometimes arise with Computer Science Master's Projects include the following:

Proprietary Ownership of the Results

The results of a Computer Science Master's Project are public domain. This means that anyone who requests to see the project results, in general, will be allowed to do so. This can be a problem for a student who completes a Master's Project for an organization that wishes the results to remain proprietary. A student considering doing a Master's Project is encouraged to discuss this issue with the project advisor and sponsoring faculty member prior to committing to the project. If the project results will contain software or concepts that an organization will claim as proprietary, then the project is not an acceptable Master's Project.

A successful compromise that has been used in the past is to have the sponsoring faculty member return the source code listing for the software to the student after evaluation and grading. In this way, only the write-up and sample results from the project become public domain. Some organizations have found this arrangement to be an acceptable compromise for the proprietary issue. The sponsoring faculty member must also agree to this arrangement. Such an arrangement should be defined before the project begins.

Administration and Deadlines

Unlike the Master's Thesis or other departments' Master's Projects, the administration of the Computer Science Master's Project is done by the Computer Science Department rather than by the Graduate School. This means that the Graduate School guidelines for the format of a Master's Project do not apply. It also means that the deadlines for submission of Master's Projects that are published each semester in the Rensselaer Calendar do not apply. A student should consult with the sponsoring faculty member to determine a submission deadline.

Registering for the Computer Science Master's Project

Registration for the Computer Science Master's Project is done by registering for the course CSCI-6980-00 Master's Project for three credits. You should then print out an Independent Study, Project or Thesis form. The form must be signed by your sponsoring faculty member (not your project advisor).

Waiver of the Master's Project Requirement

Under rare circumstances, the Computer Science Master's Project requirement is waived for a student in the Master of Science program. This is usually done for a student with substantial software development experience, who can demonstrate prior experience that is the equivalent of a Master's Project. A formal request for such a waiver should be directed to the Graduate Curriculum Committee in the Computer Science Department and should fully document the past project experience that is the basis for the waiver request. If such a waiver is granted by the Graduate Curriculum Committee, then the student may substitute another course (approved by the student's academic advisor) for the course CSCI-6980 Master's Project.

* Return to main Graduate Program page


---

---