Unformatted Attachment Preview
Due Date: submitted via gitkeeper by the end of your final exam period:
● Wed May 6 12:15pm
Points: The final project is 15% of your final grade in the course. The project will be graded out of 100
points. The project grade is the points for the Correctness Requirements minus the deductions for
The final project will be designed by you and the instructor. Every student will have a different project.
You have two different ways to come up with an idea:
● Look at the list of project ideas. You are expected to not just select an idea but come up with
the specifics and adjust/tweak to make it your project. Preferably you will choose a project
within your interests, field of study, or related to another course you have taken/are taking.
● Talk with a faculty member in your field of study or a current course to discuss how computer
science is used within their field and completely fill out the questions in the shared Google Doc.
If your idea is approved you will get up to +15 pts on the final project (see below).
See the shared Google Doc for more information. You will setup a 20-minute appointment with your
instructor from Monday Mar 30 to Friday Apr 3 to design the actual final project utilizing these ideas.
Upon designing the idea, the instructor will complete the shared Google Doc with the specific
requirements for your unique final project. These requirements are in addition to the requirements
Even though all final projects will be unique, they will all share many traits:
Must make good use of functions
Must write tests for all functions that have no user input, printing, plotting, or randomness
All user input must be validated and the program must never crash
Variables must be appropriately named
Must appropriately use loops and conditionals
Structured data types including lists-of-lists and/or dictionaries
All projects will also include one or more of the following:
● Plotting of data using matplotlib, possibly interactive plots
● Reading and/or writing of files
● Use of Twilio or libraries/technologies not discussed in class (+5 pts with approval of instructor)
Instructors will test the program and deduct points for incorrect solutions at their discretion.
Program solves the defined problem
Preparations and Qualitative Requirements
These are deductions from your Correctness Requirements score. Additionally, you are not allowed to use
features not covered in the class or your zyBook unless you discuss their use with the instructor before the
project is due. Doing so will result in major deductions at the discretion of the instructor.
Meeting with instructor ontime to discuss project definition
Program headers with purpose, course, and author specified
Variables have names that describe their purpose
Functions have names that describe their purpose
Program makes appropriate use of functions
Appropriate use of control statements (if, else, elif, for, while)
All user input is fully validated and program never crashes
Tests written for every function that doesn’t have user input, print, or
have randomness; tests must cover all the possible situations
Program code is easy to read and understand
Met with instructor in a timely manner to address problems
(i.e. before last week of project)
Up to +15 for custom idea (+5 for approved idea, +5 for distinct from any listed idea, +5 for idea in novel field)
Up to +5 for using Twillio or libraries/technologies not discussed in class (with approval of instructor)