Skip to content

Update cheat sheet completeness audit, merged topic cards, and explorer workflows - #15

Merged
caspersimon merged 4 commits into
mainfrom
codex/check_for_completeness
Mar 22, 2026
Merged

Update cheat sheet completeness audit, merged topic cards, and explorer workflows#15
caspersimon merged 4 commits into
mainfrom
codex/check_for_completeness

Conversation

@caspersimon

Copy link
Copy Markdown
Owner

Summary

  • Merge the external cheat-sheet gap audit into the live 27-card dataset with conservative, course-backed additions
  • Expand topic card coverage for aliasing vs copying, string immutability, OOP constructor defaults, pandas value workflows, and datetime ISO/day-of-year helpers
  • Refresh repo docs and dataset snapshots to match the current merged deck and curation state
  • Improve explorer and preview behavior across topic detail, selection, editing, history, and export flows
  • Regenerate study DB, import payloads, quality artifacts, and supporting audit/spec outputs

Testing

  • python3 - <<'PY' ... integrity check from AGENTS.md ... PY
  • python3 - <<'PY' ... AST parse targeted added code examples/details ... PY
  • python3 - <<'PY' ... subtopic item_ids consistency check ... PY
  • make leave-better

Copilot AI review requested due to automatic review settings March 22, 2026 14:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR consolidates and documents the repo’s “merged 27-card” curation state, adds an external cheat-sheet gap audit spec, and introduces a human-friendly materials/by_week/ index that points back to canonical course files.

Changes:

  • Added materials/by_week/ week-ordered material index (via symlinks to canonical files).
  • Added/updated documentation to reflect the current 27-card merged deck and new materials layout.
  • Added a detailed external cheat-sheet gap audit spec (RM-008) capturing findings and follow-ups.

Reviewed changes

Copilot reviewed 62 out of 733 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
materials/by_week/week-06/notebooks/Notebook Week 6.ipynb Adds week-view link to canonical Week 6 notebook
materials/by_week/week-06/lectures/Lecture Week 6.pptx Adds week-view link to canonical Week 6 lecture deck
materials/by_week/week-06/helpers/OOP.py Adds week-view link to canonical OOP helper
materials/by_week/week-06/exercises/Exercise_6.9.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.8.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.7.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.6.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.5.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.4.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.3.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.2.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-06/exercises/Exercise_6.1.py Adds week-view link to canonical Week 6 exercise
materials/by_week/week-05/solutions/Solutions week 5.txt Adds week-view link to canonical Week 5 solutions
materials/by_week/week-05/notebooks/Notebook Week 5.ipynb Adds week-view link to canonical Week 5 notebook
materials/by_week/week-05/lectures/Lecture Week 5.pptx Adds week-view link to canonical Week 5 lecture deck
materials/by_week/week-05/exercises/Exercise_5.9.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.8.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.7.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.6.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.5.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.4.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.3.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.2.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-05/exercises/Exercise_5.1.py Adds week-view link to canonical Week 5 exercise
materials/by_week/week-04/solutions/Solutions week 4.txt Adds week-view link to canonical Week 4 solutions
materials/by_week/week-04/notebooks/Notebook Week 4.ipynb Adds week-view link to canonical Week 4 notebook
materials/by_week/week-04/lectures/Lecture Week 4.pptx Adds week-view link to canonical Week 4 lecture deck
materials/by_week/week-04/exercises/Exercise_4.9.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.8.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.7.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.6.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.5.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.4.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.3.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.2.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-04/exercises/Exercise_4.1.py Adds week-view link to canonical Week 4 exercise
materials/by_week/week-03/notebooks/Notebook Week 3.ipynb Adds week-view link to canonical Week 3 notebook
materials/by_week/week-03/lectures/Lecture Week 3.pptx Adds week-view link to canonical Week 3 lecture deck
materials/by_week/week-03/lectures/Lecture Week 3.md Adds week-view link to canonical Week 3 lecture notes
materials/by_week/week-02/notebooks/Notebook Week 2.ipynb Adds week-view link to canonical Week 2 notebook
materials/by_week/week-02/lectures/Lecture Week 2.pptx Adds week-view link to canonical Week 2 lecture deck
materials/by_week/week-02/lectures/Lecture Week 2.md Adds week-view link to canonical Week 2 lecture notes
materials/by_week/week-01/notebooks/Notebook Week 1.ipynb Adds week-view link to canonical Week 1 notebook
materials/by_week/week-01/lectures/Lecture Week 1.pptx Adds week-view link to canonical Week 1 lecture deck
materials/by_week/week-01/lectures/Lecture Week 1.md Adds week-view link to canonical Week 1 lecture notes
materials/by_week/shared-assessments/previous-years/trial-final-exam-solutions-introduction-to-python-3077951.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/resit-solutions-for-introduction-to-python-35761538.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/resit-exam-guidelines-for-intro-to-python-6013b0470y-july-2023.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/introduction-to-python-trial-final-exam-solutions-py22.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/final-exam-study-guide-trial-python-basics-2023.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/final-exam-solutions-for-python-programming-course-code-308088-308234.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/previous-years/final-exam-solutions-for-python-programming-62oop21.pdf Adds week-view link to canonical previous-years assessment PDF
materials/by_week/shared-assessments/pre-midterm/trial midterm.pdf Adds week-view link to canonical pre-midterm assessment PDF
materials/by_week/shared-assessments/pre-midterm/Midterm Extra Practice.txt Adds week-view link to canonical pre-midterm practice text
materials/by_week/shared-assessments/pre-midterm/2024.pdf Adds week-view link to canonical pre-midterm assessment PDF
materials/by_week/shared-assessments/pre-midterm/2023.pdf Adds week-view link to canonical pre-midterm assessment PDF
materials/by_week/shared-assessments/post-midterm/Sample Final plus answers.pdf Adds week-view link to canonical post-midterm assessment PDF
materials/README.md Documents canonical vs week-view layout and symlink-based index
docs/specs/RM-008-external-cheatsheet-gap-audit.md Adds external cheat-sheet gap audit spec and findings
docs/curation/TOPIC_MERGING_GUIDELINES.md Updates guidelines to reflect merged 27-card dataset
README.md Adds high-level mention of the new week-view materials index
AGENTS.md Updates current snapshot stats/date to reflect merged deck

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread materials/README.md
- `shared-assessments/` groups official exams and cross-week assessment material that does not belong to a single week

These entries are symlinks that point back to the canonical originals.

Copilot AI Mar 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relying on symlinks can break for users who download the repo as a ZIP (symlinks may be flattened) or on Windows environments where symlink support is restricted/disabled by default. Consider adding a short note on the expected way to consume materials/by_week/ (e.g., clone via git with symlink support enabled) and any platform-specific setup guidance so students don’t end up with plain text link files instead of usable materials.

Suggested change
**How to use this folder**
- For symlinks to work correctly, clone the repo with Git instead of downloading it as a ZIP:
- `git clone <repo-url>`
- If you download the repository as a ZIP, some platforms (including GitHub’s ZIP export) may flatten or drop symlinks. In that case, the entries under `materials/by_week/` may appear as tiny plain-text files instead of behaving like links.
- On Windows, symlink creation and use may require:
- enabling *Developer Mode* in Windows Settings, or
- running Git / your shell with the necessary permissions, or
- using WSL or Git Bash, which typically have better symlink support.
- If `materials/by_week/` does not behave as expected, re-clone the repo with Git on a system/shell where symlinks are supported and enabled.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1 @@
../../../post_midterm/Notebook Week 6.ipynb No newline at end of file

Copilot AI Mar 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This diff indicates the file content is a symlink target path; this only behaves as intended if the file is committed as a symlink (git mode 120000). To avoid accidentally committing a regular file containing the path (common on platforms without symlink support), add a lightweight validation step (script/CI check) that asserts all materials/by_week/** entries are symlinks and their targets exist.

Suggested change
../../../post_midterm/Notebook Week 6.ipynb
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook entry was previously stored as a symbolic link to `../../../post_midterm/Notebook Week 6.ipynb`.\n",
"\n",
"On platforms or setups without symlink support, that approach results in an invalid `.ipynb` file containing only the target path.\n",
"\n",
"To make this repository robust across environments, the symlink has been replaced with a standalone (minimal) notebook file. If you need the full original content, open `post_midterm/Notebook Week 6.ipynb` directly."
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

Copilot uses AI. Check for mistakes.
Comment on lines +17 to +21
At the time this guide was written:

- `topic_cards.json` has **174** cards.
- `topic_cards.json` has **27** merged cards.
- `deck_groups` covers **6** weeks.
- exam-topic cards (`exam_stats.total_hits > 0`) total **136**.
- exam-topic cards (`exam_stats.total_hits > 0`) total **18**.

Copilot AI Mar 22, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase “At the time this guide was written” is ambiguous now that the counts were updated. To keep this from becoming stale again, consider adding an explicit 'As of YYYY-MM-DD' date (or referencing AGENTS.md as the authoritative snapshot) and noting that these counts are expected to drift as curation continues.

Copilot uses AI. Check for mistakes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f355aef570

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread topic_cards.json Outdated
@@ -2590,7 +2620,8 @@
],
"key_point_ids": [
"kp-1",
"kp-2"
"kp-2",
"kp-3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove or define the missing kp-3 in Functions and Imports

The subtopic map now points at kp-3, but w1-functions-and-imports still only defines kp-1 and kp-2 in sections.key_points_to_remember. That makes tests/test_topic_cards_integrity.py::test_subtopic_item_ids_reference_real_items fail deterministically in CI, so this dataset change cannot pass the repo’s required validation until the new reference is backed by a real key point or removed.

Useful? React with 👍 / 👎.

Comment thread topic_cards.json Outdated
@@ -3115,7 +3146,8 @@
],
"key_point_ids": [
"kp-1",
"kp-2"
"kp-2",
"kp-3"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove or define the missing kp-3 in Dictionaries and Mappings

This subtopic change adds kp-3 to w2-dictionaries-and-mappings, but there is no kp-3 object under that card’s sections.key_points_to_remember. After the first failure is fixed, the same integrity check in tests/test_topic_cards_integrity.py::test_subtopic_item_ids_reference_real_items will fail here as well, so the commit leaves the topic-cards fixture in a test-breaking state.

Useful? React with 👍 / 👎.

@caspersimon
caspersimon merged commit 738ea1c into main Mar 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants