Skip to content

Contributing

Thank you for improving Berta Chapters! Community contributions make this curriculum better for everyone.


Ways to Contribute

1. Report Issues

Found a typo, error, or something unclear?

  • Open an issue on the relevant chapter's repository
  • Include: what you expected, what happened, your environment
  • Be specific and include screenshots/code when helpful
  • Tag appropriately (bug, enhancement, documentation)

2. Improve Content

Want to enhance a chapter?

  • Fork the chapter repository
  • Make improvements to notebooks, code, or explanations
  • Submit a pull request
  • We'll review and merge—you'll be credited!

What we love: Better explanations, corrected errors, additional examples, improved code comments, better visualizations, new exercises with solutions, corrected typos.

3. Create Exercises

  • Create new exercise problems with detailed solutions
  • Make exercises progressively harder
  • Ensure they match the chapter level
  • Submit as PRs to the exercises folder

4. Create Diagrams

  • Create SVG diagrams for concepts
  • Design architecture visualizations
  • Generate flowcharts and graphs
  • Ensure diagrams are clear and professional

5. Translate Content

  • Translate chapters to other languages
  • Create localized notebooks
  • Maintain consistency with the original
  • Document your translation in README

How to Contribute

Small Changes (typos, minor fixes)

  1. On the chapter's GitHub page, click the pencil icon on the file
  2. Make your changes in the browser
  3. Add a description and create a pull request

Larger Changes (new sections, exercises, code)

  1. Fork the repository
  2. Clone your fork:
git clone https://github.com/YOUR-USERNAME/berta-chapter-XX-topic.git
cd berta-chapter-XX-topic
  1. Create a branch:
git checkout -b your-feature-name
  1. Make changes, test them, then commit and push:
git add .
git commit -m "Clear description of what you changed"
git push origin your-feature-name
  1. Create a pull request on the original repository

Contribution Guidelines

Quality Standards

Type Standards
Code Must work (Python 3.10+), follow PEP 8, include docstrings
Notebooks Clear explanations, good output, progressive difficulty, executable
Documentation Clear, concise, proper markdown, spellchecked
Exercises Solvable by chapter-level learners, include solutions

We Love

  • Thoughtful, well-executed improvements
  • Contributors who test their changes
  • Clear commit messages and PR descriptions
  • Respect for the curriculum's philosophy (practical, accessible, rigorous)

We Avoid

  • Untested code
  • Marketing/spam
  • Off-topic changes
  • Poor formatting

When Adding a New Chapter (Maintainers)

When you add a new chapter to the curriculum, remember to:

  1. Homepage & stats — Run python scripts/generate_homepage_data.py and commit the updated docs/index.md so the homepage shows the new chapter and updated counts (or rely on CI to run it on deploy).
  2. Docs & nav — Add the chapter page and content links under docs/chapters/, and add the chapter to mkdocs.yml nav and to docs/chapters/index.md and docs/guides/curriculum.md / docs/guides/syllabus.md.
  3. Playground — Add 2–3 exercises for the new chapter in docs/playground.md:
  4. Add an <optgroup label="Chapter N: Title"> with <option value="chN_slug">Display Name</option> entries in the dropdown.
  5. Add the corresponding EXERCISES["chN_slug"] = "..." code strings in the script section (use built-in Python only: math, random, re, collections — no NumPy/nltk in the browser).
  6. Add rows to the Exercise Guide table at the bottom of the playground section.

This keeps the site and playground in sync with every new chapter.


Community Standards

  • Be respectful and inclusive
  • Welcome diverse perspectives
  • Assume good intent
  • Give constructive feedback
  • Focus on ideas, not personalities

Getting Help

  • Questions? Open a discussion
  • Not sure if your idea fits? Open an issue and ask
  • Need guidance? Ask in the comments on your PR

Created by Luigi Pascal Rondanini | Generated by Berta AI