All assignments will be posted, submitted, and graded through GitHub Classrooms.
Assignment schedule
1 |
2023-10-03 |
2023-10-14 |
2 |
2023-10-17 |
2023-10-28 |
3 |
2023-10-31 |
2023-11-18 |
4 |
2023-11-21 |
2023-12-09 |
final |
2023-11-14 |
2023-12-15 |
Final assignment
Assignment expectations and grading
The rubric for each assignment will be provided when it is assigned so you know what to prioritize. You make work with up to 2 classmates, but must list your collaborators’ names on your assignment. You are encouraged to collaborate on code, but must respond to conceptual questions individually. All assignment dates will be posted in advance. Late assignments will receive 10% deduction per day, up to a maximum of 3 days. You may request a 48-hour extension if extenuating circumstances arise.
Information on grading can be found here or outlined below.
Core grading principles
Each assignment will provide specific details of the point breakdowns per question. However, we will follow the general principles below for all assignments.
Code must run
- 50% deduction on each section that doesn’t run
- 20% deduction from entire assignment for code that does not knit
Show your answer and thought process
- Logical steps and checks are needed for full credit.
- Mysterious or disorganized code without checks will not receive full credit.
Answer for yourself
- Although you are encouraged to collaborate with up to 2 classmates, you must provide your own answer to any non-code based questions.
- All members of your group will lose full credit for non-code based questions that are copy/pasted among group members.
Submit assignments through GitHub Classrooms
- All assignments should be submitted through GitHub Classrooms
- 5% deduction for assignments not submitted through GitHub Classrooms
- All students are granted one free pass
Assignment rubric
In addition to the core principles outlined above, each assignment will be scored for its adherence to the following coding best practices. The maximum deduction for assignments which meet all the core principles but do not follow best practices (“worst case” below) will be 20 points for the assignment. Partial deductions will be given for assignments in between the “best case” and “worst case”.
Best case [no deductions]
- Code is concise and easy to read
- No stray variables (e.g. variables that are defined and never used)
- Variable names make sense
- Generally follows the tidyverse style guide
- Code is commented thoroughly and clearly
- Every section has an overall explanation
- Every operation has an abbreviated explanation
- Any key steps or options are flagged in-line
- Code includes self-checks
- Each piece of analysis includes tests to inspect results
- Includes comments to explain each test
- Output is intuitive and well-explained
- Outputs are easy to understand
- Plots have appropriate axis and legend labels (e.g. don’t use variable names)
- Maps have scale bars and compasses
- Tables are output using formatting utilities (e.g. kable)
- Includes print statements clarifying output
- Does not output irrelevant information or full datasets
Worst case [maximum 20 point deduction]
- Code is challenging to understand
- Lots of stray variables
- Unintuitive variable names
- Does not adhere to tidyverse style guide
- Code is minimally or poorly commented
- Only some steps are commented
- Comments are uninformative (e.g. are redundant with code)
- Code includes few, if any, self-checks or are poorly formed
- Checks don’t perform desired test
- Checks don’t demonstrate critical thinking of the analysis at hand
- Outputs are difficult to interpret
- Outputs are difficult to understand
- Plots use automatic options (e.g. variable names as axis titles)
- Tables are output by default
- Outputs without print statement explanations
- Lots of extra outputs not relevant to the question
Answer keys