A complete, self-contained course for undergraduate Computational Analysis using Python. Designed to run seamlessly in GitHub Codespaces, locally, or via Binder.
- Undergraduates in engineering / data science / applied math.
- Comfortable with calculus, linear algebra, and basic Python (variables, loops, functions).
By the end of this course, you will be able to:
- Use Python (NumPy, Pandas) for numerical computation and data analysis.
- Implement and analyze simple numerical methods (root-finding, linear algebra, ODE/PDE basics).
- Build and evaluate basic ML models (linear regression) for empirical modeling.
- Create clear visualizations with Matplotlib.
- Practice reproducible, documented, version-controlled computational workflows (Jupyter Book).
.
├─ book/ # Jupyter Book source
│ ├─ _config.yml
│ ├─ _toc.yml
│ └─ content/ # Markdown pages & notebook references
├─ notebooks/ # Jupyter notebooks (hands-on labs)
│ ├─ 01_python_basics.ipynb
│ ├─ 02_numpy_linear_algebra.ipynb
│ ├─ 03_pandas_data_analysis.ipynb
│ ├─ 04_matplotlib_visualization.ipynb
│ ├─ 05_optimization_gradient_descent.ipynb
│ ├─ 06_cfd_1d_heat_equation.ipynb
│ └─ 07_ml_linear_regression_sklearn.ipynb
├─ data/
│ └─ air_quality_sample.csv
├─ courseutils/ # Small helper package used by notebooks
│ ├─ __init__.py
│ └─ plotting.py
├─ .devcontainer/
│ └─ devcontainer.json # Codespaces config
├─ .github/workflows/
│ └─ deploy-book.yml # Build & publish Jupyter Book to GitHub Pages
├─ .vscode/settings.json
├─ .binder/environment.yml # Binder/Hub environment (optional)
├─ environment.yml # Conda-style env (optional)
├─ requirements.txt # pip deps
├─ syllabus.md # Detailed syllabus & weekly plan
├─ LICENSE
└─ Makefile # Quality-of-life commands
- Click Code → Create codespace on main.
- After the container builds, the post-create step installs dependencies.
- Open any notebook in
notebooks/and run. - To build the Jupyter Book site locally:
make book
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
jupyter lab- Push to GitHub; the deploy-book workflow builds & deploys the book to gh-pages.
- Enable GitHub Pages in repo settings: Source =
Deploy from a branch→ Branch =gh-pages.
- The course is modular; assign notebooks as labs or homework.
- Use
syllabus.mdfor a week-by-week plan with outcomes and assessments. - Keep datasets small in-repo; link to larger data if needed.
MIT — see LICENSE.