{
  "schema": "b80-learning-map-en/1",
  "contract": "course-learning-capability/1",
  "course_id": "B80",
  "locale": "en",
  "native_dataset": "family-09-mathematical-computing/B80",
  "title": "Mathematical Computing and Reproducible Experiments",
  "localization_of": {
    "course_id": "B80",
    "locale": "id-ID",
    "shared_identity": true
  },
  "source_catalog": {
    "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/backend/catalog.json",
    "bytes": 118671,
    "sha256": "448d32a4a1cd758adaf4501a3bd28b316390dd1437d110a3971f3a18a1c97a17"
  },
  "public_release": {
    "repository": "KokunoYumeto/mathematical-computing-reproducible-experiments-en",
    "commit": "c31037730466fa4fac7b31d72421302ff0c87eb3",
    "tree": "d1c64ac8772451073dd7719bf8733456218940ae",
    "release_tag": "v2026.08.31.en1",
    "offline_reader": {
      "anonymous_readback": "pass",
      "bytes": 1721684,
      "name": "O002_B80_EN_OFFLINE_READER_2026-08-31.zip",
      "sha256": "c04cfe482602336d9285b98586de0c07cd841ff06baaf2ffb9aa7862bca573d6",
      "url": "https://github.com/KokunoYumeto/mathematical-computing-reproducible-experiments-en/releases/download/v2026.08.31.en1/O002_B80_EN_OFFLINE_READER_2026-08-31.zip"
    },
    "pdf": {
      "anonymous_readback": "pass",
      "bytes": 774069,
      "name": "Mathematical-Computing-and-Reproducible-Experiments.pdf",
      "sha256": "12aedcef4d00df81f4d269ac14eb7fc545fbfc057572b6942f15303506e604b2",
      "url": "https://github.com/KokunoYumeto/mathematical-computing-reproducible-experiments-en/releases/download/v2026.08.31.en1/Mathematical-Computing-and-Reproducible-Experiments.pdf"
    }
  },
  "units": [
    {
      "id": "o002.p01",
      "title": "Primer P01 - Running Python Experiments",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html",
      "page": {
        "path": "source/units/p01-menjalankan-eksperimen-python.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html",
        "bytes": 93126,
        "sha256": "56285d7589141937c3c02dd60c811c363d485d8599e26f346f2c7f200c8e71c6"
      },
      "sections": [
        "sec-o002-p01",
        "sec-o002-p01-objectives",
        "sec-o002-p01-runtime-terminal",
        "sec-o002-p01-expressions-names",
        "sec-o002-p01-scalars",
        "sec-o002-p01-calls-imports-help",
        "sec-o002-p01-cells",
        "sec-o002-p01-computation-display",
        "sec-o002-p01-tracebacks",
        "sec-o002-p01-script",
        "sec-o002-p01-hidden-state",
        "sec-o002-p01-exercises",
        "sec-o002-p01-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#sec-o002-p01-objectives",
      "previous_units": [],
      "components": [
        "cmp-o002-p01-text",
        "cmp-o002-p01-code",
        "cmp-o002-p01-test",
        "cmp-o002-p01-notebook-generator",
        "cmp-o002-p01-notebook-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-p01-01",
          "unit_id": "o002.p01",
          "title": "Exercise 1 - values, types, and operators",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p01-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-01"
          },
          "check": {
            "label": "chk-o002-p01-01",
            "source_anchor": "ex-o002-p01-01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-01"
          },
          "solution": {
            "label": "sol-o002-p01-01",
            "source_anchor": "ex-o002-p01-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-01"
          }
        },
        {
          "id": "ex-o002-p01-02",
          "unit_id": "o002.p01",
          "title": "Exercise 2 - imports, calls, and help",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p01-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-02"
          },
          "check": {
            "label": "chk-o002-p01-02",
            "source_anchor": "ex-o002-p01-02",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-02"
          },
          "solution": {
            "label": "sol-o002-p01-02",
            "source_anchor": "ex-o002-p01-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-02"
          }
        },
        {
          "id": "ex-o002-p01-03",
          "unit_id": "o002.p01",
          "title": "Exercise 3 - reading and fixing a traceback",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p01-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-03"
          },
          "check": {
            "label": "chk-o002-p01-03",
            "source_anchor": "ex-o002-p01-03",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-03"
          },
          "solution": {
            "label": "sol-o002-p01-03",
            "source_anchor": "ex-o002-p01-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-03"
          }
        },
        {
          "id": "ex-o002-p01-04",
          "unit_id": "o002.p01",
          "title": "Exercise 4 - computation, display, and scripts",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p01-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-04"
          },
          "check": {
            "label": "chk-o002-p01-04",
            "source_anchor": "ex-o002-p01-04",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-04"
          },
          "solution": {
            "label": "sol-o002-p01-04",
            "source_anchor": "ex-o002-p01-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-04"
          }
        },
        {
          "id": "ex-o002-p01-05",
          "unit_id": "o002.p01",
          "title": "Exercise 5 - clean kernels and hidden state",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p01-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-05"
          },
          "check": {
            "label": "chk-o002-p01-05",
            "source_anchor": "ex-o002-p01-05",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-05"
          },
          "solution": {
            "label": "sol-o002-p01-05",
            "source_anchor": "ex-o002-p01-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p01-menjalankan-eksperimen-python.html#ex-o002-p01-05"
          }
        }
      ]
    },
    {
      "id": "o002.p02",
      "title": "Control Flow, Collections, Functions, Modules, and Files",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html",
      "page": {
        "path": "source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html",
        "bytes": 123631,
        "sha256": "e7f55f8ffc3a5479d9510af8a86700643d3816a9d9a8fd923ba0c69639b9262c"
      },
      "sections": [
        "sec-o002-p02",
        "sec-o002-p02-objectives",
        "sec-o002-p02-collections",
        "sec-o002-p02-if",
        "sec-o002-p02-loops",
        "sec-o002-p02-generator",
        "sec-o002-p02-functions",
        "sec-o002-p02-exceptions",
        "sec-o002-p02-modules",
        "sec-o002-p02-files",
        "sec-o002-p02-red-green",
        "sec-o002-p02-artifact",
        "sec-o002-p02-exercises",
        "sec-o002-p02-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#sec-o002-p02-objectives",
      "previous_units": [
        "o002.p01"
      ],
      "components": [
        "cmp-o002-p02-text",
        "cmp-o002-p02-code",
        "cmp-o002-p02-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-p02-01",
          "unit_id": "o002.p02",
          "title": "Exercise 1 - collections and slices",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p02-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-01"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-p02-01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-01"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-p02-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-01"
          }
        },
        {
          "id": "ex-o002-p02-02",
          "unit_id": "o002.p02",
          "title": "Exercise 2 - control flow before comprehensions",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p02-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-02"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-p02-02",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-02"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-p02-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-02"
          }
        },
        {
          "id": "ex-o002-p02-03",
          "unit_id": "o002.p02",
          "title": "Exercise 3 - functions, scope, and errors",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p02-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-03"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-p02-03",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-03"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-p02-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-03"
          }
        },
        {
          "id": "ex-o002-p02-04",
          "unit_id": "o002.p02",
          "title": "Exercise 4 - a learner module and red-green tests",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p02-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-04"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-p02-04",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-04"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-p02-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-04"
          }
        },
        {
          "id": "ex-o002-p02-05",
          "unit_id": "o002.p02",
          "title": "Exercise 5 - text, CSV, JSON, and a manifest",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-p02-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-05"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-p02-05",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-05"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-p02-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/p02-kontrol-koleksi-fungsi-modul-berkas.html#ex-o002-p02-05"
          }
        }
      ]
    },
    {
      "id": "o002.u01",
      "title": "Computation, Representation, and Proof",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html",
      "page": {
        "path": "source/units/01-komputasi-bukti.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html",
        "bytes": 59130,
        "sha256": "7de082c1d1c09cc5a053c3f177a827e6ca7f26c8f552db2b1cccdef41bb525dd"
      },
      "sections": [
        "sec-o002-u01",
        "sec-o002-u01-objectives",
        "sec-o002-u01-layers",
        "sec-o002-u01-exact-float",
        "sec-o002-u01-contract",
        "sec-o002-u01-proof-evidence",
        "sec-o002-u01-tests",
        "sec-o002-u01-exercises",
        "sec-o002-u01-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#sec-o002-u01-objectives",
      "previous_units": [
        "o002.p02"
      ],
      "components": [
        "cmp-o002-u01-text",
        "cmp-o002-u01-code",
        "cmp-o002-u01-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u01-01",
          "unit_id": "o002.u01",
          "title": "Exercise 1 - representation",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u01-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u01-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u01-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-01"
          }
        },
        {
          "id": "ex-o002-u01-02",
          "unit_id": "o002.u01",
          "title": "Exercise 2 - specifying tolerances",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u01-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u01-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u01-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-02"
          }
        },
        {
          "id": "ex-o002-u01-03",
          "unit_id": "o002.u01",
          "title": "Exercise 3 - the limits of an experiment",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u01-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u01-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u01-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-03"
          }
        },
        {
          "id": "ex-o002-u01-04",
          "unit_id": "o002.u01",
          "title": "Exercise 4 - a counterexample",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u01-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u01-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u01-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-04"
          }
        },
        {
          "id": "ex-o002-u01-05",
          "unit_id": "o002.u01",
          "title": "Exercise 5 - an experiment record",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u01-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u01-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u01-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/01-komputasi-bukti.html#ex-o002-u01-05"
          }
        }
      ]
    },
    {
      "id": "o002.u02",
      "title": "Objects, Values, and Functions",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html",
      "page": {
        "path": "source/units/02-objek-fungsi.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html",
        "bytes": 61981,
        "sha256": "89b1fe642d1f3365641d4a6d732f5a6ac9a232f0b6dc0193cb648db8dec68695"
      },
      "sections": [
        "sec-o002-u02",
        "sec-o002-u02-objectives",
        "sec-o002-u02-types",
        "sec-o002-u02-aliasing",
        "sec-o002-u02-contracts",
        "sec-o002-u02-purity",
        "sec-o002-u02-invariants",
        "sec-o002-u02-canonical-output",
        "sec-o002-u02-exercises",
        "sec-o002-u02-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#sec-o002-u02-objectives",
      "previous_units": [
        "o002.u01"
      ],
      "components": [
        "cmp-o002-u02-text",
        "cmp-o002-u02-code",
        "cmp-o002-u02-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u02-01",
          "unit_id": "o002.u02",
          "title": "Exercise 1 - choosing representations",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u02-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u02-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u02-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-01"
          }
        },
        {
          "id": "ex-o002-u02-02",
          "unit_id": "o002.u02",
          "title": "Exercise 2 - values and identity",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u02-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u02-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u02-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-02"
          }
        },
        {
          "id": "ex-o002-u02-03",
          "unit_id": "o002.u02",
          "title": "Exercise 3 - a function contract",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u02-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u02-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u02-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-03"
          }
        },
        {
          "id": "ex-o002-u02-04",
          "unit_id": "o002.u02",
          "title": "Exercise 4 - a dangerous alias",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u02-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u02-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u02-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-04"
          }
        },
        {
          "id": "ex-o002-u02-05",
          "unit_id": "o002.u02",
          "title": "Exercise 5 - tests and proof",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u02-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u02-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u02-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/02-objek-fungsi.html#ex-o002-u02-05"
          }
        }
      ]
    },
    {
      "id": "o002.u03",
      "title": "Arrays, Shapes, and Vectorization",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html",
      "page": {
        "path": "source/units/03-array-vektorisasi.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html",
        "bytes": 71233,
        "sha256": "61a8bbe818c5ca4cc1ab205cb468ebd44c65a3607f46cfe85fd9d87afc1ee36f"
      },
      "sections": [
        "sec-o002-u03",
        "sec-o002-u03-objectives",
        "sec-o002-u03-array-contract",
        "sec-o002-u03-dtype",
        "sec-o002-u03-vectorization",
        "sec-o002-u03-broadcasting",
        "sec-o002-u03-copy-view",
        "sec-o002-u03-experiment",
        "sec-o002-u03-proof-boundary",
        "sec-o002-u03-exercises",
        "sec-o002-u03-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#sec-o002-u03-objectives",
      "previous_units": [
        "o002.u02"
      ],
      "components": [
        "cmp-o002-u03-text",
        "cmp-o002-u03-code",
        "cmp-o002-u03-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u03-01",
          "unit_id": "o002.u03",
          "title": "Exercise 1 - shape and axis meanings",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u03-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u03-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u03-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-01"
          }
        },
        {
          "id": "ex-o002-u03-02",
          "unit_id": "o002.u03",
          "title": "Exercise 2 - vectorization and invariants",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u03-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u03-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u03-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-02"
          }
        },
        {
          "id": "ex-o002-u03-03",
          "unit_id": "o002.u03",
          "title": "Exercise 3 - a broadcasting contract",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u03-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u03-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u03-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-03"
          }
        },
        {
          "id": "ex-o002-u03-04",
          "unit_id": "o002.u03",
          "title": "Exercise 4 - tracing a view",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u03-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u03-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u03-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-04"
          }
        },
        {
          "id": "ex-o002-u03-05",
          "unit_id": "o002.u03",
          "title": "Exercise 5 - experiments are not general proofs",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u03-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u03-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u03-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/03-array-vektorisasi.html#ex-o002-u03-05"
          }
        }
      ]
    },
    {
      "id": "o002.u04",
      "title": "Visualization with Integrity",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html",
      "page": {
        "path": "source/units/04-visualisasi-integritas.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html",
        "bytes": 99552,
        "sha256": "95113a8398179b58c705f2210368525dc4036610f2ca1b92ed7459a0263e27a1"
      },
      "sections": [
        "sec-o002-u04",
        "sec-o002-u04-objectives",
        "sec-o002-u04-purpose",
        "sec-o002-u04-encoding",
        "sec-o002-u04-progressive-lab",
        "sec-o002-u04-progressive-canvas",
        "sec-o002-u04-progressive-plot",
        "sec-o002-u04-progressive-scatter",
        "sec-o002-u04-progressive-errorbar",
        "sec-o002-u04-progressive-labels",
        "sec-o002-u04-progressive-accessible-save",
        "sec-o002-u04-axes",
        "sec-o002-u04-aspect",
        "sec-o002-u04-uncertainty",
        "sec-o002-u04-accessibility",
        "sec-o002-u04-artifacts",
        "sec-o002-u04-proof",
        "sec-o002-u04-exercises",
        "sec-o002-u04-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#sec-o002-u04-objectives",
      "previous_units": [
        "o002.u03"
      ],
      "components": [
        "cmp-o002-u04-text",
        "cmp-o002-u04-code",
        "cmp-o002-u04-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u04-01",
          "unit_id": "o002.u04",
          "title": "Exercise 1 - question and encoding",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u04-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u04-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-01"
          }
        },
        {
          "id": "ex-o002-u04-02",
          "unit_id": "o002.u04",
          "title": "Exercise 2 - a truncated axis",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u04-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u04-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-02"
          }
        },
        {
          "id": "ex-o002-u04-03",
          "unit_id": "o002.u04",
          "title": "Exercise 3 - the meaning of error bars",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u04-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u04-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-03"
          }
        },
        {
          "id": "ex-o002-u04-04",
          "unit_id": "o002.u04",
          "title": "Exercise 4 - an accessible description",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u04-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u04-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-04"
          }
        },
        {
          "id": "ex-o002-u04-05",
          "unit_id": "o002.u04",
          "title": "Exercise 5 - figures and proof",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u04-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u04-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-05"
          }
        },
        {
          "id": "ex-o002-u04-m01",
          "unit_id": "o002.u04",
          "title": "Mastery exercise - from data to plot to manifest",
          "kind": "mastery",
          "sequence": 6,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-m01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u04-m01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-m01"
          },
          "check": {
            "label": "chk-o002-u04-m01",
            "source_anchor": "ex-o002-u04-m01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-m01"
          },
          "solution": {
            "label": "sol-o002-u04-m01",
            "source_anchor": "ex-o002-u04-m01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/04-visualisasi-integritas.html#ex-o002-u04-m01"
          }
        }
      ]
    },
    {
      "id": "o002.u05",
      "title": "Exact and Symbolic Computation",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html",
      "page": {
        "path": "source/units/05-eksak-simbolik-sage.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html",
        "bytes": 113643,
        "sha256": "2c9b39f0d1fc6197c3e5a3892a242e6377b5b95ba691508078eedbe283b4da11"
      },
      "sections": [
        "sec-o002-u05",
        "sec-o002-u05-objectives",
        "sec-o002-u05-expression-value",
        "sec-o002-u05-assumptions",
        "sec-o002-u05-equivalence",
        "sec-o002-u05-factor-solve",
        "sec-o002-u05-result-proof",
        "sec-o002-u05-canonical-output",
        "sec-o002-u05-sage-bridge",
        "sec-o002-u05-sage-parents",
        "sec-o002-u05-sage-coercion",
        "sec-o002-u05-sage-polynomial-ring",
        "sec-o002-u05-sage-solving",
        "sec-o002-u05-sage-approximation",
        "sec-o002-u05-sage-receipt",
        "sec-o002-u05-exercises",
        "sec-o002-u05-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#sec-o002-u05-objectives",
      "previous_units": [
        "o002.u04"
      ],
      "components": [
        "cmp-o002-u05-text",
        "cmp-o002-u05-code",
        "cmp-o002-u05-test",
        "cmp-o002-u05-sage-code",
        "cmp-o002-u05-sage-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u05-01",
          "unit_id": "o002.u05",
          "title": "Exercise 1 - expressions and values",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u05-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-01"
          }
        },
        {
          "id": "ex-o002-u05-02",
          "unit_id": "o002.u05",
          "title": "Exercise 2 - a missing assumption",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u05-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-02"
          }
        },
        {
          "id": "ex-o002-u05-03",
          "unit_id": "o002.u05",
          "title": "Exercise 3 - equivalence and domains",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u05-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-03"
          }
        },
        {
          "id": "ex-o002-u05-04",
          "unit_id": "o002.u05",
          "title": "Exercise 4 - factors, roots, and checks",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u05-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-04"
          }
        },
        {
          "id": "ex-o002-u05-05",
          "unit_id": "o002.u05",
          "title": "Exercise 5 - stable symbolic artifacts",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u05-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-05"
          }
        },
        {
          "id": "ex-o002-u05-sage-01",
          "unit_id": "o002.u05",
          "title": "Sage exercise 1 - parents, coercion, and factors",
          "kind": "mastery",
          "sequence": 6,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-sage-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-01"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-u05-sage-01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-01"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-sage-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-01"
          }
        },
        {
          "id": "ex-o002-u05-sage-02",
          "unit_id": "o002.u05",
          "title": "Sage exercise 2 - exact solutions and approximations",
          "kind": "mastery",
          "sequence": 7,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u05-sage-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-02"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-u05-sage-02",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-02"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u05-sage-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/05-eksak-simbolik-sage.html#ex-o002-u05-sage-02"
          }
        }
      ]
    },
    {
      "id": "o002.u06",
      "title": "Floating-Point Numbers, Error, and Stability",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html",
      "page": {
        "path": "source/units/06-titik-mengambang-stabilitas.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html",
        "bytes": 111178,
        "sha256": "d9c603c3d5a73c7abad087c8e866697ea4e9f299ce8754a7ec07f4b9922b0337"
      },
      "sections": [
        "sec-o002-u06",
        "sec-o002-u06-objectives",
        "sec-o002-u06-binary-model",
        "sec-o002-u06-ulp-epsilon",
        "sec-o002-u06-range",
        "sec-o002-u06-cancellation",
        "sec-o002-u06-scipy-exprel",
        "sec-o002-u06-forward-backward",
        "sec-o002-u06-conditioning-stability",
        "sec-o002-u06-summation",
        "sec-o002-u06-tolerances",
        "sec-o002-u06-experiment-proof",
        "sec-o002-u06-exercises",
        "sec-o002-u06-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#sec-o002-u06-objectives",
      "previous_units": [
        "o002.u05"
      ],
      "components": [
        "cmp-o002-u06-text",
        "cmp-o002-u06-code",
        "cmp-o002-u06-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u06-01",
          "unit_id": "o002.u06",
          "title": "Exercise 1 - `ulp` and the lost increment",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u06-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-01"
          }
        },
        {
          "id": "ex-o002-u06-02",
          "unit_id": "o002.u06",
          "title": "Exercise 2 - eliminating cancellation",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u06-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-02"
          }
        },
        {
          "id": "ex-o002-u06-03",
          "unit_id": "o002.u06",
          "title": "Exercise 3 - forward and backward error",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u06-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-03"
          }
        },
        {
          "id": "ex-o002-u06-04",
          "unit_id": "o002.u06",
          "title": "Exercise 4 - conditioning or algorithm?",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u06-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-04"
          }
        },
        {
          "id": "ex-o002-u06-05",
          "unit_id": "o002.u06",
          "title": "Exercise 5 - summation, tolerance, and limits on claims",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u06-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-05"
          }
        },
        {
          "id": "ex-o002-u06-scipy-01",
          "unit_id": "o002.u06",
          "title": "SciPy exercise - stability of `exprel`",
          "kind": "mastery",
          "sequence": 6,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-scipy-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u06-scipy-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-scipy-01"
          },
          "check": {
            "label": "Executable check",
            "source_anchor": "ex-o002-u06-scipy-01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-scipy-01"
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u06-scipy-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/06-titik-mengambang-stabilitas.html#ex-o002-u06-scipy-01"
          }
        }
      ]
    },
    {
      "id": "o002.u07",
      "title": "Designing Experiments That Can Be Checked",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html",
      "page": {
        "path": "source/units/07-rancangan-eksperimen.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html",
        "bytes": 62920,
        "sha256": "fd43bed9b8365e989cd212fec5d2e27969eedd4575d47372e31c30ac06b4506b"
      },
      "sections": [
        "sec-o002-u07",
        "sec-o002-u07-objectives",
        "sec-o002-u07-question",
        "sec-o002-u07-variables",
        "sec-o002-u07-grid",
        "sec-o002-u07-randomness",
        "sec-o002-u07-replication",
        "sec-o002-u07-holdout",
        "sec-o002-u07-effect",
        "sec-o002-u07-negative-results",
        "sec-o002-u07-artifact",
        "sec-o002-u07-proof",
        "sec-o002-u07-exercises",
        "sec-o002-u07-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#sec-o002-u07-objectives",
      "previous_units": [
        "o002.u06"
      ],
      "components": [
        "cmp-o002-u07-text",
        "cmp-o002-u07-code",
        "cmp-o002-u07-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u07-01",
          "unit_id": "o002.u07",
          "title": "Exercise 1 - variables and confounders",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u07-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u07-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u07-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-01"
          }
        },
        {
          "id": "ex-o002-u07-02",
          "unit_id": "o002.u07",
          "title": "Exercise 2 - a seed is not a time machine",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u07-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u07-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u07-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-02"
          }
        },
        {
          "id": "ex-o002-u07-03",
          "unit_id": "o002.u07",
          "title": "Exercise 3 - selection and holdout",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u07-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u07-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u07-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-03"
          }
        },
        {
          "id": "ex-o002-u07-04",
          "unit_id": "o002.u07",
          "title": "Exercise 4 - effect size and stopping rules",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u07-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u07-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u07-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-04"
          }
        },
        {
          "id": "ex-o002-u07-05",
          "unit_id": "o002.u07",
          "title": "Exercise 5 - negative results and limits of evidence",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u07-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u07-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u07-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/07-rancangan-eksperimen.html#ex-o002-u07-05"
          }
        }
      ]
    },
    {
      "id": "o002.u08",
      "title": "Testing and Validating Computations",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html",
      "page": {
        "path": "source/units/08-pengujian-validasi.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html",
        "bytes": 77159,
        "sha256": "4cc6a6c837261133f0def7199128b16bfbfd6caf20c750f104d20f346bf6df38"
      },
      "sections": [
        "sec-o002-u08",
        "sec-o002-u08-objectives",
        "sec-o002-u08-assertions",
        "sec-o002-u08-examples-properties",
        "sec-o002-u08-test-levels",
        "sec-o002-u08-oracles",
        "sec-o002-u08-exact-tolerant",
        "sec-o002-u08-edge-domain",
        "sec-o002-u08-metamorphic",
        "sec-o002-u08-independent-validation",
        "sec-o002-u08-artifact",
        "sec-o002-u08-coverage-proof",
        "sec-o002-u08-exercises",
        "sec-o002-u08-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#sec-o002-u08-objectives",
      "previous_units": [
        "o002.u07"
      ],
      "components": [
        "cmp-o002-u08-text",
        "cmp-o002-u08-code",
        "cmp-o002-u08-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u08-01",
          "unit_id": "o002.u08",
          "title": "Exercise 1 — choosing an assertion",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u08-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u08-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u08-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-01"
          }
        },
        {
          "id": "ex-o002-u08-02",
          "unit_id": "o002.u08",
          "title": "Exercise 2 — constructing an oracle",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u08-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u08-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u08-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-02"
          }
        },
        {
          "id": "ex-o002-u08-03",
          "unit_id": "o002.u08",
          "title": "Exercise 3 — metamorphic relations",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u08-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u08-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u08-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-03"
          }
        },
        {
          "id": "ex-o002-u08-04",
          "unit_id": "o002.u08",
          "title": "Exercise 4 — a boundary regression test",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u08-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u08-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u08-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-04"
          }
        },
        {
          "id": "ex-o002-u08-05",
          "unit_id": "o002.u08",
          "title": "Exercise 5 — the limits of testing evidence",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u08-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u08-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u08-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/08-pengujian-validasi.html#ex-o002-u08-05"
          }
        }
      ]
    },
    {
      "id": "o002.u09",
      "title": "Data, Configuration, and Provenance",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html",
      "page": {
        "path": "source/units/09-data-konfigurasi-provenans.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html",
        "bytes": 64648,
        "sha256": "142521de418ffe62f4e046983496609760e7d3597153199fbbcac58c023d2049"
      },
      "sections": [
        "sec-o002-u09",
        "sec-o002-u09-objectives",
        "sec-o002-u09-data-layers",
        "sec-o002-u09-schema-units",
        "sec-o002-u09-configuration",
        "sec-o002-u09-environment",
        "sec-o002-u09-paths",
        "sec-o002-u09-rights",
        "sec-o002-u09-hashes",
        "sec-o002-u09-privacy",
        "sec-o002-u09-manifest",
        "sec-o002-u09-reproducibility",
        "sec-o002-u09-exercises",
        "sec-o002-u09-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#sec-o002-u09-objectives",
      "previous_units": [
        "o002.u08"
      ],
      "components": [
        "cmp-o002-u09-text",
        "cmp-o002-u09-code",
        "cmp-o002-u09-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u09-01",
          "unit_id": "o002.u09",
          "title": "Exercise 1 — raw data, derived data, and lineage",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u09-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u09-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u09-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-01"
          }
        },
        {
          "id": "ex-o002-u09-02",
          "unit_id": "o002.u09",
          "title": "Exercise 2 — schemas and units",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u09-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u09-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u09-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-02"
          }
        },
        {
          "id": "ex-o002-u09-03",
          "unit_id": "o002.u09",
          "title": "Exercise 3 — configuration and safe paths",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u09-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u09-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u09-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-03"
          }
        },
        {
          "id": "ex-o002-u09-04",
          "unit_id": "o002.u09",
          "title": "Exercise 4 — rights and privacy",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u09-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u09-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u09-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-04"
          }
        },
        {
          "id": "ex-o002-u09-05",
          "unit_id": "o002.u09",
          "title": "Exercise 5 — semantics, bytes, and hashes",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u09-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u09-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u09-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/09-data-konfigurasi-provenans.html#ex-o002-u09-05"
          }
        }
      ]
    },
    {
      "id": "o002.u10",
      "title": "Automation and Reproducible Workflows",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html",
      "page": {
        "path": "source/units/10-otomasi-pipa.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html",
        "bytes": 52536,
        "sha256": "2427a36539aa87db624b2bdc4cd0d7b605f2415d4dea717e55ed6518fbfe1389"
      },
      "sections": [
        "sec-o002-u10",
        "sec-o002-u10-objectives",
        "sec-o002-u10-graph",
        "sec-o002-u10-artifact-classes",
        "sec-o002-u10-freshness",
        "sec-o002-u10-atomic",
        "sec-o002-u10-targets",
        "sec-o002-u10-example",
        "sec-o002-u10-proof-boundary",
        "sec-o002-u10-exercises",
        "sec-o002-u10-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#sec-o002-u10-objectives",
      "previous_units": [
        "o002.u09"
      ],
      "components": [
        "cmp-o002-u10-text",
        "cmp-o002-u10-code",
        "cmp-o002-u10-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u10-01",
          "unit_id": "o002.u10",
          "title": "Exercise 1 — task order",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u10-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u10-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u10-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-01"
          }
        },
        {
          "id": "ex-o002-u10-02",
          "unit_id": "o002.u10",
          "title": "Exercise 2 — a cycle",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u10-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u10-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u10-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-02"
          }
        },
        {
          "id": "ex-o002-u10-03",
          "unit_id": "o002.u10",
          "title": "Exercise 3 — timestamps",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u10-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u10-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u10-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-03"
          }
        },
        {
          "id": "ex-o002-u10-04",
          "unit_id": "o002.u10",
          "title": "Exercise 4 — a write failure",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u10-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u10-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u10-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-04"
          }
        },
        {
          "id": "ex-o002-u10-05",
          "unit_id": "o002.u10",
          "title": "Exercise 5 — a green workflow",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u10-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u10-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u10-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/10-otomasi-pipa.html#ex-o002-u10-05"
          }
        }
      ]
    },
    {
      "id": "o002.u11",
      "title": "Numerical Experiments and Their Prerequisites",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html",
      "page": {
        "path": "source/units/11-eksperimen-numerik.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html",
        "bytes": 87538,
        "sha256": "41465ad19041352180309b831587b1bb7b1f9a3552363d499c7eb71b4272b04c"
      },
      "sections": [
        "sec-o002-u11",
        "sec-o002-u11-objectives",
        "sec-o002-u11-method-theorem",
        "sec-o002-u11-bisection",
        "sec-o002-u11-scipy-bisection",
        "sec-o002-u11-quadrature",
        "sec-o002-u11-linear",
        "sec-o002-u11-euler",
        "sec-o002-u11-error-sources",
        "sec-o002-u11-artifacts",
        "sec-o002-u11-exercises",
        "sec-o002-u11-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#sec-o002-u11-objectives",
      "previous_units": [
        "o002.u10"
      ],
      "components": [
        "cmp-o002-u11-text",
        "cmp-o002-u11-code",
        "cmp-o002-u11-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u11-01",
          "unit_id": "o002.u11",
          "title": "Exercise 1 - bisection invariants",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u11-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u11-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-01"
          }
        },
        {
          "id": "ex-o002-u11-02",
          "unit_id": "o002.u11",
          "title": "Exercise 2 - an iteration bound",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u11-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u11-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-02"
          }
        },
        {
          "id": "ex-o002-u11-s01",
          "unit_id": "o002.u11",
          "title": "SciPy exercise - two implementations for a root of a cubic",
          "kind": "mastery",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-s01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-s01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-s01"
          },
          "check": {
            "label": "chk-o002-u11-s01",
            "source_anchor": "ex-o002-u11-s01",
            "status": "executable",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-s01"
          },
          "solution": {
            "label": "sol-o002-u11-s01",
            "source_anchor": "ex-o002-u11-s01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-s01"
          }
        },
        {
          "id": "ex-o002-u11-03",
          "unit_id": "o002.u11",
          "title": "Exercise 3 - a quadrature check",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "prerequisite_deferred",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u11-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u11-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-03"
          }
        },
        {
          "id": "ex-o002-u11-04",
          "unit_id": "o002.u11",
          "title": "Exercise 4 - a residual is not a solution error",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "prerequisite_deferred",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u11-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u11-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-04"
          }
        },
        {
          "id": "ex-o002-u11-05",
          "unit_id": "o002.u11",
          "title": "Exercise 5 - an Euler experiment",
          "kind": "core",
          "sequence": 6,
          "curriculum_status": "prerequisite_deferred",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u11-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u11-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u11-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#ex-o002-u11-05"
          }
        }
      ]
    },
    {
      "id": "o002.u12",
      "title": "A Verifiable Capstone Project",
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html",
      "page": {
        "path": "source/units/12-proyek-akhir.html",
        "url": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html",
        "bytes": 53298,
        "sha256": "140bdc5733c46ece4a36a2b78f18cb9080a74343d6ab482859f6fb3f3376c96e"
      },
      "sections": [
        "sec-o002-u12",
        "sec-o002-u12-objectives",
        "sec-o002-u12-question",
        "sec-o002-u12-claims",
        "sec-o002-u12-package",
        "sec-o002-u12-blind-replay",
        "sec-o002-u12-review",
        "sec-o002-u12-rubric",
        "sec-o002-u12-exercises",
        "sec-o002-u12-summary"
      ],
      "objectives_href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#sec-o002-u12-objectives",
      "previous_units": [
        "o002.u11"
      ],
      "components": [
        "cmp-o002-u12-text",
        "cmp-o002-u12-code",
        "cmp-o002-u12-test"
      ],
      "exercises": [
        {
          "id": "ex-o002-u12-01",
          "unit_id": "o002.u12",
          "title": "Exercise 1 - classifying claims",
          "kind": "core",
          "sequence": 1,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-01",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u12-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-01"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u12-01",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u12-01",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-01"
          }
        },
        {
          "id": "ex-o002-u12-02",
          "unit_id": "o002.u12",
          "title": "Exercise 2 - an incomplete manifest",
          "kind": "core",
          "sequence": 2,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-02",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u12-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-02"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u12-02",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u12-02",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-02"
          }
        },
        {
          "id": "ex-o002-u12-03",
          "unit_id": "o002.u12",
          "title": "Exercise 3 - an unsafe path",
          "kind": "core",
          "sequence": 3,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-03",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u12-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-03"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u12-03",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u12-03",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-03"
          }
        },
        {
          "id": "ex-o002-u12-04",
          "unit_id": "o002.u12",
          "title": "Exercise 4 - nonidentical reproduction",
          "kind": "core",
          "sequence": 4,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-04",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u12-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-04"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u12-04",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u12-04",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-04"
          }
        },
        {
          "id": "ex-o002-u12-05",
          "unit_id": "o002.u12",
          "title": "Exercise 5 - responding to review",
          "kind": "core",
          "sequence": 5,
          "curriculum_status": "complete",
          "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-05",
          "hint": {
            "label": "Hint",
            "source_anchor": "ex-o002-u12-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-05"
          },
          "check": {
            "label": null,
            "source_anchor": "ex-o002-u12-05",
            "status": "not_present",
            "href": null
          },
          "solution": {
            "label": "Answer and solution",
            "source_anchor": "ex-o002-u12-05",
            "status": "complete",
            "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/12-proyek-akhir.html#ex-o002-u12-05"
          }
        }
      ]
    }
  ],
  "prerequisite_routes": [
    {
      "exercises": [
        "ex-o002-u11-01",
        "ex-o002-u11-02",
        "ex-o002-u11-s01"
      ],
      "gate_id": null,
      "id": "route-o002-u11-a30",
      "prerequisite": "A30",
      "required_for_b80": true,
      "sections": [
        "sec-o002-u11-method-theorem",
        "sec-o002-u11-bisection",
        "sec-o002-u11-scipy-bisection",
        "sec-o002-u11-error-sources",
        "sec-o002-u11-artifacts"
      ],
      "status": "core",
      "title": "A30/B80 core route: methods, bisection, SciPy, and sources of error",
      "unit": "o002.u11",
      "required_for_course": true,
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#sec-o002-u11-method-theorem"
    },
    {
      "exercises": [
        "ex-o002-u11-03"
      ],
      "gate_id": "gate-o002-u11-b30",
      "id": "route-o002-u11-b30",
      "prerequisite": "B30",
      "required_for_b80": false,
      "sections": [
        "sec-o002-u11-quadrature"
      ],
      "status": "deferred",
      "title": "B30 extension route: quadrature",
      "unit": "o002.u11",
      "required_for_course": false,
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#sec-o002-u11-quadrature"
    },
    {
      "exercises": [
        "ex-o002-u11-04"
      ],
      "gate_id": "gate-o002-u11-b40",
      "id": "route-o002-u11-b40",
      "prerequisite": "B40",
      "required_for_b80": false,
      "sections": [
        "sec-o002-u11-linear"
      ],
      "status": "deferred",
      "title": "B40 extension route: linear systems",
      "unit": "o002.u11",
      "required_for_course": false,
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#sec-o002-u11-linear"
    },
    {
      "exercises": [
        "ex-o002-u11-05"
      ],
      "gate_id": "gate-o002-u11-b70",
      "id": "route-o002-u11-b70",
      "prerequisite": "B70",
      "required_for_b80": false,
      "sections": [
        "sec-o002-u11-euler"
      ],
      "status": "deferred",
      "title": "B70 extension route: Euler steps",
      "unit": "o002.u11",
      "required_for_course": false,
      "href": "https://kokunoyumeto.github.io/mathematical-computing-reproducible-experiments-en/source/units/11-eksperimen-numerik.html#sec-o002-u11-euler"
    }
  ],
  "labs": [
    {
      "artifact_ids": [
        "art-o002-u04-data",
        "art-o002-u04-figure",
        "art-o002-u04-alt",
        "art-o002-u04-manifest"
      ],
      "environment": "env-o002-python",
      "evidence": "Current English source, executable checks, environment, and generated artifacts are bound.",
      "exercise_ids": [
        "ex-o002-u04-m01"
      ],
      "id": "lab-o002-u04-plotting-m01",
      "kind": "plotting",
      "requirements": [
        "progressive fig/ax plot scatter errorbar construction",
        "labels units legend and accessible description",
        "deterministic data-to-plot-to-manifest mastery"
      ],
      "source_paths": [
        "source/units/04-visualisasi-integritas.qmd",
        "source/code/unit04_visualization.py",
        "tests/test_unit04.py"
      ],
      "status": "complete",
      "unit": "o002.u04"
    },
    {
      "artifact_ids": [
        "art-o002-u05-sage-results"
      ],
      "environment": "env-o002-sage",
      "evidence": "Current English source, executable checks, environment, and generated artifacts are bound.",
      "exercise_ids": [
        "ex-o002-u05-sage-01",
        "ex-o002-u05-sage-02"
      ],
      "id": "lab-o002-u05-sage",
      "kind": "sagemath",
      "requirements": [
        "local execution of ZZ QQ RR SR and coercion",
        "polynomial factorization solving and approximation",
        "two executable Sage mastery exercises with full solutions"
      ],
      "source_paths": [
        "source/units/05-eksak-simbolik-sage.qmd",
        "source/code/unit05_symbolic.py",
        "source/code/unit05_sage_lab.py",
        "tests/test_unit05.py",
        "tests/test_unit05_sage.py"
      ],
      "status": "complete",
      "unit": "o002.u05"
    },
    {
      "artifact_ids": [
        "art-o002-u06-results"
      ],
      "environment": "env-o002-python",
      "evidence": "Current English source, executable checks, environment, and generated artifacts are bound.",
      "exercise_ids": [
        "ex-o002-u06-scipy-01"
      ],
      "id": "lab-o002-u06-scipy",
      "kind": "scipy",
      "requirements": [
        "scipy.special.exprel stable-versus-naive comparison",
        "domain conditioning forward/backward error and proof boundary",
        "executable mastery exercise and tests"
      ],
      "source_paths": [
        "source/units/06-titik-mengambang-stabilitas.qmd",
        "source/code/unit06_floating.py",
        "tests/test_unit06.py"
      ],
      "status": "complete",
      "unit": "o002.u06"
    },
    {
      "artifact_ids": [
        "art-o002-u11-results"
      ],
      "environment": "env-o002-python",
      "evidence": "Current English source, executable checks, environment, and generated artifacts are bound.",
      "exercise_ids": [
        "ex-o002-u11-s01"
      ],
      "id": "lab-o002-u11-scipy",
      "kind": "scipy",
      "requirements": [
        "original bisection versus scipy.optimize.root_scalar(method=bisect)",
        "version bracketing convergence residual and result validation",
        "executable A30 mastery exercise and tests"
      ],
      "source_paths": [
        "source/units/11-eksperimen-numerik.qmd",
        "source/code/unit11_numerical.py",
        "tests/test_unit11.py"
      ],
      "status": "complete",
      "unit": "o002.u11"
    }
  ],
  "environments": [
    {
      "availability": "native",
      "id": "env-o002-python",
      "kind": "python",
      "lock": {
        "bytes": 1846,
        "path": "environment/python-lock.txt",
        "sha256": "28d1f9a5d2b341628fbc5e182ca523da1cfa33473e5714493f8ca18893c31d9a"
      },
      "package_count": 95,
      "platform": "OS-independent package identities; native Windows execution",
      "receipt": {
        "bytes": 17312,
        "path": "output/PYTHON_ENVIRONMENT_QA.json",
        "schema": "o002.python-environment.v1",
        "sha256": "d40764b3cc7d77ebfd2c92d65261c372a8f940bbb59b16125df24c6e9ce2627e"
      },
      "required_packages": [
        "ipykernel",
        "ipython",
        "jsonschema",
        "jupyter-client",
        "jupyter-core",
        "jupyterlab",
        "matplotlib",
        "nbclient",
        "nbformat",
        "numpy",
        "notebook",
        "scipy",
        "sympy"
      ],
      "runtime_version": "CPython 3.13.1",
      "status": "current"
    },
    {
      "availability": "local_wsl",
      "id": "env-o002-sage",
      "kind": "sagemath",
      "lock": {
        "bytes": 34181,
        "path": "environment/sage-ubuntu22.04-dpkg-lock.txt",
        "sha256": "bbd7f235834660681327b975a816b71aabd6d31946e6c875bf55d06224a5d802"
      },
      "package_count": 1064,
      "platform": "WSL Ubuntu 22.04 x86_64",
      "receipt": {
        "bytes": 656,
        "path": "output/SAGE_ENVIRONMENT_QA.json",
        "schema": "o002.sage-environment.v1",
        "sha256": "977beeaa2c1b1647f7b45427856b939005f3c9fba93839fdc854d8bc866eeb87"
      },
      "required_packages": [
        "python3-sage==9.5-4",
        "sagemath==9.5-4"
      ],
      "runtime_version": "SageMath 9.5; apt sagemath 9.5-4",
      "status": "current"
    }
  ],
  "artifacts": [
    {
      "bytes": 727,
      "id": "art-o002-p01-results",
      "kind": "result_json",
      "path": "output/p01-results.json",
      "producer": "cmp-o002-p01-code",
      "sha256": "4079404b5b0c36f8fdd242ab344d850bf1e077e4fbe3332c588490f6422ac454",
      "state": "current"
    },
    {
      "bytes": 4086,
      "id": "art-o002-p01-notebook",
      "kind": "notebook",
      "path": "source/notebooks/o002-p01-clean-kernel.ipynb",
      "producer": "cmp-o002-p01-notebook-generator",
      "sha256": "afefbb4797cfc8b938bb0edfdc6ec5077ea25fe58ac1fd9126b4f35ec4f6f4dd",
      "state": "current"
    },
    {
      "bytes": 9,
      "id": "art-o002-p02-values",
      "kind": "accessibility_text",
      "path": "output/primer02-demo/values.txt",
      "producer": "cmp-o002-p02-code",
      "sha256": "d217f4d7cdcbf548d4364953082cf8ddc2248b653329bebc150d7f6a5aaabcf1",
      "state": "current"
    },
    {
      "bytes": 41,
      "id": "art-o002-p02-measurements",
      "kind": "data_csv",
      "path": "output/primer02-demo/measurements.csv",
      "producer": "cmp-o002-p02-code",
      "sha256": "9e4dcaafbfbf1f7a46a53436f05b22c5aefbdf4388b99b28e819c82b05482539",
      "state": "current"
    },
    {
      "bytes": 194,
      "id": "art-o002-p02-summary",
      "kind": "result_json",
      "path": "output/primer02-demo/summary.json",
      "producer": "cmp-o002-p02-code",
      "sha256": "acfe48e0e449cdb8a4fc49d208cbf435df1769b7f7c5c7cfa62ed97faedbcb88",
      "state": "current"
    },
    {
      "bytes": 589,
      "id": "art-o002-p02-manifest",
      "kind": "manifest_json",
      "members": [
        "art-o002-p02-values",
        "art-o002-p02-measurements",
        "art-o002-p02-summary"
      ],
      "path": "output/primer02-demo/manifest.json",
      "producer": "cmp-o002-p02-code",
      "sha256": "5396ea1f60aa8399db69df9433dbd93f30c14de857d0e9b55e66124217cc52cb",
      "state": "current"
    },
    {
      "bytes": 776,
      "id": "art-o002-u01-results",
      "kind": "result_json",
      "path": "output/unit01-results.json",
      "producer": "cmp-o002-u01-code",
      "sha256": "b74142efe056fe59d54c9b6635d5ed58ac0165bfef30696be5ecc2e187f6f778",
      "state": "current"
    },
    {
      "bytes": 339,
      "id": "art-o002-u02-results",
      "kind": "result_json",
      "path": "output/unit02-results.json",
      "producer": "cmp-o002-u02-code",
      "sha256": "05d2ad13548932aacb18ba5b52545e431a65a9723e9458d9f51155863c21e18a",
      "state": "current"
    },
    {
      "bytes": 1640,
      "id": "art-o002-u03-results",
      "kind": "result_json",
      "path": "output/unit03-results.json",
      "producer": "cmp-o002-u03-code",
      "sha256": "53e121964b52cd022f39e1088b434c04637498912c5021f24b2328acd816b25d",
      "state": "current"
    },
    {
      "bytes": 2138,
      "id": "art-o002-u05-results",
      "kind": "result_json",
      "path": "output/unit05-results.json",
      "producer": "cmp-o002-u05-code",
      "sha256": "cd771d15c170fca705eb1e187cb4e57785e0cfdc7616a2ad9106eeca2bcdabc3",
      "state": "current"
    },
    {
      "bytes": 11704,
      "id": "art-o002-u07-results",
      "kind": "result_json",
      "path": "output/unit07-results.json",
      "producer": "cmp-o002-u07-code",
      "sha256": "671824f85c939ab5817124943cb1689f30ce3aec0230a94ba4844feaeb080b09",
      "state": "current"
    },
    {
      "bytes": 1927,
      "id": "art-o002-u08-results",
      "kind": "result_json",
      "path": "output/unit08-results.json",
      "producer": "cmp-o002-u08-code",
      "sha256": "dc52d191b64a65f012479cb36c1ebb224cd2996df680e69af5dee56d5c9700f2",
      "state": "current"
    },
    {
      "bytes": 7164,
      "id": "art-o002-u09-results",
      "kind": "result_json",
      "path": "output/unit09-results.json",
      "producer": "cmp-o002-u09-code",
      "sha256": "696e20d2b1819137a4fd89a00e5f5fd7c82bd6e1d1bf173977decc5453b83b0f",
      "state": "current"
    },
    {
      "bytes": 1258,
      "id": "art-o002-u10-results",
      "kind": "result_json",
      "path": "output/unit10-results.json",
      "producer": "cmp-o002-u10-code",
      "sha256": "f28175f49dfca7fe718b31917ef353321892673804341678e7748df843acbbe1",
      "state": "current"
    },
    {
      "bytes": 1806,
      "id": "art-o002-u12-results",
      "kind": "result_json",
      "path": "output/unit12-results.json",
      "producer": "cmp-o002-u12-code",
      "sha256": "b1b4528d5fccf0afbf4df9aeb134a887feadc726bdb97cf5d9f6b3286c1441a6",
      "state": "current"
    },
    {
      "bytes": 160,
      "id": "art-o002-u04-data",
      "kind": "data_csv",
      "path": "output/unit04/unit04-data.csv",
      "producer": "lab-o002-u04-plotting-m01",
      "sha256": "f510ee30b5adc1cf470f75c2552ea8254a4513a107e3506dc4ad8c033c6f03be",
      "state": "current"
    },
    {
      "accessibility_description": "art-o002-u04-alt",
      "bytes": 18927,
      "id": "art-o002-u04-figure",
      "kind": "figure_svg",
      "path": "output/unit04/unit04-figure.svg",
      "producer": "lab-o002-u04-plotting-m01",
      "sha256": "b0df53783787b8f27c77d144f287b2f37dbb07f426fba2746b0a1e0959d8409b",
      "state": "current"
    },
    {
      "bytes": 470,
      "id": "art-o002-u04-alt",
      "kind": "accessibility_text",
      "path": "output/unit04/unit04-alt.txt",
      "producer": "lab-o002-u04-plotting-m01",
      "sha256": "5fd0e601f36b560c761da67fd9320f6b2fae6c8ee24b29304692b0aba4830549",
      "state": "current"
    },
    {
      "bytes": 1707,
      "id": "art-o002-u04-manifest",
      "kind": "manifest_json",
      "members": [
        "art-o002-u04-data",
        "art-o002-u04-figure",
        "art-o002-u04-alt"
      ],
      "path": "output/unit04/unit04-manifest.json",
      "producer": "lab-o002-u04-plotting-m01",
      "sha256": "a692f64a84643ecc2b3d4512b0d24d66da77a7cc819ba66a02e21f52eb9d972f",
      "state": "current"
    },
    {
      "bytes": 2229,
      "id": "art-o002-u05-sage-results",
      "kind": "result_json",
      "path": "output/unit05-sage-results.json",
      "producer": "lab-o002-u05-sage",
      "sha256": "04a96a60ac25f77ad28db2a302287b12b96e5f4e2a642003cc94cd8fcf130271",
      "state": "current"
    },
    {
      "bytes": 5830,
      "id": "art-o002-u06-results",
      "kind": "result_json",
      "path": "output/unit06-results.json",
      "producer": "lab-o002-u06-scipy",
      "sha256": "83309fee203b05d856babb037221896a6d1d097ab34fae23309783b9721dbbc9",
      "state": "current"
    },
    {
      "bytes": 4466,
      "id": "art-o002-u11-results",
      "kind": "result_json",
      "path": "output/unit11-results.json",
      "producer": "lab-o002-u11-scipy",
      "sha256": "989f18a0ae60dac4c6c196a9116cb2970bf50121078bcf898d60d39d2dc2fbfa",
      "state": "current"
    },
    {
      "bytes": 40293,
      "id": "art-o002-reader-html",
      "kind": "reader_html",
      "path": "output/index.html",
      "producer": "pipeline-o002-build",
      "sha256": "2949e3e489008999193f6c396e78a79771e98a1cee3b3c7232abbd076f21dff8",
      "state": "current"
    },
    {
      "bytes": 774069,
      "id": "art-o002-reader-pdf",
      "kind": "reader_pdf",
      "path": "output/Mathematical-Computing-and-Reproducible-Experiments.pdf",
      "producer": "pipeline-o002-build",
      "sha256": "12aedcef4d00df81f4d269ac14eb7fc545fbfc057572b6942f15303506e604b2",
      "state": "current"
    },
    {
      "bytes": 295164,
      "id": "art-o002-reader-epub",
      "kind": "reader_epub",
      "path": "output/Mathematical-Computing-and-Reproducible-Experiments.epub",
      "producer": "pipeline-o002-build",
      "sha256": "ed1f8b3e93e56313f27f03f93d1941e39a5485af9975d26f53deef454285e0d8",
      "state": "current"
    },
    {
      "id": "art-o002-source-archive",
      "kind": "source_archive",
      "path": "release/O002_B80_EN_EDITABLE_SOURCE_2026-08-31.zip",
      "producer": "pipeline-o002-build",
      "state": "declared"
    },
    {
      "id": "art-o002-offline-bundle",
      "kind": "bundle",
      "path": "release/O002_B80_EN_OFFLINE_READER_2026-08-31.zip",
      "producer": "pipeline-o002-build",
      "state": "declared"
    }
  ],
  "sources": [
    {
      "id": "src-o002-original",
      "identity": "Independently authored course; additive English translation and localization. Frozen Indonesian catalog SHA-256 447a7ae670a8232a08b24db4ab6288df6f0c3b4d46462206b173830fc55c085d",
      "license": "CC BY-SA 4.0 text; MIT code",
      "role": "original",
      "title": "O002 original coursebook: English-access edition of the Indonesian source",
      "used_in_current_units": true
    },
    {
      "id": "src-o002-walls",
      "identity": "commit 0687916182ab3ddc9e922d4a6eb603609ba91c36; tree b66a9c79aa7144a75d3f83ba53bba4ff8961f91b",
      "license": "CC BY-NC-SA 4.0; separate component rights remain separate",
      "role": "comparison_only",
      "title": "Mathematical Python",
      "used_in_current_units": false
    },
    {
      "id": "src-o002-rse",
      "identity": "commit 62217e6606842ab9752fcf8e73954d1eb4a3cf07; tree f570f30bb8ace202550c474e81eb3414e8976be5",
      "license": "CC BY 4.0 text; MIT code; excluded components remain separate",
      "role": "comparison_only",
      "title": "Research Software Engineering with Python",
      "used_in_current_units": false
    },
    {
      "id": "src-o002-spl",
      "identity": "commit 817a97d8d9a26eeb4e735a402420cd34dd7e89fc; tree 4af72a3d18cf9bfd32ccbf0c1ea099dd4ba65689",
      "license": "CC BY 4.0",
      "role": "comparison_only",
      "title": "Scientific Python Lectures",
      "used_in_current_units": false
    },
    {
      "id": "src-o002-fangohr",
      "identity": "official repository fangohr/introduction-to-python-for-computational-science-and-engineering; DOI 10.5281/zenodo.1411868",
      "license": "CC BY-NC 4.0",
      "role": "comparison_only",
      "title": "Introduction to Python for Computational Science and Engineering",
      "used_in_current_units": false
    },
    {
      "id": "src-o002-sage-tutorial",
      "identity": "commit 686dc1a8d420c2e0aabadd4f602d9a0aa4690c50; src/doc/en/tutorial",
      "license": "CC BY-SA 3.0",
      "role": "comparison_only",
      "title": "Official Sage Tutorial 10.9",
      "used_in_current_units": false
    }
  ],
  "limitations": [
    "This is an additive English projection of the same B80 course, units, exercises, laboratories, and prerequisite routes; it is not a duplicate backend.",
    "The map routes to the public English reader and does not execute Python or SageMath in this program website.",
    "Native experiment receipts are preserved as source evidence and are not rerun by this adapter.",
    "The navigation page works offline; linked lessons and course tools require their own download or network access."
  ]
}
