Course syllabus / 16 sessions
Every class has a job, an artifact, and a misconception to surface.
Two sessions per week for eight weeks. Every student action is a tap, selection, measurement, comparison, or oral explanation....never a prose response. Sessions 7–16 require one fixed-choice interpretation of real analysis Python. Three spaced sessions also offer one optional typed line.
The teacher is not expected to troubleshoot code. Sessions 7–16 require one read-and-judge question about manual dip analysis. After four unsuccessful choices, the stored interpretation is applied and the investigation continues. The expanded Code Lens and typed lines in Sessions 8, 12, and 15 remain optional and failure-contained.
Phase I
Recover a Transit
Learn the signal, plan a night, and recover a known transit in the guided training observatory.
SESSION 01Find the transit fingerprintWeek 1 · Prediction-versus-observation cardAvailable
Learning goals
- Recognize a transit-shaped signal
- Separate a prediction from a result
Students do
Predict three possible light-curve shapes, watch a modeled transit, and lock the pattern that the data should contain.
Produced artifact
Prediction-versus-observation card
A prediction card that is automatically compared with the revealed signal.
Opening evidence check
Which observation most clearly rules out a permanent dimming?
- AThe light returns to its original baseline
- BThe event lasts more than an hour
- CThe dip has a dramatic shape
SESSION 02Separate signal from scatterWeek 1 · Signal-quality cardAvailable
Learning goals
- Interpret transit depth
- Use RMS as a noise indicator
Students do
Compare three light curves with similar dips but different scatter and choose which result can support the strongest claim.
Produced artifact
Signal-quality card
A signal-quality card containing depth, RMS, and a bounded claim.
Opening evidence check
Which number describes the scatter outside the transit?
- AOut-of-transit RMS
- BTransit depth
- CNumber of frames
SESSION 03Plan a night that can answer the questionWeek 2 · Observation-plan cardAvailable
Learning goals
- Balance exposure and cadence
- Explain why baseline coverage matters
Students do
Build an observing plan, test it against timing guardrails, and revise choices until the transit and both baselines are covered.
Produced artifact
Observation-plan card
An automatically generated observing-plan card with accepted parameters and warnings.
Opening evidence check
Why collect light before and after the predicted transit?
- ATo establish the normal baseline
- BTo avoid measuring the transit
- CTo confirm the predicted timing
SESSION 04What changes when someone else planned the nightWeek 2 · Public-archive transit evidence bundleAvailable
Learning goals
- Complete the end-to-end investigation loop
- Issue a bounded result
Students do
Recover the known WASP-12 b transit from the frozen public TESS Sector 20 classroom bundle, then identify which observing decisions were inherited rather than chosen here.
Produced artifact
Public-archive transit evidence bundle
A source-traceable MAST transit bundle and measured light curve.
Opening evidence check
What is the strongest claim one public-archive light curve can support?
- AA new planet is confirmed
- BA transit-like signal was recovered
- CEvery future observation will match
Phase II
Interrogate Real Data
Inspect vetted FITS frames, preserve source identity, and make photometry choices without command-line setup.
SESSION 05Read what a FITS frame claimsWeek 3 · FITS frame-acceptance mapIn development
Learning goals
- Identify essential FITS metadata
- Apply a single-filter frame rule
Students do
Inspect a vetted FITS header profile, identify the filter and timing fields, and quarantine frames with missing or inconsistent metadata.
Produced artifact
FITS frame-acceptance map
A frame-acceptance map with every decision tied to a visible rule.
Opening evidence check
Why must the frame count be checked within one filter?
- ACombining filters always reduces noise
- BFilters only change filenames
- CDifferent filters measure different passbands
SESSION 06Keep the target through a moving fieldWeek 3 · Target-track recordIn development
Learning goals
- Explain WCS at a conceptual level
- Recognize a failed source track
Students do
Lock a target on a calibrated frame, follow its rotation and translation, and identify a failed track before photometry runs.
Produced artifact
Target-track record
A target-track record with sky-coordinate and alignment checks.
Opening evidence check
What must tracking preserve across the sequence?
- AThe exact pixel coordinates forever
- BOnly the brightest pixel
- CThe identity of each measured source
SESSION 07Measure starlight with an apertureWeek 4 · Aperture decision cardIn development
Learning goals
- Describe aperture tradeoffs
- Use normal-light jitter and contamination together
- Interpret a Python threshold that flags candidate low points
Students do
Compare tight, balanced, and wide apertures on the same sequence and choose the setting with the strongest evidence profile.
Required reading + optional code bridge
dip_points = relative_brightness < 0.99
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Edit APERTURE_RADIUS = 8
Change one guarded digit and watch the light curve and RMS execute again. Values outside 3 to 14 px fall back safely to 8 px.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Aperture decision card
An aperture decision card with curve, RMS, and contamination flags.
Opening evidence check
What can happen when an aperture is too wide?
- AIt removes all background
- BIt guarantees lower RMS
- CIt can admit extra sky or a neighbor
SESSION 08Build a stable comparison ensembleWeek 4 · Comparison and detrending recipeIn development
Learning goals
- Select stable comparison stars
- Interpret why Python calculates a median reference light
- Optionally write one Python assignment for the comparison-star count
Students do
Reject unstable references, build an ensemble, compare no correction with airmass correction, and lock a reduction recipe.
Required reading + optional code bridge
reference_light = median(comparison_stars)
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Write COMPARISON_STAR_COUNT = 5
Type one assignment from a plain-language prompt. Four misses trigger the stored correct line without pausing the science.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Comparison and detrending recipe
A reduction-recipe card listing accepted references and correction choice.
Opening evidence check
Why use several valid comparison stars?
- AThey make the transit deeper
- BThey replace the target
- CIndividual quirks can average out
Phase III
Survey the Field
Screen archive fields, reject artifacts, test spatial alternatives, and prioritize the next observation.
SESSION 09Use the small telescope's wider fieldWeek 5 · Calibrated field censusPilot testing
Learning goals
- Distinguish mirror aperture from field of view
- Apply a fixed source-count gate to a real archive snapshot
- Interpret a Python list that keeps measurable stars
Students do
Use the real 335-to-324 source census from Las Cumbres Observatory night 187990518 to decide why the 0.4-meter telescope advances.
Required reading + optional code bridge
usable_stars = [star for star in field if star.is_measurable]
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Read MIN_USABLE_FIELD_STARS = 30
Connect the visible field-census gate to the exact threshold used by the screen.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Calibrated field census
A source-count card tied to instrument, sampled frames, and the fixed Phase III gate.
Opening evidence check
Why is the 0.4-meter night the stronger field-survey source?
- AIts wider field contains hundreds of control sources
- BIts smaller mirror makes all stars brighter
- CIt has fewer pixels to inspect
SESSION 10Match each archive source to its real jobWeek 5 · Mission-to-source capability mapPilot testing
Learning goals
- Match archive capabilities to mission requirements
- Interpret a Python quality-flag filter
- Optionally identify a per-filter counting bug in a short Python snippet
Students do
Map NASA TESS Sector 20, ground night 187990518, ground night 179120561, and the course fallback to the missions each can support.
Required reading + optional code bridge
clean_light = light[quality_flag == 0]
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Find a per-filter counting bug
Judge a three-line snippet by multiple choice and identify why len(frames) applies the 100-frame rule incorrectly.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Mission-to-source capability map
A capability map with source-specific roles and an automatic continuity path.
Opening evidence check
Which source should teach real field rotation?
- AGround night 187990518 / 0.4-meter wide field
- BGround night 179120561 / 2-meter field rotator
- CNASA archive / TESS Sector 20
SESSION 11Ask whether the dip belongs to the targetWeek 6 · Spatial-disposition mapIn development
Learning goals
- Use neighbor behavior as evidence
- Issue a spatial disposition
- Interpret a Python condition that requires a target-only dip
Students do
Compare target and neighbor light curves, inspect a spatial residual map, and assign a disposition.
Required reading + optional code bridge
target_only = target_dips and not neighbor_dips
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Read NEIGHBOR_RADIUS_PX = 15
Connect the spatial-neighbor choice to the radius represented in the analysis record.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Spatial-disposition map
A spatial-disposition map labeled isolated, shared, or unresolved.
Opening evidence check
What weakens a planetary interpretation most?
- AThe baseline is long
- BNearby stars share the same dip
- CThe target dip is shallow
SESSION 12Rank what deserves another nightWeek 6 · Candidate priority boardIn development
Learning goals
- Prioritize by converging evidence
- Interpret Python that counts repeated event matches
- Optionally write one Python assignment for the follow-up allocation
Students do
Rank candidate records using quality, spatial disposition, repeatability, and observing feasibility.
Required reading + optional code bridge
repeat_count = sum(event_matches)
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Write FOLLOWUP_NIGHTS = 1
Retrieve the same assignment pattern later and connect the follow-up allocation to a reproducible priority record.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Candidate priority board
A prioritized target board with tap-selected reasons for each rank.
Opening evidence check
Which target deserves the highest follow-up priority?
- AThe deepest dip regardless of source
- BThe one observed on the clearest night
- CThe one that passes quality and spatial checks
Phase IV
Vet and Defend a Candidate
Compare independent reductions, answer a skeptic card, and defend a bounded claim aloud.
SESSION 13Pre-register the candidate testWeek 7 · Pre-registered test cardPilot testing
Learning goals
- Explain pre-registration
- Choose a bounded success criterion
- Interpret a Python threshold for acceptable normal-light scatter
Students do
Choose the expected event window, quality threshold, alternative explanations, and stop conditions before opening the assigned result.
Required reading + optional code bridge
steady_enough = baseline_scatter <= 0.0035
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Read MAX_OOT_RMS_PERCENT = 0.35
Connect a pre-registered quality ceiling to the code that preserves it before the result is opened.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Pre-registered test card
A sealed, tap-built investigation contract.
Opening evidence check
Why lock expectations before seeing the final curve?
- ATo guarantee a detection
- BTo reduce hindsight bias
- CTo avoid revising any idea
SESSION 14Run independent analytical choicesWeek 7 · Class reproducibility matrixPilot testing
Learning goals
- Compare independent reductions
- Distinguish formal error from analysis spread
- Interpret Python that converts in-transit light into blocked-light depth
Students do
Complete assigned aperture, ensemble, detrending, or spatial roles and compare the resulting depth, RMS, and gate.
Required reading + optional code bridge
transit_depth = 1 - median(in_transit_light)
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Read DETRENDING_METHOD = "airmass"
See an analytical choice become a named, inspectable setting instead of an invisible default.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Class reproducibility matrix
A class reproducibility matrix with twenty pseudonymous slots.
Opening evidence check
What does disagreement between defensible reductions reveal?
- AThe target must be fake
- BAnalysis choice contributes uncertainty
- COnly one student understood the task
SESSION 15Challenge the favored explanationWeek 8 · Counterclaim response deckPilot testing
Learning goals
- Match alternatives to tests
- Interpret a Python condition that requires a clean, target-only dip
- Optionally write one Python string assignment for a cautious source disposition
Students do
Draw a skeptic card, match it to the strongest available test, and revise the claim rung if the challenge survives.
Required reading + optional code bridge
planet_like = clean_dip and target_only
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Write SOURCE_OWNERSHIP = "unresolved"
Use quotation marks for one text value and represent a cautious disposition directly rather than translating it into false certainty.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Counterclaim response deck
A challenge-response deck assembled entirely through choices.
Opening evidence check
What is the strongest response to a plausible alternative explanation?
- AHide the uncertain evidence
- BPoint out that the alternative is unlikely
- CShow the test that bears on it
SESSION 16Defend the candidateWeek 8 · Oral evidence board and defense recordPilot testing
Learning goals
- Defend a bounded claim orally
- Interpret one Python list that finds candidate low points
- Recognize the click-built analysis inside an exported Python script
Students do
Build a claim rung, select three evidence tiles, answer one skeptic card, state one limitation, and deliver a 60-second oral defense.
Required reading + optional code bridge
candidate_points = [flux for flux in light_curve if flux < 0.99]
The fixed-choice reading check is required. Four unsuccessful tries apply the stored scientific meaning automatically.Export the click-built analysis as Python
Download a runnable standard-library script containing the guarded setting, forecast, evidence decisions, and source boundary.
The expanded Code Lens and typed line practice never gate completion, saving, or the next session.Produced artifact
Oral evidence board and defense record
An automatic defense board plus a tap-only peer or teacher rubric; no prose is entered or recorded.
Opening evidence check
What is the student actually defending?
- AThe measurement itself
- BA bounded claim supported by selected evidence
- CA claim that the planet is confirmed
Teacher assessment
Reasoning is visible without collecting student prose.
The teacher sees locked predictions, selected analysis choices, retries, quality-gate outcomes, exit-ticket concepts, and the final defense rubric. Timing indicators are prompts for a check-in, never grades or claims about attention.