The final project git repository should contain all of the following minimal components:
- Jupyter notebook (like a paper, but with code showing analysis)
- See this Mastering Markdown guide for tips on formatting markdown cells with headers, links, images and equations. This markdown syntax can also be used to format your README.md file.
- The Jupyter notebook should have the following sections:
- Introduction
- Description of methods and data sources
- Results (including code, figures and descriptions)
- Conclusions
- Ideas for future work
- AI statement (see AI policy below)
- References
- README.md file describing:
- Steps needed to run the analysis code on another computer
- Location of data and acknowledgement of source
- Dependencies
- Location of data in repository, or how to access data
- Python modules
- A .py file (or files) that containing useful functions for analysis
Limited use of AI-assisted tools such as ChatGPT is allowed for this assignment, if properly documented and tested. All projects must how have an AI statement describing if and how AI tools were used in the project, as is the case for many scientific journals now.
If AI tools were used to develop any portion of code for analysis, the statement should specifically describe each portion of AI-generated analysis code. There should be documentation describing in detail how the code works, as well as how you reviewed and tested the code for accuracy. Examples of tests may be provided in a separate notebook if necessary. This is good practice for human-generated code as well.
AI tools may be used to check text for grammar and clarity. If used in this manner, this can be generally acknowledged in the AI statement without specifying each instance. AI tools may not be used to generate substantial portions of text.
AI tools may also be used to assist with purely cosmetic enhancements to figures to effectively display information in graphics. If used in this manner, this can be generally acknowledged in the AI statement without specifying each instance.
"Vibe coding" substantial portions of untested AI-generated code without a strong understanding what the code is doing is poor scientific practice. This approach can feel like progress at first, but often results in a maze of broken code when you want to modify something or adapt it for a new use case.
Use of open source code is allowed if properly acknowledged in accordance with the software's license.
- Git repository (see above)
- Presentation: 15 minutes + time for questions. Same sections as notebook except for code. References do not need to be in separate slide.
- Reproducibility – another person should be able to run your code, and understand how it works [10 points]
- Detailed readme file (see above) [4 points]
- Git repository and Jupyter notebook contain all necessary components (see above) [4 points]
- Git repository is organized and does not contain unnecessary files (hint: use a .gitignore file ) [2 points]
- Depth of scientific analysis [20 points]
- Raw data plotted to show variability in space and/or time [2 points]
- Visual comparisons show relationships between different variables [4 points]
- Calculations go beyond raw data (examples: quality control, subsets of data created, variables combined in model calculations) [8 points]
- Appropriate statistical analysis performed to address hypotheses (note: credit given for identifying correct approach, not statistical significance) [6 points]
- Presentation: Professional delivery, uses effective graphics, and does not use unnecessary text. [5 points]
- Completeness of description of the scientific question being investigated [5 points]
- Clarity of writing, logical progression of ideas, proper citation of outside references from peer-reviewed literature [5 points]
- Clarity and relevance of information presented in figures [5 points]