A13-Project Design and Prototype

Table of Contents


  • Write down your Final Project Design
  • Get a prototype of your Final Project working
  • Demo your prototype to your Instructor

Academic Honesty

Read the Scholastic Honesty Policy and Assignment Integrity policies of the syllabus. Here are some clarifications for this particular assignment:

  • You are expected to work alone on this project to show what you have learned about C++.
  • You may not give a copy of your code to another person until after the due date for the project.
  • You may not look at another person's code until after the due date for the project.
  • You may get help from people, such as tutors, if you get stuck, but only if they do not show or tell you the code to type.
  • Do not copy or modify code from the internet or other sources without attribution. Copying code snippets from the instructor's lesson examples without attribution is allowed.


  1. Make sure you have completed the exercises from lesson 13.
  2. Complete the Review Exercises in CodeLab 13. These exercises will help prepare you for the problem-solving programs and should be completed first.

Project Specifications

The following describes the requirements for the projects for which you will be graded.

Project 1: Design Document (10 pts)

  1. Read the final specifications before starting your design.
  2. Write a document with a length of 1-2 pages. (Sample document )
  3. Either hand-write the document or use a computer tool.
  4. Include all of these parts in the document:
    1. Program Description: What will your program do? Describe the things that your program will do in some detail.
    2. User Interface: What does the user interface look like? What is displayed when your program starts up? What is displayed as your program runs? What is displayed at the end of your program? You do not need to show every planned output of your program.
    3. C++ Class: What is at least one of the C++ classes that you will use in your program? Write out the full class definition with comments on non-trivial methods.
    4. Logic and Flow: What is the logic flow of your program? Starting from main(), what other functions will be called and in what sequence? Use a flow chart, pseudocode, or something similar.
    5. File System: What information will your program read from and write to files.
  5. Turn in a paper copy of your design document to me Wednesday class, 11/30, not your original document.

Project 2: Working Prototype (10 pts)

  1. Build a working prototype of your project that performs some preliminary function that your Final Project will do including:
    1. Program compiles: without error though warnings are allowed
    2. Class definition: with at least three functions implemented (defined)
    3. Non-member function definitions: three or more non-member functions defined, with stubs allowed.
    4. User interface: partial implementation of what the user will see and can enter

    For example, you may decide to build a friend list to keep track of your friend's phone numbers and other information. You would need to define your Friend class and implement at least three member functions including constructors. In addition, you would need to write the definitions for three non-member functions to manage your list of friends. The non-member functions may be empty or return a dummy value and leave the calculations for later. Also, you would need to write code that shows the user some information and allows them to enter some data. All of this code would need to compile when demonstrated.

  2. Demonstrate your working prototype to the instructor - timing to be determined.

Tutorial Lab

In preparation for next weeks lessons, complete the following:

  1. Read the assigned reading in the textbook
  2. Complete the Tutorial Exercises in CodeLab 13 before the specified due date.

    Refer to the assigned reading for the next lesson to help you understand the problems. Also, you may use the online lecture notes for more information as the notes become available. Look at solutions if you miss your first few attempts and are stuck by clicking the "Solution" tab.

Grading Criteria

The instructor will evaluate your assignment using the following criteria. Thus you should check your assignment against these criteria to maximize your score.

Each criteria represents a specific achievement of your assignment and has a scoring guide. The scoring guide explains the possible scores you can receive. Some scoring guides have a list of indicators. These indicators are a sign of meeting, or a symptom of not meeting, the specific criterion. Note that a single indicator may not always be reliable or appropriate in a given context. However, as a group, they show the condition of meeting the criterion.

For information on grading policies, including interpretation of scores, see the syllabus.

Lesson Exercises

  • 2: All lesson exercises attempted and turned in
  • 1: Some lesson exercises completed and turned in
  • 0: No lesson exercises completed or turned in

Design Document (10)

Start with 10 points and the instructor will subtract points for not meeting the following criteria.

  • -2: Proposal is not well organized with headings and your name
  • -2: Missing description of what the program will do
  • -2: Missing description of the user interface
  • -2: Missing class design
  • -2: Missing description of program logic and flow
  • -2: Missing description of data read from and written to files

Working Prototype (10)

Start with 10 points and the instructor will subtract points for not meeting the following criteria.

  • -4: Does not compile
  • -4: Class definition not implemented
  • -3: Missing non-member functions
    • -1: Missing comments for non-trivial methods
  • -3: Missing non-member functions
    • -1: Missing comments for non-trivial methods
  • -3: Missing any user interface
    • -2: Missing any output to the user
    • -2: Missing any input from the user
  • -10: Not demonstrated to the instructor at the specified time

CodeLab and Other Tutorial Exercises

Number completed correctly / number exercises * 8 and rounded up to the nearest integer.

Total possible: 30, plus extra credit


Submit your assignment to Canvas, in the assignment folder A13-Project Design and Prototype, following the instructions for submitting homework. Include the following items for grading:

  1. All the exercise files from Lesson 13
  2. Project prototype source code (*.cpp) files.
  3. In addition, all students bring a paper copy of your project design to class to turn in to the instructor.

Most of the assignment will be graded in class on the day it is due.

Last Updated: Mon Nov 12 13:22:53 PST 2018