Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Projects

COMP 521 | Fall 2026

San Diego State University

Projects are the core of COMP 521: five investigations. Use the listed dates for each project. Each project has two halves:

See the Course Schedule for all assignment and submission dates. The Project 1 brief is the authoritative source for its repository check, scientific work, deliverables, and interpretation prompts.

Start with Project 1

The Project 1 brief begins with the required, completion-only GitHub repository check and then defines the scientific model, notebook work, figures, written interpretation, and Canvas repository-link submission route. Complete the separate laptop setup before class so that you can use Python and Jupyter.

Project Sequence

The five projects build a continuous scientific investigation: detecting and characterizing exoplanets in real Kepler data.

ProjectAssignedDueContribution to the investigation
1Tue Aug 25Tue Sep 8Build and validate a transit model; place 15 real stars on a theoretical HR diagram
2Tue Sep 8Wed Sep 23Integrate a limb-darkened transit model and derive the Stefan–Boltzmann constant
3Tue Sep 22Wed Oct 7Solve orbital and transit-contact problems; compare simplified temperature zones for 15 stars
4Wed Oct 14Wed Oct 28Validate ODE methods on the SHO and a constant-density planet; reproduce Seager mass–radius relations and compare with NASA observations
5Thu Oct 29Wed Nov 18Download, clean, and fit a transit model to real Kepler photometry

The Final Project uses the course toolkit on a bounded scientific question. Two individual Code Review Presentations give you a chance to study open source scientific and DS/ML packages alongside the numerical-methods and data/ML work.

What to Submit

Each project submission includes:

Notebook and code policy

The notebook is the report, not a hiding place for reusable code. Project 1 is the bootcamp exception: its functions may live in the notebook. From Project 2 onward, implementation belongs in importable, testable .py modules; the notebook imports that code and contains the ordered analysis, figures, and interpretation.

Every submitted notebook must:

Use Markdown for Analysis Notebooks for the submission-focused writing and formatting conventions.

Each project mixes coding with written questions that ask you to explain choices, interpret results, diagnose failures, and defend conclusions. Written interpretation may appear throughout the notebook or in a combined discussion at the end, depending on the project brief.

How each project is graded

Every project receives one final letter grade. I assign a letter in each of four broad dimensions, convert those letters using the course grade scale, and take the weighted average. The final project letter uses the same cutoff table as the rest of the course.

This is a weighted professional judgment, not a point checklist. A student does not earn an A by collecting isolated rubric items: evidence must actually support the computational and scientific claim.

DimensionWeightA-level evidence
Correct model and validation40%The method is correct and checks could have exposed a plausible mistake.
Scientific reasoning25%The interpretation connects outputs to the question, assumptions, and limits.
Reproducibility and code design20%A clean run works; functions, inputs, outputs, and repository workflow are inspectable.
Communication and figures15%Figures and prose let another scientist understand the evidence without guessing.

Use the Grading page for the letter-to- number scale, final-letter cutoffs, and the meaning of A/B/C/D/F work. Written feedback identifies the category that most shaped the final grade and the highest-leverage next improvement.

Project Pairs & Collaboration

Projects 1–5 are done in rotating pairs. The code review presentations and final project are individual work, although you may still discuss ideas and debugging with classmates.

If a pairing is not working, tell me promptly and I will re-pair you.