Homework
Weekly assignments, each a self-contained piece of the semester’s investigation using that week’s tools. Each one posts here after class and is due a week later; the exact dates are in the table.
| HW | Out | Due | Instructions | Solution |
|---|---|---|---|---|
| 1 | Fri Sep 11 | Fri Sep 18, 11:59 pm | How bad was the air? | posted on Canvas after the due date |
How it works
- Starters live in a private repository per student in the course’s GitHub organization. Access instructions are on Canvas, not here.
- Submit by committing to that repository: browser upload for HW1 to HW3, git from HW4 on. The commit timestamp is the submission time.
- Solutions are posted on Canvas, under Files, once the due date has passed. They are complete projects, in the same folder layout you were asked to produce, so you can put yours beside it.
- Late work is not accepted, and your lowest homework score is dropped. Documented emergencies: talk to me.
- AI tools are permitted by default, with disclosure, except where an assignment says otherwise. HW1 says otherwise.
Rubric
Every assignment is graded on the same three dimensions.
9 points. Three dimensions, three points each. The grader opens your repository in a fresh R session, runs your master script from the top, and compares what it produces with the target.
Replicability (3 points)
| 3 | The code runs start to finish, without any edits, and produces the output. Paths are relative to the project root. Nothing depends on objects left over from an earlier session. |
| 2 | The code requires one minor edit to run: a stray absolute path, a folder it expected to exist, a library() call for something base R already does. |
| 1 | The code requires several edits to run, or runs with errors, or does not produce the output. |
| 0 | The code does not run. |
Two things that cost points here every year. Absolute paths: read.csv("/Users/you/Desktop/...") works on your laptop and nowhere else; open the .Rproj and use "data/...". Session leftovers: a script that works because x is still in your environment from twenty minutes ago is not a script that works. Restart R and source it before you upload. Every time.
Similarity (3 points)
| 3 | The output is virtually identical to the target. One has to really pay attention to see any difference. |
| 2 | The output is similar but has some clear differences from the target: an element missing, the wrong ordering, a scale that is not the one specified. |
| 1 | The output is clearly different from the target. |
| 0 | No output. |
Similarity is judged on what the output encodes, not on pixel-level matching. A slightly different font size is not a difference. A row missing from a table, or a monitor missing from a panel, is.
Coding (3 points)
| 3 | The code (1) has clear and logical sections, (2) has a clearly identified parameter section that can be modified to produce slightly different versions of the output, (3) is well annotated, and (4) is concise but spacious. |
| 2 | The code has at most one of the following: (1) no clear structure, (2) parameters hard-coded within the core of the script, (3) missing key annotations, (4) too dense or too verbose. |
| 1 | The code has more than one of those. |
| 0 | There is no code, or the code cannot perform the basic steps needed to generate the output. |
“A clearly identified parameter section” means the file names, the dates, the constants and the colours live together at the top of each script, named, and are used by name below. A number that means something typed in six places is six chances to change five of them.
AI use
Permitted by default, with a disclosure block, except where an assignment says otherwise. Undisclosed AI use is misrepresentation under the syllabus and is treated as an integrity violation, not as a grading matter.