You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 08-short-projects/project-5/project5-description-jax-nbody.md
+37-32Lines changed: 37 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -230,7 +230,7 @@ Softening models the smoothing effect of finite stellar radii. For star clusters
230
230
231
231
#### Two Implementation Strategies
232
232
233
-
**Strategy A: Direct Vectorization (Pairwise Distance Matrix)**
233
+
**Strategy A: Direct Vectorization (Pairwise Distance Matrix).**
234
234
235
235
Implement a function `accelerations_matrix(x, m, eps2, G)` that:
236
236
@@ -607,40 +607,44 @@ import jax_nbody.samplers as samplers
607
607
608
608
**Quickstart for grading**: `quickstart.py` at project root that runs N=64 for 100 steps on CPU and prints: wall-time (after JIT warmup), `max|ΔE/E|`, and $\alpha_{\rm vir}$ summary. I will run `python quickstart.py` to verify basic functionality
609
609
610
-
### 2. Technical Report (4-5 pages)
610
+
### 2. Research Memo (1-2 pages)
611
611
612
-
Write a technical report demonstrating your understanding of JAX and the design tradeoffs you made. Your report must include:
612
+
Write a concise research memo demonstrating your implementation works correctly and that you understand JAX's performance advantages. **The primary deliverable is your complete working, validated pipeline**—the memo provides essential evidence and commentary.
-Force calculation strategy choice and justification
619
-
-Integration scheme (leapfrog DKD)
620
-
-Adaptive timestepping approach
621
-
-**Softening policy**: State your $\epsilon$ choice (constant vs. $\epsilon \propto r_h/\sqrt{N}$), the value/factor used, and 2-line justification tied to energy drift and timestep collapse rates
616
+
1.**Validation Evidence** (≈1 page):
617
+
-**All 6 required test results** with key figures showing correctness
618
+
-**Two-body orbit plot**: Energy conservation ($\max|\Delta E/E| < 10^{-8}$)
-**Softening policy**: State your $\epsilon$ choice (constant vs. $\epsilon \propto r_h/\sqrt{N}$), the value/factor used, and brief justification tied to energy drift and timestep stability
630
+
-**Integration approach**: Note your adaptive timestepping strategy
631
+
-**Production ensemble**: Brief description of automated pipeline (50-100 runs, parameter coverage, data organization)
**Format**: Emphasize showing results over prose. Use tables and figures effectively. Quantify performance gains. Demonstrate you understand the tradeoffs through your results, not lengthy explanations.
640
634
641
-
**Format**: Use figures effectively. Quantify everything. Show you understand the tradeoffs, not just "it works."
635
+
### 3. Growth Memo
642
636
643
-
### 3. AI as a Learning Accelerator
637
+
Submit a Growth Memo following the standard template at [`03-growth-memo-template.md`](../03-growth-memo-template.md). This is where you reflect on your learning journey, including:
638
+
639
+
-**Technical skills developed**: What JAX patterns can you now implement?
640
+
-**Key challenges & solutions**: What JAX-specific pitfalls did you encounter?
641
+
-**AI usage reflection**: How did you use AI tools to understand JAX? What worked? What didn't? How did you verify AI suggestions? This detailed reflection belongs in the Growth Memo, NOT the research memo.
642
+
-**Conceptual insights**: How did implementing N-body dynamics in JAX deepen your understanding of functional programming and JIT compilation?
643
+
-**What got you excited**: Any "aha" moments with JAX transformations (jit, vmap, grad)?
644
+
645
+
The Growth Memo is graded pass/fail based on honest, thoughtful reflection. See the template for detailed prompts.
646
+
647
+
### 4. AI as a Learning Accelerator
644
648
645
649
Through Projects 1-4, you've demonstrated solid Python expertise. Now it's time to leverage that foundation with modern learning tools. JAX has a sharp learning curve—its functional programming paradigm and compilation constraints are fundamentally different from NumPy. But you have an advantage: **you already understand the underlying physics and computational concepts**.
646
650
@@ -655,7 +659,7 @@ Through Projects 1-4, you've demonstrated solid Python expertise. Now it's time
655
659
656
660
**Critical caveat**: Maintain a **"docs first" mindset**. Check the [JAX documentation](https://jax.readthedocs.io/) and [Equinox API](https://docs.kidger.site/equinox/) before asking AI. Always fact-check AI responses—they're often confident but wrong about version-specific details or edge cases. Use AI to understand concepts and documentation, not as a replacement for understanding.
657
661
658
-
In your technical report, briefly describe how you used AI tools (if at all): What helped you understand JAX's paradigm? What errors did you learn from? This isn't graded for "correct" AI use—we want honest data to improve the course.
662
+
**AI usage reflection belongs in your Growth Memo** (see Deliverable 3 below), not in the research memo. The Growth Memo has dedicated sections for reflecting on AI tool usage, what worked, what didn't, and how your approach evolved.
659
663
660
664
---
661
665
@@ -728,16 +732,17 @@ When something goes wrong (and it will):
728
732
729
733
## Grading Approach
730
734
731
-
**Evaluation Method**: Your grade is based on the technical report, quickstart demo, and repository inspection (code reading, not installation).
735
+
**Evaluation Method**: Your grade is based on your working validated pipeline (code quality), research memo, quickstart demo, and validation evidence.
|**Validation Evidence**| 20% | Memo shows all 6 required tests passed with figures/tables proving correctness |
743
+
|**Growth Memo**| Pass/Fail | Honest, thoughtful reflection on learning process (graded separately) |
739
744
740
-
**Note**: Grading will be based on your quickstart demo output, repository code reading, and comprehensive technical report. I will not be installing your package or running your full test suite—your report must provide convincing evidence that your implementation works correctly.
745
+
**Note**: Grading will be based on your quickstart demo output, repository code reading, and research memo. I will not be installing your package or running your full test suite—your memo must provide convincing evidence that your implementation works correctly. The Growth Memo is graded separately as pass/fail.
0 commit comments