This section contains the core programming projects for ASTR 596: Modeling the Universe.
Project Philosophy¶
Each project implements fundamental algorithms from scratch using our “glass box” approach. You’ll build understanding through manual implementation before leveraging modern frameworks. Projects include both technical implementation and growth reflection memos to develop metacognitive skills alongside computational expertise.
Project Timeline¶
Short projects are assigned on Mondays and due the following Monday(s) at 11:59 PM PT via GitHub Classroom. See the Short Project Submission Guide for detailed requirements.
Short Projects (50% + 10% Growth Memos = 60% of course grade)¶
🐍 Project 1: Python Foundations & Stellar Physics¶
Assigned: Aug 29 | Due: Sept 8 (Mon 11:59 PM)
Build strong Python fundamentals while exploring stellar astrophysics. Implement object-oriented programming principles to model stellar properties and create HR diagrams.
Object-oriented programming & class design
Stellar physics implementation
Professional development environment setup
Git workflow and documentation → Project 1 Details (TBD)
🪐 Project 2: ODE Integration & N-Body Dynamics¶
Assigned: Sept 8 | Due: Sept 22 (Mon 11:59 PM)
Master numerical integration methods through gravitational dynamics. Implement multiple ODE solvers to simulate planetary orbits and star cluster evolution.
Euler, RK4, and Leapfrog integrators
Planetary and star cluster dynamics
Initial Mass Function (IMF) sampling
Performance analysis and optimization → Project 2 Details (TBD)
💡 Project 3: Monte Carlo Radiative Transfer¶
Assigned: Sept 22 | Due: Oct 13 (Mon 11:59 PM)
Dive deep into radiative transfer physics using Monte Carlo methods. Track photon packets through astrophysical media with scattering and absorption.
Photon packet Monte Carlo methods
Scattering and absorption physics
Optical depth calculations
Visualization of radiation fields → Project 3 Details (TBD)
📊 Project 4: Bayesian Inference & MCMC¶
Assigned: Oct 13 | Due: Nov 3 (Mon 11:59 PM)
Build Markov Chain Monte Carlo samplers from scratch while learning regression fundamentals. Apply Bayesian methods to astronomical parameter estimation.
Metropolis-Hastings algorithm
Prior and likelihood functions
Gradient descent optimization
Parameter estimation and uncertainty quantification → Project 4 Details (TBD)
📈 Project 5: Gaussian Processes¶
Assigned: Nov 3 | Due: Nov 24 (Mon 11:59 PM)
Implement Gaussian processes for astronomical time series analysis. Master kernel functions and hyperparameter optimization for non-parametric regression.
Kernel design and implementation
Hyperparameter optimization
Time series prediction
Uncertainty quantification → Project 5 Details (TBD)
Short Project Submission Requirements¶
Each short project requires:
Core Implementation with working solution and correct physics/algorithms
Research Memo (2-3 pages text + figures, LaTeX/PDF required)
Growth Memo (1-2 pages, .md or PDF) reflecting on learning journey
Code Quality with documentation, organization, and Git practices
Validation through testing against known solutions
Student-Led Exploration extending beyond base requirements (required for grad students)
See the Project Submission Guide for complete requirements.
Final Project (25% of course grade)¶
🧠 Neural Networks & JAX Implementation¶
Assigned: Nov 24 | Due: Dec 18 (Thu 11:59 PM)
Full project description available Nov 17 (one week before Project 5 due)
Culminate your learning by building neural networks from scratch, then translating to the JAX ecosystem. Choose from provided astronomical research problems to create a publication-quality implementation.
Topics Covered:
Backpropagation from first principles
Automatic differentiation with JAX
Modern ML frameworks (
jit,vmap,grad)Research-quality scientific computing
Deliverables (different from short projects):
Code Package (55%): Professional package structure with
__init__.py, unit tests (>70% coverage), documentationWritten Report (30%): Scientific paper with background, methods, results, conclusions
Presentation (15%): 12-minute presentation during finals week
7 minutes on research project
3 minutes on technical growth journey
2 minutes Q&A → Final Project Details (TBD)
Technical Growth Synthesis (5% of course grade)¶
Due with Final Project: Dec 18 (Thu 11:59 PM)
A 3-5 page reflective portfolio documenting your computational journey through the entire course, including:
Synthesis of learning across all projects
Code evolution comparisons (early vs. final implementations)
Development of computational thinking
Impact of student-led explorations
Shift in learning mindset
AI scaffolding effectiveness
Submit as .md or PDF with your Final Project.
Getting Help¶
Friday Lab Sessions: Hands-on implementation support and pair programming
Office Hours: Wednesdays 1-2 PM for conceptual guidance
Course Slack: Quick questions and peer collaboration
AI Policy: Three-phase scaffolded approach to tool integration
Remember: Starting early and working steadily across the assignment period is key to success. Projects are designed for iterative development over their full timeline, not weekend sprints.