Course: Linear Algebra and Analytic Geometry (TSIW, ESMAD -- IPP)
Instructor: Diogo Ribeiro (dfr@esmad.ipp.pt, ORCID: 0009-0001-2022-7072)
Seven practical assignments covering matrices, determinants, linear systems, and analytic geometry, with a Python reference implementation and a TypeScript port.
Repository layout:
packages/python: Python library (linalg_utils) and tests.packages/js: TypeScript port and tests.assignments: Assignment statements and starter files.assignments/ASSIGNMENTS.tex: Full assignment specification (2025/2026).assignments/submissions: Submission templates and grading rubric.exercises/solutions: Assignment-aligned exercise and solution notebooks.notebooks: Lesson notebooks.scripts: Demo scripts to regenerate figures inassets/figures.shared/fixtures: Cross-language fixtures (JSON) for parity testing.
- Python 3.11+
- Poetry
- Node.js 20+ (for the TypeScript port)
git clone https://github.com/diogoribeiro7/linear-algebra-with-python
cd linear-algebra-with-python/packages/python
poetry installcd packages/js
yarn installYarn is used for the TypeScript package (Berry/PnP by default).
-- | ----------------------------------------- | --------------------- | ------------ A1 | Matrices: Construction and Classification | Matrices | Introductory A2 | Matrix Operations and Property Verification | Operations, Transpose | Introductory A3 | Determinants and Invertibility | Determinants, Inverse | Intermediate A4 | Linear Systems: Gauss and Classification | Gaussian Elimination | Intermediate A5 | Cramer and LU Decomposition | Cramer, LU | Intermediate A6 | Analytic Geometry: Lines and Planes | Analytic Geometry | Intermediate A7 | Surfaces of Revolution | Surfaces | Intermediate
cd packages/python
poetry run python ../../assignments/01_matrizes_tipos/matrizes_tipos.pycd packages/python
poetry run python ../../scripts/run_all_demos.pycd packages/python
poetry run pytestcd packages/js
yarn testOfficial PR-based submissions use the following format:
- Target branch:
develop - Source branch example:
40250001-A01 - PR title example:
Submission 40250001 --- A01 - Submission path example:
assignments/submissions/40250001/01/ - Supported assignments in automated submission control:
A01toA06only
Each submission folder must contain:
README.mdreflexao.md- Exactly one implementation track:
python/with at least one file- or
javascript/with at least one file
assignments/07_superficies_revolucao remains available as teaching material, but A07 is outside the submission-control workflow.
MIT.
Diogo Ribeiro -- ORCID: https://orcid.org/0009-0001-2022-7072