Files
Bill 4d6f81d1e5 v1.2.2: Add Healthcare specialization, mark cancelled courses, rename Digital Marketing
Apply the J27 (5/6/2026) Stern specialization sheet:

- Add Healthcare (HCR) as the 15th specialization, with HCR cross-listings on
  spr2-health-medical, spr3-analytics-ml, sum2-social-media (renamed), and
  fall1-managing-change. 10 credits available, no required-course gate.
- Rename sum2-social-media to "Digital Marketing Strategy in Practice";
  replace its description with new MSKCC-anchored content; clear instructor
  pending confirmation of new lead.
- Switch from delete-and-replace to the previously-unused cancelled flag
  (Approach B): mark spr5-customer-insights cancelled, add Managing Growing
  Companies back to Summer Set 2 as a cancelled placeholder per the printed
  sheet.
- Update data integrity tests: course count 46 -> 47, spec count 14 -> 15;
  per-spec "across sets" helper now filters cancelled courses so future
  cancellations trigger an obvious assertion failure (BRM 6 -> 5,
  MKT 7 -> 6, HCR 4 new).
- Replace hardcoded 14 in optimizer.test.ts with SPECIALIZATIONS.length.
2026-05-09 14:50:26 -04:00

3.1 KiB

Why

The Stern School published an updated J27 Specializations one-pager (dated 5/6/2026) that introduces a new Healthcare specialization, cancels the Customer Insights elective, lists Managing Growing Companies as a cancelled placeholder in Summer Set 2, renames Social Media and Mobile Technology to Digital Marketing Strategy in Practice (with a substantively different course description and focus), and cross-lists four existing courses to the new Healthcare specialization. The solver's data files must match the official sheet so students rely on accurate availability information.

What Changes

  • Add Healthcare (HCR) specialization (10 credits, no required course)
  • Add HCR qualification to four existing courses:
    • spr2-health-medical (Business of Health & Medical Care)
    • spr3-analytics-ml (Analytics & Machine Learning for Managers)
    • sum2-social-media (formerly Social Media and Mobile Technology)
    • fall1-managing-change (Managing Change)
  • Rename sum2-social-media to Digital Marketing Strategy in Practice and replace its course description with the new MSKCC-anchored content (provided in digital-marketing.txt); clear instructor field pending confirmation of new lead instructor
  • Mark spr5-customer-insights as cancelled: true (retain entry; do not delete) — switching from prior delete-and-replace pattern to the existing-but-unused cancelled flag pattern (Approach B)
  • Add a new cancelled-only entry sum2-managing-growing-companies ("Managing Growing Companies") to Summer Set 2 with cancelled: true and no qualifications, restoring the printed sheet's 5-slot listing
  • Update test assertions in app/src/data/__tests__/data.test.ts to reflect the 15th specialization, the 5-entry sum2 set, and revised per-spec set counts (BRM, MKT lose spr5-customer-insights)

Capabilities

New Capabilities

None — this is a data refresh that uses existing capabilities (course-data, specialization-ranking).

Modified Capabilities

  • course-data: Add Healthcare specialization, four HCR cross-listings, the renamed Digital Marketing course, and two cancelled-flag entries. Adopt cancelled: true (Approach B) as the standing pattern for cancelled courses, superseding the prior delete-and-replace approach.

Impact

  • app/src/data/specializations.ts — add HCR entry
  • app/src/data/courses.ts — five qualification/name edits, one new cancelled entry, one cancelled-flag edit
  • app/src/data/electiveSets.ts — append sum2-managing-growing-companies to sum2.courseIds
  • app/src/data/courseDescriptions.ts — replace sum2-social-media description; clear instructors
  • app/src/data/__tests__/data.test.ts — update specialization count (14→15), course count (46→47), and per-spec/STR-marker assertions
  • app/vite.config.ts — bump __APP_VERSION__ and __APP_VERSION_DATE__
  • CHANGELOG.md — add release entry
  • No code changes to solver, lookups, or UI: existing cancelled plumbing in lookups.ts:43-50, appState.ts:94-95, and CourseSelection.tsx:279 already handles greying-out and solver exclusion