solve_degree_plan
Creates a semester-by-semester course plan from completed courses to a target graduation term, accommodating preferences and pinned courses.
Instructions
Plan remaining semesters from now to target_term. completed: list of course strings the student has finished. target_term: {'year': 2028, 'term': 1} where term 1=spring, 9=fall. preferences: optional dict with max_credits_per_term (int, default 18), min_credits_per_term (int, default 12), current_year, current_term. pins: optional dict mapping course_string to {'year': Y, 'term': T} to force placement. Returns a semester-by-semester plan or a structured infeasibility explanation. Always call get_requirements_progress first to show the student their remaining requirements.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pins | No | ||
| completed | Yes | ||
| preferences | No | ||
| target_term | Yes |