Final Project


There will be a final project in this course which accounts for 30% of the overall course grade and which will be completed during the second half of the course


  • The project must be an application in the sciences or digital humanities that is either different from or a significant extension of things we did in class.
  • The project must use some kind of data. This can be as simples as a collection of poems expressed as text files or as complicated as a volumetric FRMI image of the brain.
  • The project must make use of at least one library. This can be either something we covered in the course or something else (e.g. pyrosetta)
  • The project must have a specific and testable/verifiable outcome. This can either be a falsifiable hypothesis you're testing on scientific data, or a plan for a visualization (for either humanities or science data) that will shed light on the data you're exploring. In the latter case, you must list at least 3 objectives of the visualization that highlight the value added.
  • The project must make use of Python programming paradigms from at least two of the four units in the class.


  • Students will learn to scope out and follow through on a medium sized, open ended project.
  • Students will practice reading through documentation of others' code and learning how to appropriately leverage work that others have already done.
  • Students will learn how to give and receive constructive feedback in a professional setting.

One of the biggest challenges will be to appropriately scope out your project under the time constraints. You want to have enough done that it's clear what's interesting about the problem, what's working, and what the future challenges are. In this way, you can think about your efforts this semester as the background work you might do to write a grant. Whatever you do, you don't want to over-engineer and get stuck without anything to show.

To get an idea about scoping, have a look at these excellent videos. Even though they're about video game design, much of the wisdom there applies to scientific projects as well. In sum, you can think about this project as finding a "thin slice" through an idea. You want to slice all the way through from start to finish, even if you have to really simplify some steps.


To save time in class, students will be required to make videos summarizing their work. Students may want to talk over a slide show and/or show some live demos of code they wrote. Feel free to upload this video to Microsoft Stream or to Youtube.

A good open source screen capture option for Windows is Captura. For Linux, I use RecordMyDesktop. There is also an option to record directly in Powerpoint while you're narrating the slides, and the final result can be uploaded directly to our Microsoft Stream. Click here for more information.

Once the videos are completed, each student will be randomly assigned 3-4 videos from other students in the course to watch and for which to provide quality critical feedback. In particular, whether positive or negative, your feedback must be both specific and actionable. This feedback will factor into the participation grade.
NOTE: I will of course also be watching each video carefully myself.

No formal writeup will be required for the projects, but students will be expected to submit a brief document summarizing their accomplishments in bullet form, providing a summary of completed code, and providing directions to run the code.

Grading Rubric

10%Initial project milestone: How close did you get to accomplishing the initial goals we established?
55%Technical refinement: How much did the project mature over the time you worked on it? How close are you to the final goal that you had? Did you meet all of the specifications?
20%Narrated video / slide: Graded for overall clarity, quality of figures/animations, and demonstration of what you did so that other students can understand it.
5%Code/Documentation/Mini Report: In lieu of a formal final report, you will submit a brief summary of what you accomplished, along with code and directions on how to use it. You can think of this as an extended README. You will be graded on the quality of your code and documentation (how easy is it for someone who doesn't know your project to run your code?).
10%Above and beyond: How much did you do to refine this project and to make it your own? Did you put any unique twists on it that weren't suggested by the instructor?