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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- Initial proposal: due by the end of the third week
- User/project requirements: due by the end of the fifth week
- Basic design: due by the end of the eighth week
- Detailed design: due by the end of the tenth week
- Preliminary implementation: due by the end of the thirteenth week
- Final implementation: due by the end of the sixteenth week
- 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
- Initial proposal: 10 points
- User/project requirements: 20 points
- Basic design: 30 points
- Detailed design: 30 points
- Preliminary implementation: 50 points
- Final implementation: 50 points
- Reflection report: 10 points
Resource
Software Requirements Document template