Skip to content

Releases: QuantEcon/lecture-python-programming.myst

publish-2025dec01c

01 Dec 05:12
3ec1101

Choose a tag to compare

What's Changed

  • Update quantecon-book-theme to 0.14.0 by @mmcky in #449

Full Changelog: publish-2025dec01b...publish-2025dec01c

publish-2025dec01b

30 Nov 23:40
158090f

Choose a tag to compare

What's Changed

  • Update GPU admonition to match jstac's text by @mmcky in #448

Full Changelog: publish-2025dec01...publish-2025dec01b

publish-2025dec01

30 Nov 22:03
c4c03c8

Choose a tag to compare

What's Changed

  • Improve NumPy vs Numba vs JAX lecture clarity and output formatting by @jstac in #446
  • Fix grammar and add Wikipedia links to jax_intro.md by @jstac in #445
  • Add centralized GPU admonition for JAX lectures by @mmcky in #447

Full Changelog: publish-2025nov28...publish-2025dec01

publish-2025nov28

28 Nov 00:36
2f103af

Choose a tag to compare

What's Changed

  • MAINT: Add RunsOn configuration file by @mmcky in #438
  • ENH: Enable RunsOn GPU support for lecture builds by @mmcky in #437
  • MAINT: Update quantecon-book-theme 0.12.0 -> 0.13.2 by @mmcky in #443
  • FIX: jax_intro timeout: use lax.fori_loop instead of Python for loop by @mmcky in #442

Full Changelog: publish-2025nov27...publish-2025nov28

publish-2025nov27

27 Nov 00:47
ce3de00

Choose a tag to compare

What's Changed

  • ⬆️ Bump actions/checkout from 5 to 6 by @dependabot[bot] in #433
  • Improve parallel Numba examples with race condition explanation by @jstac in #436

Full Changelog: publish-2025nov23...publish-2025nov27

publish-2025nov23

23 Nov 07:38
4f25b05

Choose a tag to compare

What's Changed

  • Upgrade quantecon-book-theme to 0.12.0 with git metadata by @mmcky in #432

Full Changelog: publish-2025nov22...publish-2025nov23

publish nov 22 2025

22 Nov 02:06
cc9c325

Choose a tag to compare

Reorganize parallel programming lectures and improve content flow (#429)

* Reorganize parallel programming lectures and improve content flow

Major restructuring of parallelization-related content across lectures to
improve pedagogical flow and consolidate related material.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Complete JAX intro lecture: add pure functions content and fix errors

- Add comprehensive "Random numbers and pure functions" section
- Demonstrate NumPy's impure random number generation vs JAX's pure approach
- Fix spelling errors: discusson→discussion, explict→explicit, parallelizaton→parallelization, hardward→hardware, sleve→sleeve, targetting→targeting
- Fix grammar: "uses use"→"uses", "short that"→"shorter than", "function will"→"functions will", "Prevents"→"Prevent"
- Fix missing jax. prefix in random number examples
- Improve clarity and consistency throughout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Reorganize JAX intro lecture for improved pedagogical flow

Major restructuring:
- Move Functional Programming section earlier (after NumPy Replacement)
- Integrate pure functions discussion into Random Numbers section
- Move "Compiling non-pure functions" into JIT section
- Add smooth transitions between sections

This creates a logical progression: basics → philosophy → features
Readers now understand WHY before seeing HOW, making JAX's design
choices (like explicit random state) more intuitive.

Also fix syntax errors in timer code blocks (missing colons).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Improve lecture flow and reorganize content

This commit includes pedagogical improvements across three lectures:

**numba.md:**
- Improve sentence flow with better transitions
- Change Wikipedia multithreading link to internal reference
- Add "(multithreading)=" label to Multithreaded Loops section
- Remove "Numba will be a key part of our lectures..." sentence
- Add transition phrase "Beyond speed gains from compilation"
- Clarify NumPy arrays "which have well-defined types"
- Change "For example" to "Notably" for better flow
- Add "Conversely" transition for prange vs range comparison

**numpy.md:**
- Add "### Basics" subheading for better organization
- Emphasize "flat" array concept with bold formatting
- Improve shape attribute explanation with inline comments
- Remove np.asarray vs np.array comparison examples
- Remove np.genfromtxt reference, keep only np.loadtxt
- Remove redundant note about zero-based indices
- Improve searchsorted() description formatting
- Remove redundant NumPy function examples (np.sum, np.mean)
- Simplify matrix multiplication section (remove old Python version notes)
- Simplify @ operator examples, remove redundant demonstrations
- Remove manual for-loop equivalent of broadcasting
- Remove higher-dimensional broadcasting code examples
- Remove higher-dimensional ValueError example
- Add "### Mutability" subheading and improve organization
- Change "Vectorized Functions" to "Universal Functions" heading
- Emphasize terminology with bold: **vectorized functions**, **ufuncs**, **universal functions**
- Add note about JAX's np.vectorize
- Remove "Speed Comparisons" section (moved to numpy_vs_numba_vs_jax.md)
- Remove "Implicit Multithreading in NumPy" section (moved to numpy_vs_numba_vs_jax.md)

**numpy_vs_numba_vs_jax.md:**
- Change title from "Parallelization" to "NumPy vs Numba vs JAX"
- Add jax to pip install command
- Add missing imports: random, mpl_toolkits.mplot3d, matplotlib.cm
- Add "### Speed Comparisons" section (moved from numpy.md)
- Add "### Vectorization vs Loops" section (moved from numpy.md)
- Add "### Universal Functions" section (moved from numpy.md)
- Add "### Implicit Multithreading in NumPy" section (moved from numpy.md)
- Change "some examples" to "an example" in multithreading description

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Fix grammar and reorganize need_for_speed.md content

- Fix incomplete sentence: add missing word "compiler" (line 229)
- Fix header level inconsistency: change Multi-GPU Servers to #####
- Reorganize Overview section with clearer structure
- Simplify Python's Scientific Ecosystem section
- Restructure "Pure Python is slow" section for better flow
- Add concrete vectorization speed comparison example
- Improve parallelization section organization
- Clarify GPU/TPU accelerator discussion
- Remove redundant content and improve transitions throughout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Fix missing random module import in need_for_speed.md

Add missing `import random` statement to fix NameError when running
the vectorization example code that uses random.uniform().

Tested by converting to Python with jupytext and running successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Fix header hierarchy inconsistencies in need_for_speed.md

Changed level 5 headers (#####) to level 4 headers (####) to fix
invalid header hierarchy that was causing build failures.

Fixed headers:
- "GPUs and TPUs"
- "Why TPUs/GPUs Matter"
- "Single GPU Systems"
- "Multi-GPU Servers"

These were incorrectly using ##### (level 5) directly under ### (level 3)
headers, skipping level 4. Now properly using #### headers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Complete numpy_vs_numba_vs_jax lecture with timing comparisons

Added comprehensive comparisons between NumPy, Numba, and JAX for both
vectorized and sequential operations:

- Added Numba simple loop and parallel versions for vectorized example
- Demonstrated nested prange parallelization and its limitations
- Added detailed discussion of parallelization overhead and contention issues
- Implemented sequential operation (quadratic map) in both Numba and JAX
- Used JAX lax.scan with @partial(jax.jit, static_argnums) for cleaner code
- Added timing code with separate runs to show compile vs cached performance
- Included educational discussion without specific numbers (machine-independent)
- Added explanation of reduction problem challenges with shared variable updates
- Fixed spelling error: "implict" → "implicit"
- Added missing punctuation

All code examples tested and verified to run successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* misc

* Improve formatting and clarity across parallel computing lectures

- Standardize header capitalization in need_for_speed.md
- Update code cell types to ipython3 in numba.md for consistency
- Remove redundant parallelization warning section in numba.md
- Enhance explanatory text and code clarity in numpy_vs_numba_vs_jax.md
- Fix formatting and add missing validation checks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* misc

---------

Co-authored-by: Claude <[email protected]>

publish-2025oct30

30 Oct 03:10
7708e8a

Choose a tag to compare

What's Changed

  • Update GitHub Actions to use new QuantEcon action locations by @mmcky in #417
  • ⬆️ Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #420
  • MAINT: Phase 1 - Add HTML archives to GitHub release assets by @mmcky in #422

Full Changelog: publish-2025sep30...publish-2025oct30

publish-2025sep30

30 Sep 02:17
77a5f1f

Choose a tag to compare

What's Changed

  • Update SciPy lecture: Fix outdated import statement for SciPy 1.15+ compatibility by @Copilot in #406
  • MAINT: upgrade to quantecon-book-theme==0.9.1 by @mmcky in #410
  • MAINT: quantecon-book-theme==0.9.2 by @mmcky in #415
  • [FIX] Update JAX shape discussion by @HumphreyYang in #413

Full Changelog: publish-2025aug28b...publish-2025sep30

publish-2025aug28b

28 Aug 06:17
341ec14

Choose a tag to compare

What's Changed

  • [numba] FIX: update precision in numba timing by @mmcky in #405
  • Fix broken links and redirects in documentation with API endpoint correction by @Copilot in #404
  • ENH: migrate to QE AI link-checker by @mmcky in #384

Full Changelog: publish-2025aug28...publish-2025aug28b