CIS 150 - Honors Project

Overview

The objective of this assignment is to design and develop a working application. This assignment includes creating an initial project proposal, determining user requirements, designing a solution, coding an implementation of the design using C++, testing and debugging the implementation, and creating a report reflecting on what you did and how well the process worked.

Expectations

Projects are expected to include the majority of topics covered in the course and go beyond the normal assignments for the course. At a minimum, any project should include selection, repetition, functions, and probably file access. Projects must be approved by the instructor before the project starts. A student may propose a project to see if it meets with instructor approval. The instructor can also suggest projects which meet the requirements.

Project Requirements

Work for this project is expected to be professional quality. What does that mean? It means...

All reports must be printed and formatted neatly. Reports must use proper grammar and correct spelling. Any resources which are used in the project which are not created by the student must be clearly cited for authorship. All program source code must follow professional style conventions and include documentation comments in the source code to make it easy to identify, read, and maintain the source code. Make sure your name is on every document you submit.

  1. Initial proposal: This report should briefly describe what the project is. You should get instructor approval of your project before preparing this report. The initial proposal should be no longer than one page.
  2. User/project requirements: This report should present a list of requirements that the application must meet to be considered successful. You should consult with the instructor as you create the list of requirements. This step and all following steps should use the provided Software Requirements Document template as a foundation for the project documentation.
  3. Basic design: This document should outline a basic design for an application that will meet the requirements specified in the requirements document. This report should include a list of modules, objects, data structures, and important functions that the project requires, and describe how they will interact. This report should also document what type of input is expected, what the output will look like, and how file storage will be used (if files are used). It is expected that this basic design will probably change a little as you develop the detailed design document.
  4. Detailed design: This document should detail how you expect the application to accomplish its requirements. It should be based on the basic design document, but include detailed descriptions of your object APIs, data structures, file formats, algorithms, and functions.
  5. Preliminary implementation: This is the source code for your preliminary implementation of your design. This code must compile and run. It is expected that there will probably be errors encountered as the application runs and that some features may not work quite right at this point.
  6. Final implementation: This is the source code for your finished application. It should be the result you achieve after testing and debugging your preliminary implementation. You should also include a brief user manual document that describes how to use the application if it is not obvious how to use the application when it runs.
  7. Reflection report: This document is for you to summarize how the project process has worked for you. Describe what you have learned, what you would do differently if you were starting over, and how you think the general Honors Project assignment could be improved. It would also be interesting to know if you decided to add or drop features from your application during the course of the project, and if so, why you made that decision.

Schedule

  1. Initial proposal: due by the end of the third week
  2. User/project requirements: due by the end of the fifth week
  3. Basic design: due by the end of the eighth week
  4. Detailed design: due by the end of the tenth week
  5. Preliminary implementation: due by the end of the thirteenth week
  6. Final implementation: due by the end of the sixteenth week
  7. Reflection report: due by the end of the sixteenth week

Grading rubric

There are 200 points total for this project. The point values below are the maximum points available for each deliverable on this project. Each deliverable will be graded as a percentage of the total points available for that deliverable. [See the project requirements section for an explanation of the term "professional quality."]

  • All requirements met or exceeded and work is professional quality: 90 - 100%
  • All requirements met, but work is not professional quality: 80 - 89%
  • Work is professional quality, but not all requirements were met: 80 - 89%
  • Work is good, but not quite professional and some requirement was not met: 70 - 79%
  • Work is not up to professional quality and/or some important requirement was not met - but the work shows forward progress toward a successful project completion: 60 - 69%
  • Requirements not met and/or work is either not professional quality or not submitted: 0 - 59%

Grade Breakdown

  1. Initial proposal: 10 points
  2. User/project requirements: 20 points
  3. Basic design: 30 points
  4. Detailed design: 30 points
  5. Preliminary implementation: 50 points
  6. Final implementation: 50 points
  7. Reflection report: 10 points

Resource

Software Requirements Document template