Code Documentation
This document provides an overview of important files and their respective roles within the project. It is grouped by functionality for clarity.
1. Project Configuration Files
requirements.txt:- Lists the Python dependencies for the project (e.g., NumPy, SciPy, PyTorch).
- Used to recreate the Python environment with
pipor other tools likeuv.
pixi.toml&pixi.lock:- Pixi configuration files for managing Python toolchains and virtual environments.
pixi.lockis used for version-locking dependencies.
.gitignore:- Specifies files and folders to be excluded from Git version control (e.g., logs, PDFs).
2. Python Scripts
Environment Management and Automation
tools/setup_environment.py:- A Python script to automate the setup of a development environment on fresh Ubuntu 24.04 systems.
- Handles system updates, installs Python and dependencies, and sets up JupyterLab and SageMath integration.
Task Management
tasks/(Folder):- Contains task-related Python scripts:
convert.py: Handles data or file conversion tasks.test.py: Implements automated testing.lint.py: Configures linting for code quality.watch.py: Monitors changes for continuous integration or build systems.
- Contains task-related Python scripts:
Project Implementations
projects/(Folder):- Houses implementations of key capstone projects:
pca_face_recognition/pca.py: Implements Principal Component Analysis (PCA) for face recognition.svd_image_compression/svd.py: Implements Singular Value Decomposition (SVD) for image compression.mini_transformer_attention/attention.py: Implements a scaled dot-product attention mechanism for Mini Transformer.
- Houses implementations of key capstone projects:
3. LaTeX and PDF Generation
preamble.tex:- Core LaTeX preamble for PDF rendering.
- Includes styles, packages, and formatting configuration.
- Generated Files:
- Logs, temporary files (e.g.,
*.aux,*.log), and PDFs are output during LaTeX compilation. - Ignore files in this group are specified in
.gitignore.
- Logs, temporary files (e.g.,
- Scripts:
auto_compile.py: Automates the LaTeX compilation process.
4. Documentation
- README.md:
- High-level project overview, including setup instructions, key features, and usage.
- authoring_process_documentation.md:
- Provides insights into the project’s authoring and contribution process.
- environment_setup.md:
- Step-by-step guide to installing and configuring the development environment manually (complementary to
setup_environment.py).
- Step-by-step guide to installing and configuring the development environment manually (complementary to
- SageMathIntegrationPlan.md:
- Documents the integration of SageMath with JupyterLab for enhanced functionality.
5. Notebooks and Notes
- notes/:
- Contains structured lecture notes for 12 modules, organized per week (e.g., ../notes/week1/lecture_notes.md).
labs/:- Jupyter notebooks for interactive exercises accompanying lecture notes.
projects/specific_project_notebooks/(if applicable):- Specialized notebooks for explaining projects interactively.
6. Debugging Logs
- Ignored Files:
*.log,*.aux,*.debugfiles represent debug artifacts and are not tracked in Git.
conversion_errors.log:- Document conversion error logs for debugging issues with Markdown-to-PDF conversion pipelines.
This structured documentation should help navigate and maintain the project’s files efficiently. For any updates, be sure to revise this document as needed.