Final Project- (30%)
Your final project will be to analyze, design, and document a simple program that utilizes a good design process and incorporates sequential, selection and repetitive programming statements as well as at least one function call and the use of at least one array. The specific problem you need to solve for the final project is:

Business Requirements

Input a list of positive numbers (terminated by 0) into an array. You should assume that the numbers are in a numerical sequence (This means the numbers are already sorted before they are entered). Find the median of the numbers in the array, and output the result. Use a subprogram to input the numbers, a function to find the median, and a subprogram to output the result.

The median of a list of N numbers is as follows:

  • The middle number of the sorted list, if N is odd
  • The average of the two middle numbers in the sorted list, if N is even

(Hint: We are assuming that the numbers will be entered in a numerical sequence)

Architecture Requirements

The program will confirm to the following technical (architecture) requirements:

  1. The program must have a main module
  2. The program must have a sub module to input the data
  3. The program must have a function to calculate the median
  4. The program must have a sub module to output the results

The following best practices learned in class must be utilized:

  1. Good variables, parameters, and modules names
  2. Comment your code
  3. Gave your program a title
  4. Utilize the concept of “Scope”
  5. Utilize the concepts of “passing by reference” and “passing by value” (i.e. stack/heap; boxing/un-boxing)
  6. Utilize the concept of “Strong Typing”
  7. Utilize the concept of pre-test loops and post-test loops
  8. Utilize the concept of “variable initialization before use”
  9. Utilize the concept of “variable reset”
  10. All variables should be declared with sensible types
  11. Employ defensive programming techniques (never trust any input)
  12. Utilize array(s) to ensure a more efficient program
  13. Prompt the user for all required “inputs” to the program
  14. Construct meaningful “Desk Checks”

Final Project Deliverables:
There are two deliveries for this project. The first delivery is the project plan which provides your problem statements, problem analysis, and how it will comply with the project specifications. The project plan is worth 10% of your grade. The final delivery will be your completed project design along with your code comments and comprehensive test plan. The final delivery is worth 20% of your grade.

Your project plan is due in week 7 by midnight EST, on the specific date posted in the class schedule. The final delivery is due no later than the last day of class. Your instructor’s policy on late projects applies to this project.

Format:

Project plan format and length:

The documentation describing your analysis and test plan should be written using Microsoft Word. The font size should be 12 point. The page margins should be 1 inch. The paragraphs should be formatted with double line or single line spacing. Any figures, tables, equations should be neatly labeled. All references should use APA style.

Final Project Grading:
This activity is awarded 30% of the total grade in the course. The project elements are assessed as follows:

Attributes / Value
Project Plan (Due in Week 7) / 10%
Project Final Delivery (12% design, 3% comments and 5% test plan) / 20%

Grading Rubric:

Attribute / (0-5) Points / (6-8) Points / (9-10) Points / Points
Project plan / - No or poorly described problem description
- No or poorly prepared project analysis
– project does not satisfy most of the requirements
/ - Good problem description
- The following topics are included but some coverage missing or is vague: What is the required output? What is the necessary input? How you will obtain the required output from the given input? Clearly describe variable names and definitions. Includes all necessary formulas and example calculations.
- Most requirements are satisfied / - Excellent problem description that goes beyond expected requirements
- Excellent analysis including clearly written discussion for the following questions and topics: What is the required output? What is the necessary input? How you will obtain the required output from the given input? Clearly describe variable names and definitions. Includes all necessary formulas and example calculations.
- All requirements are satisfied and student went beyond the requirements to an provide exemplary plan
Attribute / (0-6) Points / (7-10) Points / (11-12) Points / Points
Program Design / - Pooruse of modular design with most functionality found in one or two modules.
- Poor description of the fundamental tasks that your program must do to solve the problem with significant details missing
-Poor pseudocode of your overall design with minimal modularity and missing details
-Hierarchy chart missing, poorly designed or filled with inaccuracies.
- Poor or missing pseudocode for each module, subprogram and function
– Meets little to no project requirements / - Gooduse of modular design with separate functions and Subprograms but some modules should have been separated
- Good description of the fundamental tasks that your program must do to solve the problem but missing some details
-Goodpseudocode of your overall design including the Main module and the order of the module,subprogram and function calls but some minor efficiencies or missing functionality
-Hierarchy chart present but missing some minor details for the overall program
- Good pseudocode for each module, subprogram and function but with some details, accuracies, or efficiencies missing
– Meets most project requirements / - Excellent use of modular design with separate functions and Subprograms
-Excellent description of the fundamental tasks that your program must do to solve the problem
-Accurate and excellent pseudocode of your overall design including the Main module and the order of the module,subprogram and function calls
-Neat and accurate Hierarchy chart for the overall program
- Excellent detailed pseudocode for each module, subprogram and function.
– Meets and exceeds all project requirements
Attribute / (0-1) Points / (2) Points / (3) Points / Points
Comments / - None or rare comments found in pseudocode / - Good pseudocode comments with most major functionality commented / - Excellent and accurate pseudocode comments with all major functionality and most minor functionality commented
Attribute / (0-1) Points / (2-3) Points / (4-5) Points / Points
Test Plan / No or minimal test plan provided / Good test plan covering most major functionality and some minor functionality. Multiple Input and expected output provided for most modules / Excellent test plan covering all major functionality and most minor functionality. Multiple Input and expected output provided for most modules. Possible limitations and weaknesses discussed in the test plan and the application as a whole.