Skip to content

Commit 466a44f

Browse files
committed
Finalize Jupyter Book + TOC + notebook IDs
1 parent 7af1bb7 commit 466a44f

File tree

226 files changed

+17235
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

226 files changed

+17235
-1
lines changed

.binder/environment.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: comp-analysis-binder
2+
channels:
3+
- conda-forge
4+
- defaults
5+
dependencies:
6+
- python>=3.10
7+
- pip
8+
- pip:
9+
- -r requirements.txt

.devcontainer/devcontainer.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"name": "Computational Analysis Course",
3+
"image": "mcr.microsoft.com/devcontainers/python:3.11",
4+
"features": {
5+
"ghcr.io/devcontainers/features/common-utils:2": {}
6+
},
7+
"postCreateCommand": "pip install --upgrade pip && pip install -r requirements.txt",
8+
"customizations": {
9+
"vscode": {
10+
"settings": {
11+
"python.defaultInterpreterPath": "/usr/local/bin/python",
12+
"jupyter.askForKernelRestart": false
13+
},
14+
"extensions": [
15+
"ms-python.python",
16+
"ms-toolsai.jupyter",
17+
"github.vscode-pull-request-github"
18+
]
19+
}
20+
},
21+
"remoteUser": "vscode"
22+
}

.github/workflows/deploy-book.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
name: Deploy Jupyter Book
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build-deploy:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
with:
14+
fetch-depth: 0
15+
- name: Set up Python
16+
uses: actions/setup-python@v5
17+
with:
18+
python-version: '3.11'
19+
- name: Install deps
20+
run: |
21+
python -m pip install --upgrade pip
22+
pip install -r requirements.txt
23+
- name: Build Jupyter Book
24+
run: |
25+
jupyter-book build book
26+
- name: Deploy to GitHub Pages
27+
uses: peaceiris/actions-gh-pages@v3
28+
with:
29+
github_token: ${{ secrets.GITHUB_TOKEN }}
30+
publish_dir: ./book/_build/html
31+
publish_branch: gh-pages

.vscode/settings.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"python.analysis.typeCheckingMode": "basic",
3+
"jupyter.jupyterServerType": "local",
4+
"editor.rulers": [
5+
88
6+
]
7+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.PHONY: book clean
2+
BOOK?=book
3+
JB:=$(shell python -c 'import sysconfig, os; print(os.path.join(sysconfig.get_path("scripts"), "jupyter-book"))')
4+
book:
5+
"$(JB)" build $(BOOK)
6+
clean:
7+
rm -rf $(BOOK)/_build

README.md

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,78 @@
1-
# computational-analysis-course
1+
# Computational Analysis (Undergraduate Level)
2+
3+
A complete, self-contained course for undergraduate **Computational Analysis** using Python.
4+
Designed to run seamlessly in **GitHub Codespaces**, locally, or via Binder.
5+
6+
## 🔰 Audience & Prereqs
7+
- Undergraduates in engineering / data science / applied math.
8+
- Comfortable with calculus, linear algebra, and basic Python (variables, loops, functions).
9+
10+
## 🎯 Learning Outcomes
11+
By the end of this course, you will be able to:
12+
- Use Python (NumPy, Pandas) for numerical computation and data analysis.
13+
- Implement and analyze simple numerical methods (root-finding, linear algebra, ODE/PDE basics).
14+
- Build and evaluate basic ML models (linear regression) for empirical modeling.
15+
- Create clear visualizations with Matplotlib.
16+
- Practice reproducible, documented, version-controlled computational workflows (Jupyter Book).
17+
18+
## 🗂 Repository Layout
19+
```
20+
.
21+
├─ book/ # Jupyter Book source
22+
│ ├─ _config.yml
23+
│ ├─ _toc.yml
24+
│ └─ content/ # Markdown pages & notebook references
25+
├─ notebooks/ # Jupyter notebooks (hands-on labs)
26+
│ ├─ 01_python_basics.ipynb
27+
│ ├─ 02_numpy_linear_algebra.ipynb
28+
│ ├─ 03_pandas_data_analysis.ipynb
29+
│ ├─ 04_matplotlib_visualization.ipynb
30+
│ ├─ 05_optimization_gradient_descent.ipynb
31+
│ ├─ 06_cfd_1d_heat_equation.ipynb
32+
│ └─ 07_ml_linear_regression_sklearn.ipynb
33+
├─ data/
34+
│ └─ air_quality_sample.csv
35+
├─ courseutils/ # Small helper package used by notebooks
36+
│ ├─ __init__.py
37+
│ └─ plotting.py
38+
├─ .devcontainer/
39+
│ └─ devcontainer.json # Codespaces config
40+
├─ .github/workflows/
41+
│ └─ deploy-book.yml # Build & publish Jupyter Book to GitHub Pages
42+
├─ .vscode/settings.json
43+
├─ .binder/environment.yml # Binder/Hub environment (optional)
44+
├─ environment.yml # Conda-style env (optional)
45+
├─ requirements.txt # pip deps
46+
├─ syllabus.md # Detailed syllabus & weekly plan
47+
├─ LICENSE
48+
└─ Makefile # Quality-of-life commands
49+
```
50+
51+
## 🚀 Quickstart (Codespaces)
52+
1. Click **Code → Create codespace on main**.
53+
2. After the container builds, the post-create step installs dependencies.
54+
3. Open any notebook in `notebooks/` and run.
55+
4. To build the Jupyter Book site locally:
56+
```bash
57+
make book
58+
```
59+
60+
## 📦 Local Install
61+
```bash
62+
python -m venv .venv
63+
source .venv/bin/activate # Windows: .venv\Scripts\activate
64+
pip install -r requirements.txt
65+
jupyter lab
66+
```
67+
68+
## 🌐 Build & Publish the Course Website
69+
- Push to GitHub; the **deploy-book** workflow builds & deploys the book to **gh-pages**.
70+
- Enable GitHub Pages in repo settings: Source = `Deploy from a branch` → Branch = `gh-pages`.
71+
72+
## 🧑‍🏫 Instructor Notes
73+
- The course is modular; assign notebooks as labs or homework.
74+
- Use `syllabus.md` for a week-by-week plan with outcomes and assessments.
75+
- Keep datasets small in-repo; link to larger data if needed.
76+
77+
## 🔗 License
78+
MIT — see `LICENSE`.

_build/logs/myst.build.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"input": {
3+
"files": [
4+
"book"
5+
],
6+
"opts": {
7+
"execute": false,
8+
"pdf": false,
9+
"tex": false,
10+
"typst": false,
11+
"docx": false,
12+
"md": false,
13+
"xml": false,
14+
"meca": false,
15+
"cff": false,
16+
"site": false,
17+
"html": false,
18+
"all": false,
19+
"doiBib": false,
20+
"watch": false,
21+
"force": false,
22+
"checkLinks": false,
23+
"strict": false,
24+
"ci": false,
25+
"maxSizeWebp": 1572864,
26+
"keepHost": false
27+
}
28+
},
29+
"exports": []
30+
}
3.77 KB
Binary file not shown.
3.58 KB
Binary file not shown.

0 commit comments

Comments
 (0)