Assignments
7 homeworks · 2 quizzes · 1 final project · 1 extra credit
This page describes the various assignments you’ll complete in this class. See the Syllabus for information about how each assignment score (homeworks, quizzes, final project, extra credit) will be weighted when determining your final course letter grade, and the grace period policy.
Homeworks
In general, each homework assignment builds on skills from the class that precedes it and/or from readings I’ve assigned. I won’t be asking you to learn something wholly new without prior preparation, though there may be opportunities to stretch your skills. Every homework will live in one private repository (AKA “repo”) that you will create with guidance in Class 1.
| HW | Due | What it asks |
|---|---|---|
| HW1 | Mon Sep 21, 11:59 PM (before Class 3) | Extend the original Stroop task’s Builder skeleton; add a routine or a condition of your own. |
| HW2 | Mon Oct 5, 11:59 PM (before Class 5) | Add accuracy-scoring and dynamic feedback logic to your own extended task from HW1, and submit it so it runs on any computer. |
| HW3 | Mon Oct 26, 11:59 PM (before Class 8) | Full dplyr wrangling script on all of your real Class 5 pilot files — Class 7’s read-in loop, then clean condition-level and per-participant summary tables (mean RT from correct trials only). |
| HW4 | Mon Nov 2, 11:59 PM (before Class 9) | Clean and analyze an individually-assigned, messy dataset — missing values, outliers, and mixed text/number entries. |
| HW5 | Mon Nov 9, 11:59 PM (no-class week) | Finish the apaquarto Method/Results draft on your pilot data started in Class 9 (combining HW3’s wrangling and the Class 8 plot), and set up your final-project repo folders. |
| HW6 | Mon Nov 23, 11:59 PM (before Class 11) | Simulate one hypothetical sample of participants for your own pilot design, wrangle it into a summary table, and plot it — a direct rehearsal for HW7. |
| HW7 | Mon Dec 7, 11:59 PM (before Class 13) | Simulate, wrangle, and visualize data for your own final-project design using skills you’ve practiced before this point. |
Updated Sat Sep 26: HW2’s instructions now ask you to submit your task so it runs on any computer (Run mode, your conditions file next to your .psyexp, and every file your task needs uploaded), and the PSY 0210 script template is simpler. The updated files are already in your repo’s hw2/ folder.
PSY 0210 extensions
Every homework carries an additional graduate-level component built to deepen that week’s skill. Full instructions live in each homework’s own README in your repo.
- HW1: in addition to your path (a)-or-(b) choice, add a third level of your manipulated factor (with enough rows to meet the 18-observations rule), plus a few sentences on what the third level buys you.
- HW2: write a standalone Python script — working from a provided fill-in-the-blank scaffold — that reads your conditions spreadsheet and confirms every condition yields at least 18 observations once repetitions are applied (including the level you added in HW1).
- HW3: your required RT table already uses correct trials only; also compute the all-trials version, and make a reasoned case for which belongs in a report.
- HW4: add a short data-cleaning memo documenting each cleaning decision and why, so someone else could retrace your choices.
- HW5: add a brief Discussion paragraph (beyond Method/Results) interpreting your result and naming at least one limitation of your design, and cite PsychoPy in your Method using a
references.bibfile with one provided entry. - HW6: run your simulation at two sample sizes (e.g., N = 20 and N = 200), plot both, and say in a sentence or two what changed and why.
- HW7: simulate null results for your final-project design (equal means for the levels of your factor) alongside the real one, and say whether you could tell the two plots apart by eye.
PSY 0110 students are welcome to attempt any of the above extensions for practice. Doing so would stretch your skills, which would be nice if the shared assignments feel too basic. However, the extensions are neither required nor graded for PSY 0110, and the shared portion of every homework above is graded identically for both cohorts.
Submitting Your Homework
Each hwN/ folder in your repo will have its own README (what’s due) and .qmd template, plus — for most homeworks — an automated structural check that runs on every push: a green check or red X in the repo’s Actions tab. A red X means something’s structurally wrong — a missing file, a script that errors, a renamed object it expected to find — and it comes with a message telling you what. If you get the red X, make the necessary corrections and resubmit before the due date.
From HW3 on — once you’re working in RStudio — render your .qmd to HTML and push the rendered file along with it. The render is part of the submission: a document that runs top-to-bottom on a fresh render is the whole point of reproducible work, and it’s the habit Classes 9–13 build on.
Pushing your work to your repo is submitting; there is nothing separate to upload to Canvas. Every homework is due by 11:59 PM on the Monday night before the class it’s listed under (classes meet Tuesdays); whatever is in your repo by the deadline is what gets graded. Aside from the quizzes, which occur in class, the optional extra credit is the only assignment that’s due on a different day of the week (Wednesday, Dec 16 by 11:59 PM, to be exact).
Ultimately, I’ll review your submissions and assign one of three point values in Canvas based on three criteria, namely the extent to which the submission is complete, thoughtful, and accurate. Complete means you fulfilled all requirements of the assignment. Thoughtful means your written responses reflect an effort to communicate clearly and your code is well-commented. Accurate means your inferences and code are correct. You’ll earn 1 point if your work satisfies all three criteria, 0.5 points if your work satisfies two of the three criteria, and 0 points if your work satisfies less than two of the three criteria.
Quizzes
Two short (20-minute), closed-book quizzes, taken in class as Canvas quizzes on the lab computers. Each quiz has 10 multiple-choice questions plus one short code-commenting question: you’ll write a one-line comment, in your own words, explaining what a marked line of code does (Python code on Quiz 1, R code on Quiz 2 — the same skill addressed by the homework rubric’s thoughtful criterion).
Quiz 1 — start of Class 6
Covers Classes 1–5: Python vocabulary from the readings, plus PsychoPy Builder mechanics practiced together in class.
Quiz 2 — start of Class 10
Covers Classes 6–9: RStudio and tidyverse basics (including the RStudio Git pane), dplyr wrangling, ggplot2 visualization, and reproducible reporting with Quarto/apaquarto.
After-the-fact make-up quizzes are given only for documented illness or emergencies; if you know about a conflict in advance, contact me before the quiz date. If you receive accommodations through the StAAR Center, please share your documentation with me well in advance so we can make a quiz plan, if applicable.
The Final Project
An original, two-condition PsychoPy experiment:
- 1 manipulated factor, exactly 2 levels
- Up to 2 dependent variables
- Minimum 18 observations per level
- Genuinely your own design, not just a rehash of the original Stroop task
Unlike the original Stroop task, your final project’s analysis data is simulated, not collected from real participants. Although Class 12 includes one short in-class debugging pilot with a partner to confirm your task runs, nothing from it is kept or analyzed.
Class 11 (Design & Pitch): design and pitch your idea; leave with a written plan, not a started file. Class 12 (Build & Debug Pilot): build your task, then a short in-class debugging pilot with a partner. Between classes (HW7): simulate, wrangle, and visualize data for your own design. Class 13 (Report & Finale): finalize your apaquarto report, make your repo publication-ready, and present your favorite visualization. (Making your work actually public is optional and ungraded — see the Publication criterion below.) After Class 13 but before Dec 14: replace your repo’s template README with a short project README of your own (a fill-in skeleton is on the Class 13 page).
Due date for all final project components: Mon Dec 14 by 11:59 PM. The project is designed to be finished in Class 13 (Dec 8), thus the Dec 14 due date is not an invitation to delay the work! However, you will have until this date to polish it; the usual 48-hour grace period applies as well (see the Syllabus).
Final Project Grading
The final project is graded out of 40 points total in Canvas, 20 for the task, 15 for the report, and 5 for publication. I’ll assign points based on what’s in your repo by the Mon Dec 14, 11:59 PM due date. The in-class pitch (Class 11), debugging pilot (Class 12), and finale presentation (Class 13) count toward participation like every other in-class activity, not toward the project grade.
I’ll evaluate final projects using the same three criteria as homeworks — complete, thoughtful, accurate:
- Task. Complete: your experiment runs start to finish with 1 manipulated factor, 2 levels, at least 18 observations per level, and up to 2 dependent variables. Thoughtful: a design genuinely your own, with commented code components. Accurate: your conditions file and scoring logic actually implement your written design plan from Class 11.
- Report. Complete: an apaquarto document that renders to PDF with all required sections and at least one figure. Thoughtful: clear prose, with every reported number computed inline rather than typed by hand. Accurate: the numbers match your simulated data, reported descriptively.
- Publication. Complete: your repo is publication-ready by the due date —
task/,data/, andanalysis/populated, and the template README replaced by your own project README. Thoughtful: a clearly written README and a tidy repo with no stray files, and no real pilot data anywhere. Accurate: the README describes what’s actually in the repo, the folders hold what it says, and the data it names is the data your report uses.
If you’d like your project to be public when all is said and done, feel free to publish a copy from your own GitHub account at the end of the semester: see the Publishing Your Repository tab on the Resources page. Making your repo public is entirely optional.
Participation
Participation will be assessed based on the time we all spend together in class. You’ll earn full credit for engaging meaningfully and completing in-class activities and/or reflections, whether or not your code runs perfectly by the end of the period. You can assume, unless I tell you otherwise, that you’re earning full credit every time you attend class.
There are 13 class periods and you should attend them all. Missing one 2.5-hour class is missing a full week of class so attend every time! On the rare occasion when you must miss class (due to, e.g., illness, unavoidable conflict, mental health), please email me in advance so I know not to expect you. To earn full participation points, you must both (a) attend at least 10 of the 13 classes — this is a hard minimum, regardless of reasons for missing, and (b) email me in advance about any class you do miss, though emailing me in advance doesn’t count as attendance.
Again, you should attend every class unless something unavoidable prevents you from doing so! If you have to miss more than one class this semester, I’ll want to have a conversation with you to figure out what resources you may need to navigate impediments to engagement.
Extra Credit
One optional extra-credit assignment will be available in your repo, to be completed at the end of the semester. It’s worth a small bonus added to your course total (see the Syllabus’s Grading Weights section) and is entirely optional; there’s no penalty for skipping it. Due Wednesday, Dec 16 (the first day of finals) by 11:59 PM.