Thanks for helping expand this learning repo! Follow the steps below so your changes stay consistent.
- poetry install and activate the venv: Poetry will create a compatible Python 3.12 environment.
- poetry run pytest -q verifies reference implementations and demos.
- poetry run ruff check . enforces styling rules.
- poetry run mypy src keeps type safety tight.
Run those commands before creating a patch, especially if you touched src/ or notebooks/.
- Keep lesson notebooks under notebooks/ in numerical order (e.g., 01_, 02_)..
- Each notebook should save its figures into assets/figures/ so scripts/demos can reuse them.
- To preview a notebook manually, run jupyter nbconvert --to html notebooks/05_qr_and_svd.ipynb or open it in your editor.
- If you add a new figure-generating step, include or update a script in scripts/ so CI can regenerate assets easily.
- Lessons belong in
notebooks/(lessons) orexercises/(student practice); add matchingsolutions/notebooks for each exercise set. - Every notebook should include a “check your work” section with expected shapes or invariants instead of full answers.
- Give new notebooks/figures a script under
scripts/so contributors can regenerate assets withpython scripts/demo_*.py.
- The
linalgpyCLI is exposed via Poetry; runpoetry run linalgpy --helpto explore subcommands (map, solve, lsq, etc.). - Keep CLI arguments simple (comma-separated lists for matrices/vectors) and document parser updates in README or docs/faq.md.
- Always run demo scripts from the repo root so figures are saved consistently into
assets/figures/.
poetry run pytest -qexercises the unit tests and demos.poetry run ruff check .enforces style conventions.poetry run mypy srckeeps the reference implementations typed.- After editing notebooks or scripts, rerun the relevant demos to ensure figures still match the assets.
- Keep
README.mdaligned with the learning path table, featured figures, CLI usage, and demo commands. - Update
docs/syllabus.mdanddocs/faq.mdwhenever you add lessons, exercises, or CLI helpers so contributors can find the story.
- File a GitHub issue for bugs or missing content; include commands to reproduce and any offending figure/notebook names.
- If a notebook or script fails to run, paste the error along with the asset path so reviewers can rerun the same steps.
- Target branch must be
develop. - Source branch format:
<student_number>-A<nn>(example:40250001-A01). - PR title format:
Submission <student_number> --- A<nn>(example:Submission 40250001 --- A01). - Submission files must stay under
assignments/submissions/<student_number>/<nn>/. - Required files in the submission folder:
README.mdandreflexao.md. - Include exactly one language track:
python/orjavascript/. - Automated submission control accepts only assignments
A01throughA06. - Assignment
A07can exist in teaching materials but is excluded from submission-control validation.