Schedule‎ > ‎

Lab 23: Final Project


  • Write a program that demonstrates what you have learned about C++ and the Arduino.
  • Continue to learn how to code classes, objects, vectors and arrays
  • Start preparing for the final exam.

^ top

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++ and the Arduino.
  • You must breadboard the circuits yourself, placing all the parts and connecting all the wires.
  • 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.

^ top

Originality and Attribution

We encourage you to come up with an original idea for your project. However, you may extend projects and code from the textbook, lectures, or other sources. If you do start with an existing project, you must include novel elements and significantly modify and add to the project. As a rule of thumb, you must introduce at least one major new idea (or several minor ones) and at least double the size of the code.

For any ideas or code "borrowed", for academic purposes you must attribute the source such as by providing a URL to the web page. In addition, describe how you modified or added to the original idea.

If you have any questions about what is permissible or how to attribute ideas, please talk to the instructor.

^ to

Final Project GRADING: 60 pts total possible

  1. Compiles (5pts)
  2. Functionality (10pts)
  3. Used a Class (5 pts)
  4. Coding Style (5 pts)
  5. Report: (5 pts)
  6. Fritzing file (5pts)
  7. Presentation (10pts)
  8. Originality (10pts)
  9. Video (5pts)
Extra Credit:
a) Recursive call (2pts)
b) Vector of objects (2pts)
c) Sorting algorithm (2pts)
d) C++ feature not covered in course (2 pts)

^ top

Extra Credit

The following are worth extra credit points:

  1. Code a function that makes a recursive call. (2 points)
  2. Code a vector of objects from a class that you wrote and process the vector in a loop. (2 points)
  3. Implement a sorting algorithm besides bubble sort and apply it to a vector. Name your function sortXXX() where XXX can be anything. State the source of the algorithm in your "README.txt" file. (2 points)
  4. Use your imagination and code C++ features not covered in this course -- be sure to clearly identify your creative features and state in the Canvas comment area where you got the extra credit idea. (0 to 4 points)
    1. 0: Extra credit feature is trivial, does not work or source is not stated in README.txt
    2. 1: Extra credit is simple and works
    3. 2: Two simple extra credit features or one complex or imaginative use of a feature
    4. 3: Three simple features or one simple features and one complex or imaginative use of a feature
    5. 4: Four simple features, two complex or imaginative use of a feature, or some combination

Make certain that your Document clearly lists any extra credit attempted and the file and line number of the extra credit where appropriate. Without the file and line number I may not see the extra credit.

You could also make a note of the extra credit in your Canvas comment with your submission.

^ top

Project Report

The final report is a formal .pdf document which contains:

  • Brief introduction describing the purpose of your project and application
    • One paragraph is sufficient
  • A description of how to use your program
  • A list of the Project Specifications (See Final Project Grading above) and a brief description of how you met each requirement
    • If you do not list the specification, with a file and line number, then I will assume you did not meet the requirement
  • A list of any extra-credit features

As you can see, the report can be as short as 1-2 pages. Provide a paper copy of the report to the instructor on the last day of regular class.

^ top

Project Presentation

  • You are required to demonstrate your project on the assigned day
  • Make certain you upload your project to Canvas before class
  • Plan on keeping the presentation to 5 minutes or less.
  • You must make a video of your project.  This short video (1-2minutes) will show the highlights of your project,  including the breadboard,  your fritzing design and schematic,  as well as your code.  It will include an introduction by  yourself describing the project.  You can use this video on your online resume (LinkedIn) in the future to show what projects you have completed in College.  Be sure to have your camera focus on the different parts of the project so that they can be clearly seen. 

Suggested Presentation Flow

  1. State your name and your project's name.
  2. Briefly state your program's purpose.
  3. State what parts of your project are based upon tutorials, kits, labs, etc and which parts you contributed.  Be sure to mention anyone who helped you with your project.
  4. Demonstrate your program, explaining features as you go.

    Feel free to refer to or display your written report during the presentation. Show the file that your program reads from and writes to. Point out as many of the cool features as possible so we can all admire them.

  5. Show your video if you'd like.
  6. Summarize the project.

    When the demonstration is over, or your time is up, then quickly summarize the program's purpose. Then pause for about 10 seconds to give us a chance to applaud!

^ top

^ top

^ top

Edward Parrish,
Nov 20, 2015, 9:59 PM