Final Project 4: final submission

Author
Affiliation

Jelmer Poelstra

Published

October 11, 2025



Overview

The final submission of your Final Project is due on December 12th and is worth 20 points.

Directions and grading

Submission expectations

  • Deadline: Friday Dec 12th at 11:59 pm
  • Submission: Submit your assignment by tagging @menukabh and @jelmerp in an Issue in your GitHub repo
Questions and advice

Don’t hesitate to contact the course instructors for questions about topics like:

  • Specific expectations for the final project that are unclear to you.
  • Whether you are on the right track in making some adjustments that I asked for after your progress report.
  • Advice on how to code or organize aspects of your project.

We’re happy to answer questions by e-mail or in a Zoom meeting!

Late submissions

Late submission may be accommodated depending on circumstances, but to request late submission, you must contact both instructors on or before Thursday. In case of late submissions with no advance notice, 4 points will be subtracted for each day the submission is late.

Academic integrity

Use of generative AI Tools (e.g. ChatGPT, Microsoft Copilot, Google Gemini) is permitted
Getting help on the assignment is not permitted
Collaborating, or completing the assignment with others, is not permitted
Copying or reusing previous work is not permitted
Open-book research for the assignment is permitted
APA Citations and/or formatting for this assignment are not required

Rubric

Category Points Earn all points if your project (examples given)…
Project organization 3
  • Has a clear and appropriate directory structure
  • Has informative and appropriate directory and file names
  • Does not mix data, scripts, and results in individual directories
Project background and documentation 3
  • Has a clear description of its background and goals
  • Has a clear description of how different scripts are used to achieve these goals
  • Uses tools and commands that are (by and large) appropriate to accomplish its goals
  • Where appropriate, indicates what is still a work-in-progress (and optionally future directions)
  • Properly uses Markdown files for documentation, including a top-level README.md that is rendered well on your GitHub repo’s front page.
Project reproducibility 4
  • Has a protocol that includes all steps in the workflow, which anybody with access to your repository, the raw data files, and OSC should be able to rerun
  • Has information for the instructor (or any other reader of the project!) about where at OSC to find the raw data files and other details needed to try to rerun the analyses
  • With the above pieces of information, allows the instructors to successfully rerun all scripts in your project
  • Uses containers (preferred) and/or OSC modules and/or Conda environments to run external software
Code quality 5
  • Has code that demonstrates an understanding of topics covered in the course
  • Uses extensive comments within scripts to document what is being done and why
  • Uses no absolute paths in scripts
  • Uses scripts that accept arguments where appropriate and minimize “hard-coding” of potentially variable things like input/output dirs, file names, and some software settings. Any hard-coded variables/constants that are present are clearly set at the top of scripts.
  • Has individual scripts that are not overly long and don’t do multiple unrelated things
  • Has no or only clearly annotated lines that are “commented out” in scripts
  • Uses shell scripts with proper set settings, and similar good practices as taught in the course
Slurm batch jobs 2
  • Has one or more scripts that are run as Slurm batch jobs at OSC
  • Uses appropriate sbatch options
  • Appropriately manages Slurm log files
Version control 3
  • Has Git commit messages that are informative
  • Has (at least reasonably) appropriate commits, e.g. individual Git commits don’t contain multiple completely unrelated edits
  • Has a single .gitignore file to make Git ignore files like large raw data files, and in most cases, results files

Detailed steps

The rubric above should give you a good idea about what you need to do. A final note you may want to include a file (e.g. submission_notes.md) or a section in your main README file that provides some additional information for the instructor to grade your project appropriately. For example, you may want to provide:

  • Provide additional instructions for the instructor to rerun your project
  • Alert the instructor to files in the repository that should be ignored

Good luck!!

Back to top