Final Project Grading Rubric
by Brad SolomonProject Proposal [30 points total]
You should not begin working on the final project until you have an approved proposal. Accordingly, you are allowed to resubmit the proposal with no penalty as many times as you would like until you have acheived a passing grade. When grading the proposal, I will be looking at the following criteria:
Leading Question [10 points]
-
Is there a leading question that will result in a specific answer or a specific deliverable such as a search tool, an analyzable or human-readable figure or table, or other concrete proof of completion?
-
Does the leading question properly use the proposed dataset?
-
Is the leading question answerable using the proposed algorithm? (It is okay if it is not the ‘optimal’ answer to the problem.)
Dataset [10 points]
-
Is the dataset well-described and is all information necessary to uniquely identify and find the data given?
-
Is the data correction step non-trivial and likely to both identify and fix all or most of the errors in the dataset?
-
Is the estimated storage efficiency for the dataset reasonably accurate given the description of the data structures used to store it?
Algorithm [5 points]
-
Are your proposed algorithms non-trivial?
-
Are your algorithms well-described with clear input / output and an estimate of efficiency in time and memory?
Timeline [5 points]
-
Does your timeline contain a complete-by date for all major algorithms and benchmarks like the mid-project check-in?
-
Is your timeline reasonable, setting a plausible pacing for each deliverable?
Development Log [30 points total]
From the time you pass your proposal until the submission date for the final project, you should write at least one development log entry a week. Points for the development log will be awarded based on the following criteria:
-
Is your development log consistently updated on a weekly basis? Missing one entry will result in some points lost, missing multiple will result in many more points lost.
-
Is your development log detailed? (See the description of the development log on the main page for the minimum details required by every entry.)
-
Is your development log truthful? If the development log is retroactively adjusted or clearly doesn’t match the code or results at the end of the semester, you will lose significant points for falsifying information.
Mid-Project Check-in [20 points total]
You must schedule a mid-project check-in and meet either in person or in Zoom to go over your current progress. The check-in meeting will be graded according to the following criteria:
-
Did you attend the check-in meeting as an active and knowledgeable participant?
-
Have you completed at least one task by the mid-project check-in? This
task
could be a complete algorithm, data processing (including corrections and storage in Python), or any other code block. It is not downloading a CSV file and stating you have gathered all the data you need for the project.
Things that will not be graded but will be discussed:
-
Do you have a task list of things to do to complete the project? Do you have a clear plan for completing all remaining tasks before the end of the semester? (Think of this as an update to your timeline)
-
Are there any major problems you have encountered while working on the project?
Final Project Deliverables [140 points total]
There are three deliverables for the final project.
Code Base
You must submit your code as a Github directory containing all necessary files to reproduce your project’s results. A breakdown of the grading rubric is as follows, with partial credit possible for matching some but not all of each criteria:
README [10 points]
Your project must include a README that clearly and succinctly describes the following:
-
The location of all major code, data, and results
-
The necessary commands to run the assignment, including specific instructions for how to define the input dataset and output location
-
The necessary commands to run any tests you have written as proof that your algorithm is working as intended, including specific details on what test datasets you are running on.
Code Organization [10 points]
Your code must be human-readable according to the following guidelines:
-
Are variables, functions, and classes named appropriately?
-
Are there organized comments describing the input, output, and intended behavior of each function?
-
Has all unnecessary or obsolete code been removed from the final submission? (It is not sufficient to comment out code and call it a day.)
Code Goals [60 points]
For full credit, your code must answer the question proposed in the project. It will be graded according to the following guidelines:
-
Is the code capable of running on the full-sized dataset?
-
Are the results described in the report and presentation reproducible?
Partial credit will be awarded for code bases that are only able to work on a subset of the target data or that answer a simpler but related query. (You can think of these points as asking the question: “Was my project ultimately successful at the task I set out to do?”)
Code Execution [10 points]
These points will be awarded based on the ease of use of the code base. For full credit your code must:
-
Be runnable using simple command line arguments
-
Contain a reasonably simple way to adjust or define the input dataset using file names
-
Contain a reasonably simple way to define the output file location (if applicable)
Code Efficiency [10 points]
These points will be awarded based on the efficiency of your implementation. For full credit your code must:
-
Roughly match the Big O efficiency in time and memory for the algorithms being implemented (using the proposed efficiency level when appropriate).
-
Contain no obvious inefficiencies such as accidentally duplicating the entire dataset
-
Be runnable using reasonable hardware resources and in reasonable time. Note that a project working on truly large-scale data can be exempt from this but should provide a test dataset which can be used to run the code in a reasonable time.
A written report [20 points]
The written report will be graded based on the following criteria:
-
Does the report describe the tests performed to prove that the algorithm / code base is working correctly?
-
Does the report accurately summarize the results of the project?
-
Does the report directly answer the leading question using the provided results?
A video presentation [20 points]
The video presentation will be graded based on the following criteria:
Presentation Content
-
Does the presentation describe the project’s goals?
-
Does the presentation summarize the development stages of the project, highlighting design decisions and how challenges were overcome?
-
Does the presentation include concluding thoughts that describe the results of the project?
-
If the project was ultimately unsuccessful, does the presentation explore what went wrong and what changes or adjustments would be made in the future?
Presentation Clarity
-
Is the presentation audio (and video when applicable) clear?
-
Does the presentation contain suitable visual aids such as slides, figures, or images? Scrolling through or pasting your code onto a slide is not a suitable visual aid.