Implement your proposal and communicate your findings.

Table of contents

  1. Report
  2. Code
  3. Presentation


Submit a roughly 4–6 page report documenting your findings. Annotate and explain how your visualizations were produced and contribute to the narrative or analysis. Outline your report with at least the following heading elements. (You can introduce more headings.)

Title and authors
Proposal, updated accordingly.
Executive summary
List your research questions in a numbered list. After each research question, clearly state your answer. Save the details and justifications for later.
Proposal, updated accordingly.
Proposal, updated accordingly.
Proposal, updated accordingly.
Present and discuss your research results. Treat each research question separately. Focus on the results that are most interesting, surprising, or important. Discuss the consequences or implications.
Interpret the results. If the answers are unexpected, try to offer an explanation. An effective report not only presents the results, but provides an argument or interpretation based on the data analysis.
Visualize your results. In general, these should be generated programmatically as part of your project code. If you plotted by hand, explain why it was not possible to create the plot you wanted in Python.
Challenge goals
State the completed challenge goals. If the challenge goals were scaled back or expanded, explain why the task turned out differently initially estimated. If changes caused you to meet different challenge goals than proposed, be sure your new project challenge goals meets the requirements.
Work plan evaluation
Evaluate your proposed work plan. How accurate were your proposed work plan estimates? Why were your estimates close to reality or far from reality?
Describe how you tested your code. Did you use assert statements? Smaller data files? Submit your tests and any testing files along with your code.
State the other people and resources that you consulted during the project aside from the course staff and team members.

Submit the report as a document to Canvas.


Submit one or more Python scripts or Jupyter Notebooks providing implementation code and testing code. Follow the code quality guidelines. Code documentation should assume the programmer has already read your report, so you don’t need to repeat details from the report though it also doesn’t hurt to restate important ideas as they come up in the code. Most projects that meet two challenge goals will involve about 120 lines of code, inclusive of whitespace and documentation.

Submit documentation on how to run the code and reproduce the results. Either include the instructions at the top of the script/notebook or write a separate file. Explain how to setup the project, install libraries, download the datasets, and run the Python code in enough detail for another student to reproduce the results.

If your project code and documentation is all in an Ed Workspace, submitting the code is easy: just copy-paste the link in the Canvas submission. Otherwise, archive all your code in a zip file and upload the zip to Canvas.


Submit a video no longer than 5 minutes presenting a slide deck (or other tool) highlighting the project’s big ideas. Your slide deck should convey the following big ideas in no more than 10 slides.

Importantly, the video should be understandable to someone who has not read your report. All team members must present some meaningful aspect of the project during the video. Zoom is the easiest way to record the video with screenshare and team members. Since this is such a short video, don’t bother editing and just re-take the video. This might take a 5 or more takes—think of each take as practice for a live presentation. If team members are not able to meet synchronously, you can also edit-together shorts from each team member.