Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ parts:
- caption: Join Us!
chapters:
- file: contributing/community
- file: contributing/new_course_checklist_timeline
- file: contributing/contributing
- file: contributing/roles
- file: contributing/contributing_guidelines
Expand Down
141 changes: 141 additions & 0 deletions contributing/new_course_checklist_timeline.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "06e8fcaf-9d9a-4584-9747-d7129c96b31c",
"metadata": {},
"source": [
"# New Course Checklist and Timeline\n",
"\n",
"## Timescales & Ordering\n",
"\n",
"- **12 weeks before launch** \n",
" - Hold initial logistics call with Programme Management to define learning objectives, course scope, and high-level timeline \n",
" - Confirm roles (Developer, Lead, Helper) and schedule regular check-ins \n",
"\n",
"- **10 weeks before launch** \n",
" - Developer begins drafting core materials (notebooks, slides, datasets, etc.) \n",
" - Create a feature branch on the [CfRR_Courses repo](https://github.com/coding-for-reproducible-research/CfRR_Courses) \n",
"\n",
"- **5 weeks before launch** \n",
" - Submit the first complete draft of materials for internal review \n",
" - Draft metadata in `programme_information` and `section_landing_page` (titles, descriptions, prerequisites) \n",
" - Create the “Where Is My Understanding?” quiz; confirm the quiz `JSON` files render via `JupyterQuiz`\n",
" - Conduct accessibility review (alt text, colour contrast, headings, tables) \n",
"\n",
"- **4 weeks before launch** \n",
" - Integrate content into `JupyterBook`; perform a dry-run build on staging \n",
" - Link all assets (images, data files, interactive widgets) \n",
" - Add course pages to `_toc.yml` \n",
" - If non-Python kernels are used, add them to the non-run list in `_config.yml` \n",
"\n",
"- **1 week before launch** \n",
" - Freeze content; perform final proofreading and complete “top-to-bottom” code execution \n",
" - Hold sign-off meeting with Programme Management \n",
" - Merge the feature branch and add the new course to the live website \n",
"\n",
"- **Post-launch (within 1 week)** \n",
" - Collect initial learner feedback via online form; log any issues as GitHub issues \n",
" - Plan the first update cycle based on participant feedback \n",
"\n",
"## Checklist\n",
"\n",
"### Logistics & Planning\n",
"- [ ] Schedule and hold **initial logistics call** with Programme Management and Delivery Team \n",
"- [ ] Define roles: Developer, Leader, Helper, Participant, Programme Management \n",
"- [ ] Open GitHub Issue for the new course; create feature branch \n",
"\n",
"### Content Creation & Structure\n",
"- [ ] Draft **course objectives** and detailed **learning objectives** for each section of the course\n",
"- [ ] Develop Jupyter notebooks (`.ipynb`) for Python or learnr tutorials (`.Rmd`) for R. Other types of course should be discussed with the central CfRR team\n",
"- [ ] Include slides or PDFs as needed; confirm static content links \n",
"\n",
"### Metadata & Site Integration\n",
"- [ ] Populate `programme_information` \n",
"- [ ] Populate `section_landing_page`\n",
"- [ ] Populate `where_is_my_understanding`\n",
"- [ ] Ensure no overlap or missing sections \n",
"\n",
"### Rendering & Functionality\n",
"- [ ] Build with Jupyter Book on the PR; confirm notebooks render without errors \n",
"- [ ] Test interactive plots, embedded HTML, and widgets \n",
"- [ ] Validate “Where Is My Understanding?” quiz (`display_quiz(\"path/to/quiz.json\")`) \n",
"\n",
"### Asset Linking & URL Encoding\n",
"- [ ] Verify all file paths (spaces, special characters) are realtive paths as used in JupyterBook\n",
"- [ ] Confirm images, data files, and HTML assets load correctly \n",
"\n",
"### Accessibility & Style\n",
"- [ ] Use descriptive headings (H1–H3) and labels \n",
"- [ ] Provide concise alt text for all images \n",
"- [ ] Check colour contrast with a Contrast Checker \n",
"- [ ] Avoid conveying information by colour alone; add text indicators, change shapes of points etc \n",
"- [ ] Use clear, simple language and accessible tables \n",
"\n",
"### Testing & QA\n",
"- [ ] Execute all notebooks end-to-end \n",
"- [ ] Peer-review code comments and markdown explanations \n",
"- [ ] Conduct cross-browser and device checks \n",
"\n",
"\n",
"## Highlighting Issues\n",
"\n",
"Auditing materials refreshes your understanding and helps improve accuracy. Types of issues include: \n",
"- Typographical errors \n",
"- Factual errors \n",
"- Content clarity and comprehension \n",
"- Formatting and layout issues \n",
"- Technical errors (broken links, non-functional elements) \n",
"- Cultural and bias concerns \n",
"- Outdated content \n",
"- Logical fallacies or reasoning errors \n",
"\n",
"## Ensuring Understanding\n",
"- **Multiple-Choice Questions** via JupyterQuiz (`display_quiz(\"path/to/quiz.json\")`) \n",
"- **Coding Exercises** with clear instructions, hints, and dropdown solutions (use Jupyter Book admonitions) \n",
"\n",
"## Language-Specific Standards\n",
"\n",
"### Python\n",
"- Use Jupyter notebooks (`.ipynb`) with well-commented code and markdown \n",
"- Include visualizations, interactive elements, and test notebooks end-to-end \n",
"\n",
"### R\n",
"- Use learnr tutorials (`.Rmd`) distributed via the `cfrr-r-tutorials` repo \n",
"- Define prerequisites, embed interactive exercises/quizzes, and self-contain data and instructions \n",
"\n",
"\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "64cc4c3d-6356-4d44-b804-63cffb851b44",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.19"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ matplotlib = "*"
scikit-learn = "*"
pyvis = "*"
plotly = "^6.0.0"
snowballstemmer = "2.2.0"

[build-system]
requires = ["poetry-core>=1.0.0"]
Expand Down
Loading