Project Requirements

Project (COSC 880) is a three-credit course that enables students to conduct a study in an advanced computer-related topic or undertake the analysis, design and implementation of a real-world application through a faculty-led project.

Before registering for COSC 880, the student must complete at least 18 graduate credits toward the M.S. in Computer Science.


  1. Students should begin to lay the groundwork for their project the semester before they plan to complete their 880, identify a faculty member to serve as the advisor for the project, and discuss the project topic opportunity.
  2. Proposal: The student works with the faculty advisor to develop a proposal for the project, using the template found here. The final signed proposal should be submitted to the Graduate Program Director by the faculty advisor. Important dates are:
    • Proposal Deadline for Fall semester is 8/1.
    • Proposal Deadline for Spring semester is 12/1.
    • Proposal Deadline for Summer semester is 5/1.
  3. Registration: The student will be enrolled in COSC880 after the proposal is approved. The student works with the faculty advisor throughout the semester. 
  4. Requirements: Students are required to submit a final report and present their project to a committee that includes the faculty advisor and at least two other faculty members. Presentations typically take place the last Friday of regular classes.

COSC880 Final Report Format: 

  • Introduction and Background
    • Provide introductory and background information on the problem, why we care about the problem (its significance), potential solutions if they are known at the beginning, and other appropriate information.
    • This section is an expansion of the proposal and provides a “roadmap” of the rest of the document
  • Literature Review
    • Provide a discussion of the current state-of-the-art with respect to any technologies, processes, potential solutions, etc. that apply to the problem and/or problem area(s).
    • For example, if a database will be used then a review of database types, their advantages and disadvantages, etc. would be appropriate. If a user interface is needed, then perhaps a discussion of various options would be appropriate (object oriented versus structured program; using scriplets; using model-view-controller; etc.).  This establishes the “tool box” for what can be used in the system design.
  • User Requirements
    • A complete discussion of requirements from the user point of view must be done so as to set the stage for the design decisions.
  • System Design
    • Thorough discussion of the design aspects of the system, including what technologies, processes, etc. were used to meet each requirement and why. Basically, each requirement should be matched with one or more of the technologies/processes/ etc. from the literature review.
    • Section should end with a table matching each user requirement to a design decision.
  • Implementation
    • Complete presentation of the implementation process of the system.
    • Screen shots, data flow diagram(s), code snippets and/or pseudocode, views (user versus administrator), etc. should be included as appropriate and necessary.
  • Test Cases
    • One or more test cases should be provided for each user requirement.
    • The format for each test case will include the user requirement being tested, description of the test, expected result, and actual result (including pass/fail).
    • The section should end with a table showing the user requirement, design decision, test, and pass/fail result.
  • Conclusions
    • This section should summarize the need, actions taken, and results of the project.
    • It should also include subsections for any limitations of the study (as appropriate) and future work/improvements/research that should be considered.
  • Other notes: the report should contain a title page, table of contents, and list of cited references.