Skip to content

Consolidate the shared math basics in mcs; mds links to it #60

Open

Description

@d-morrison

Move the general mathematics that CSCI 201 and the data science courses share out of Morrison-Lab/mds and into this repository.
mds will link to it, not include it.

Decided by Ezra on 2026-11-03.
Nothing has started: this issue records the plan and the reasoning behind it.
The working document is Math repos: where the shared content lives.

Decision

  • mcs stays the CSCI 201 notes site, keeps its name, its URL and its 19 chapters, and becomes the home of the shared basics:
    • logic and proof writing
    • sets
    • functions and relations
    • induction and growth rates
    • number systems
    • expressions and algorithms
    • notation
  • mds keeps the topics that only data science uses: algebra, calculus, linear algebra, vector calculus, optimization, measures and indicator functions.
    It links to mcs pages for shared definitions and does not add mcs as a submodule.
  • No new repository.
    Splitting the course out into a separate repo (as maa) was considered and rejected.

Why

  • The shared content sat in mds ("math for data science"), so the name did not match the contents.
  • Linking keeps mds independent: mcs and mds never pin each other, and an mds render does not depend on mcs.
  • Keeping the course in mcs moves about 300 files once, rather than also moving the course's 748 subfiles to a new repo.

Alternatives considered

Option Why not
Keep mds as the shared home, perhaps retitled The name and contents still disagree. This was decided earlier on 2026-11-03 and then reopened.
Three-way split, with a new repo for CSCI 201 Twice the moves: the course leaves mcs and the shared content arrives there.
A new repo for the shared basics Adds a fourth site to maintain.
Rename mcs to maa and create a new mcs Reusing the name mcs breaks GitHub's rename redirect. Old Morrison-Lab/mcs PR and issue links would open the new repo, sometimes the wrong item with the same number.
mds includes mcs through a submodule Ruled out by the decision: mds links instead.

Facts behind the plan (measured 2026-11-03)

  • mds holds about 300 shared subfiles.
    By directory: proof-writing 103, sets 57, functions 55, expressions-algorithms 28, number-systems 26, relations 8, induction 6, growth-rates 6, notation 3.

  • mcs has about 90 include lines that pull these subfiles in through its mds/ submodule.

  • Other sites link to the shared mds pages.
    GitHub code search counted files linking to each page; the counts are a floor, since search returns at most one page of results.

    Page Linking files
    sets.html 26 (lds 11, lds-site 9, sds 4, pds 2)
    functions.html 30 (lds 8, psw 7, sds 6, dds 5, pds 4)
    expressions-algorithms.html 30 or more (lds)
    number-systems.html 11 (lds 6, lds-site 5)
    notation.html 6
    proof-writing.html 3 (mcs 2, rme 1)
  • GitHub Pages has no server-side redirects.
    A stub page with a meta refresh and a short script that keeps the #id does forward readers, so old links keep working while they are repointed.

  • No students have the mcs URL yet (Ezra, 2026-11-03).

Plan

Each phase is its own PRs, and each leaves every site building and every old link working.

  1. Freeze.
  2. Move the shared subfiles from mds into mcs.
    • Copy them by script into _subfiles/<topic>/, keeping every #id.
    • Repoint this repo's {{< include ../mds/_subfiles/... >}} lines to the local copies.
    • Verify each move with a content diff.
  3. Give mcs a page for each shared topic, separate from the course chapters, so that other sites have a stable page to link to.
    One open question: whether these pages sit in their own navbar section or the course chapters serve as the link targets.
  4. Turn each moved mds page into a redirect stub to the matching mcs page, keeping #ids.
    Delete the moved subfiles from mds.
  5. Repoint mds's own cross-references.
    Where an mds page cites a moved definition, link to the published mcs page.
    That needs a filter like this repo's cross-page-refs.lua, in reverse.
  6. Repoint incoming links.
    Run a scripted sweep of lds, lds-site, pds, sds, dds, psw and rme, one PR per repo.
    Then rerun the code search to confirm no hits remain on the old mds paths.
  7. Update the records:
    • the CLAUDE.md of mcs and of mds (replacing mds's "Relationship to mcs" section);
    • ai-config's course-sequence fragment, which should put mcs before mds;
    • project memory.

Open questions

  • May a scripted, pure-move PR exceed the push hook's 10-file cap, if a content diff verifies it?
    At 10 files per PR, phase 2 alone takes about 30 PRs.
  • Does mcs keep the mds submodule for the DS-side content it still uses, such as the one algebra subfile and the references.bib?
    Or does it link to mds for those too?
  • Should mcs's site title change to name the shared role, such as "Math for computational sciences"?

Generated by Claude Code

Activity

  1. d-morrison commented on Nov 4, 2026

    @d-morrison
    ContributorAuthor

    why shouldn't the algebra subfile move to mcs?

  2. dem-extra1 commented on Nov 4, 2026

    @dem-extra1
    Contributor

    No good reason: the algebra subfile mcs uses, _subfiles/algebra/_def-transitive.qmd (included by chapters/relations.qmd), is discrete math that belongs with the shared basics, so it moves with the rest. Only the references.bib question is still open (the moved definitions cite entries in it, so mcs needs those entries either way).

    Taking this over: first phase-2 PR is #61 (growth-rates, 7 files).


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions