# OBE Course Manager — v2.19 ([mazhar17.github.io/ocm](https://mazhar17.github.io/ocm/))

> **Deployment note:** upload `aust_logo.svg` alongside `index.html` — the official AUST logo shown on the Documents. If the file is absent, the documents simply render without the logo.

See `change_log_v2.19.txt` for the version history (the log file is renamed with each release). All multi-line entry boxes throughout the app open at five rows and grow automatically with the text. The app's areas are organised as **Sections**, and the long ones are split into **sub-sections** (a pill bar under each Section's guidance card): T&L (Planning per CO | Learning Resources | Topic-wise Plan | Summary Tables), Assessments (Plan | Summary & Tips), Attainment (Direct-CO | Direct-PO | Survey | Combined) and Data & Backup (File & Backups | Pools | Danger Zone & About). CQI stays one page — its diagnose → describe → decide → close pipeline is navigated by a sticky **Jump to** bar, and its six content cards collapse to their headings with live one-line progress statuses (collapsed by default; independent toggles; jumping auto-expands the target). The same folded-card idiom declutters the Assessments Section (each assessment collapses to a status line; a new one opens ready to edit) and the T&L per-CO recommendation cards, the T&L summary tables, the two pools in Data & Backup, and every previously button-collapsed card (PO Indicators, Learning Resources register, CQI Inputs) — plus the Topic-wise Plan, the Suggested Modifications boxes and the CA per-CO blocks (whose collapsed view doubles as an alignment scoreboard): one consistent heading-click language throughout.

A free, single-file web app for managing **teaching, learning & assessment from the OBE (Outcome-Based Education) perspective** — built for engineering faculty working under the Washington Accord / BAETE framework.

Everything runs in the browser. No server, no database, no login. All data stays on the user's device (browser localStorage), with JSON/CSV export–import for backup and sharing.

## Features

- **Course Info** — course code, title, credits, semester, program, teacher; editable attainment thresholds. Every field saves automatically as it is edited — no Save buttons. Every tab opens with a collapsed **guidance card** ("What to do in this tab") — a one-line summary always visible, and on expansion 4–5 concrete instructions plus a colour-coded what comes in / what you do here / what comes out diagram; excluded from printing.
- **COs & CO–PO Mapping** — write CO statements, choose the Bloom's Taxonomy (BT) Domain (Cognitive, Affective, or Psychomotor) with the matching Level (C1–C6, A1–A5, P1–P7); click-to-tick CO–PO mapping matrix (✓) against the 12 Washington Accord Program Outcomes. A per-course **OBE Framework** selector (Course Info) chooses **Version 2.2** (the current 12 POs — the default) or **Version 3** (the updated 12-PO set with the official 46 **PO Indicators**, lettered PO1a…PO12b): under v3 an optional, documentary-only indicators card lets each CO tick the specific indicator(s) of its mapped POs (auto-ticking the parent PO), with a per-course editable indicator list (reset to official available) and a printed indicators table on the Course Outline and Specifications. A **§14 mapping matrix** below the CO–PO matrix ticks each CO's Knowledge Profile / Complex Problem / Complex Activity attributes with click-to-✓ cells (same idiom as the CO–PO matrix) — strictly **WK1–WK9 / WP1–WP7 / EA1–EA5** under v3 (official descriptors as tooltips, WP1-gateway and PO→WK consistency hints) and K/P/A under v2.2 — printing as Course Outline §14.
- **T&L Activities (CQI recommender)** — a built-in pool of 36 teaching & learning activities tagged by Bloom's level, mode (in-person/online), and class size. For each CO the app recommends the best-fitting activities, **boosting** ones suggested in the previous semester's CQI recommendations (Course Specifications 6.1 / Course Report 6.1) and **ranking down** ones marked ineffective in the previous Course Report (3.2). One click adopts an activity into the CO's delivery methods, which then flow automatically into the Course Specifications constructive-alignment table — closing the CQI loop. Each CO card also accepts **your own activity** typed directly — with autocomplete suggestions from the T&L Activity Pool as you type (keeping names consistent for CQI tracking), optionally saved to the pool auto-tagged with the CO's domain/level — and a "show all matching" toggle reveals every suitable pool activity. Faculty/departments can extend the pool with custom activities (kept in backups for sharing), each with optional practical tips — the T&L Activity Pool browser and custom-entry form live under **Data & Backup**. A collapsed **"Learning Resources shared with students"** register (placed before the topic plan) records the materials you share — class slides, the LMS course site, companion sites (e.g., NotebookLM), interactive infographics, videos, rubrics, tip sheets — as links only (the LMS stays the host), each tagged with its **Related COs** (tick-chips); choose the **Type** first and the Title box suggests only the matching entries of the curated **T&L Resource Pool** (Data & Backup — 16 resource kinds, each with description, engineering-education justification and practical tip; custom entries shareable via backups; Type "Other" shows the full pool, and free-typed titles are always accepted) — picking a pool entry prefills a practical tip. The register is kept by ⟳ Duplicate for New Semester, prints as Course Outline 17.3 (with CO labels) when non-empty, appears in the Annexure H checklist, is cited and *acted on* by all the AI prompts (narratives cite resources as delivery evidence; action plans may add/revise them; the closure prompt counts added resources as implemented actions), carries a per-entry **Verified date** (amber badge after six months), and offers **"📋 Copy resource list (for LMS posting)"**. A **T&L Resources Summary Table** (before the Activities Summary Table) consolidates every registered resource with its pool description, practical tip and Related CO. A **Topic-wise T&L Plan** table shares its Topics and Planned Hours with Course Specifications 4.1 (⛓ linked) and adds per-topic **Related COs** tick-chips, an auto-filled **T&L Methods** column (union of the ticked COs' adopted activities — each blue chip deselectable per topic with a dimmed restore, without un-adopting it elsewhere) plus removable topic-specific activity chips, a rightmost **Resources** column (auto-filled from the register's CO tags as blue chips — deselectable per topic with a dimmed restore — plus manual green chips with autocomplete), and its own Topics Template (CSV) / Import buttons. A collapsed **"Browse the full T&L Activity Pool"** toggle beside Recommendations per CO opens a read-only reference table of all 36 activities (Bloom levels, descriptions, tips). A **T&L Activities Summary Table** at the bottom of the tab lists every adopted activity with a brief description, classroom-ready practical tips (authored for all 36 built-in activities) and the related CO(s) — a quick lesson-planning reference. A "CQI Inputs from the Previous Offering" card (shared by the T&L and Assessments tabs, collapsed by default to a one-line summary) is editable when expanded — all five loop rows offer entry boxes for the ⛓ Specifications 6.1 recommendations from the previous offering, writing into the one shared dataset (documents and CQI tab update instantly; this offering's actions for the *next* offering are written in the CQI tab or Course Report 6.1, not here); its **📋 Copy AI Prompt (T&L suggestions only)** button extracts just the teaching-learning advice from Specifications 6.1 as adoptable activities, while the Assessments tab's card carries **📋 Copy AI Prompt (assessment suggestions only)** for the assessment advice — both built from the same shared blocks, so they always stay consistent. Everywhere the 6.1 tables appear they carry a **⛓ linked** badge (one dataset shared between the documents and the CQI tab), and a **"CQI loop at a glance"** map (atop the CQI tab) shows the whole cycle — START → PLAN → DO·CHECK → ACT → ⟳ REPEAT. The Dashboard workflow sits in its own card, grouped by PDCA phase with stepper circles (✓ done / next / pending) and one-line steps whose full instructions expand on demand. Working-notes boxes beneath each CQI Inputs card — **Suggested Modifications in T&L Activities** and **Suggested Modifications in Assessment Activities** (full-width, auto-growing, each hosting its tab's scoped AI-prompt button) — keep the distilled suggestions in view while you act on them; pool activities named in the T&L box are boosted in the recommendations. The "Actions reflected" closure text (Specifications 6.1, second column) is drafted by the CQI tab's AI prompt as its task item 6, synthesized from those two boxes.
- **Assessments** — plan quizzes, mid/final exams, labs, projects and **Class Performance (CP)**; every item/question is tagged with a CO, maximum marks, and a Bloom **Level** (inherited from its CO; setting it above the CO's declared level raises a constructive-alignment warning, override-able with a visible ↑ marker). An **Assessment Summary Table** at the bottom of the tab shows, per CO, the assessments measuring it, its % of total marks (with a stacked marks-distribution chart) and **Practical Tips** — rule-generated advice on authentic, rubric-based assessment, each tip naming the assessment(s) it concerns (mandatory rubric + similarity check, e.g. Turnitin, for assignments; analytic rubrics shared in advance; realistic exam problems with pre-moderated marking schemes; authorship checks in the AI era; individual accountability in group work; parallel choice questions; observation checklists for affective/psychomotor COs), grounded in the assessment literature cited in the Manual; a totals row flags marks not mapped to any CO. A collapsed per-assessment **Complex attributes (WP/EA) matrix** tags which complex-problem/activity attributes each question exercises — Cognitive C4+ items carry an amber *WP expected* badge until tagged, the CA Section flags §14 claims no item evidences, and a Complex Attributes column prints in the Specifications 5.1 blueprint. Two further sub-sections: **CEP & CEA** — per-Project/Assignment audit forms justifying every tagged attribute (printable "CEP & CEA Audit Forms") — and **Rubric** — an analytic-rubric generator seeded from the COs and WP/EA tags, editable in place with an AI prompt for level descriptors (printable "Assessment Rubrics"; completing one ticks *Rubric prepared*). v1.95 adds the official Version 2.2 K/P/A descriptor texts (audit forms and matrices now show them for v2.2 courses) and a new printable **Final Exam Vetting Form with CEP/CEA** — auto-filled question analysis and CEP/CEA coverage summary with a P1/WP1 gateway warning, hand-completed checklist and sign-off. v1.96 ships a comprehensive sample course — CO-level K/P/A maps, a Design Project with worked audit form and rubric, a blank-audit Assignment for live demos, and tagged exam questions — and fixes the "P/WP expected" badge, which previously never fired. v1.97 makes rubric performance levels addable/deletable (2–6 columns) and adds 🖨 Print/Share with Students buttons that open polished, student-facing rubric and CEP/CEA sheets. v1.98 adds a Final Report assessment type, widens audits/rubrics to six assessment types, introduces open-ended lab support (flag, task statement, OEL rubric criteria, CEP/CEA nudge) and a second demo button — a Fluid Mechanics Sessional with two open-ended labs. v1.99 adds an **About** Section — a per-Section methodological-basis table and 16 numbered references (Spady, Biggs, Bloom/Anderson & Krathwohl, IEA, BAETE, Felder & Brent, Jonsson & Svingby, Brookhart, Feisel & Rosa, Deming, and more) with clickable citations from every guidance card — and corrects the demo courses (one PO per CO; CEA claims only under the communication PO). v2.00 enforces one-CO↔one-PO in the demos, copies CO statements into the CO–PO matrix, and adds a **measurable-verb alarm** — CO statements opening with know/understand/appreciate-style verbs get an inline, literature-cited warning with observable alternatives (references 17–20 added). v2.01 fixes the sample sessional's learning domains — it now spans Psychomotor (apparatus handling; report & viva performance), Cognitive (analysis, experiment design) and Affective (lab safety & teamwork, a new CO mapped to PO9) — and turns the verb alarm red. v2.02 merges an independent citation audit: 31 linked references (DOI/ERIC/publisher), corrected attribution of the improvement cycle (PDSA, via Moen & Norman and Taylor et al.), qualified claims on rubrics, virtual labs, surveys and alignment, and a clear separation of peer-reviewed scholarship from official standards ("Evidence basis"). v2.03 replaces the built-in sample with a full ME 4011 case built from its approved Course Outline — loading as three offerings (Fall 2024 → Spring 2025 → Fall 2025) — and adds an Attainment sub-section **Cohort Comparison**: per-CO/PO attainment across every offering sharing a course code, with trend arrows and a grouped chart. v2.04 replaces the sessional demo with a full ME 3106 Fluid Mechanics Sessional case built from its approved Course Outline — three open-ended labs each with a complete audit and rubric — with CEA evidence removed since the outline maps no communication PO. v2.05 adds the CQI card **Complex-Engineering Coverage Gaps** — it compares item-level P/A evidence with the §14 claims, explains each gap and proposes wording you can add to the action plan in one click — and loads the sessional sample as three offerings (Spring 2024 → Fall 2024 → Spring 2025) for Cohort Comparison. v2.07 extends that card (now **Outcome Quality & Coverage Gaps**) to CO wording: a non-measurable verb in an approved outcome, or a verb that disagrees with its declared Bloom level, yields a Bloom-matched proposed statement and next-cycle action routed through the approval process. v2.08 adds **Save the App for Offline Use** (Data & Backup): one click saves the running app as a version-stamped HTML file for offline use, with a caution that it carries the app, not your data. v2.09 ships both samples in **both framework versions** — four demo buttons, each loading three offerings — with the v3 variants carrying a considered PO re-mapping (the v2.2 PO6/PO7 merge) and ticked **PO Indicators**, so the indicator tables print in the Outline and Specifications. v2.12 adds the **CO Modification Request Form** — the Specialization Committee route for revising an approved outcome, with the Existing side copied live from the course, one-click drafting from CQI findings, SMART verification, a framework-transition draft (v2.2 → v3), and a framework-aware printable in the Documents Section. v2.13 adds the **CE Moderation Form** — internal audit and moderation of a project's complex-engineering evidence, generated from the audit forms and item tags — prints both wide forms in landscape, makes every authored field editable inside the Documents Section, and adds **Export for Word (.doc)** to every document. v2.14 folds the CEP & CEA audit printable into that one form — it now covers every assessment carrying complex-engineering tags (including open-ended labs) and shares a single store with the audit card, so the same evidence is written once and printed once. v2.15 implements **UN SDG integration for Framework Version 3** (BAETE Criterion 5.3(6)): a CO×SDG claim matrix, SDG tags on adopted T&L activities and assessments, an SDG attainment sub-section (internal diagnostic), a printable **SDG Integration Map**, sections in the Course Outline and Calculations, and honesty checks for claims without evidence. Invisible on Version 2.2 courses, where the requirement does not apply. v2.16 gives the SDG work its own sub-sections — **SDGs** under T&L and **SDG Assessment** under Assessments — with tick matrices, per-goal remarks that print in the Integration Map, and PO2/PO3/PO6-based suggestions offered as hollow marks with an *Accept suggested* button rather than being ticked automatically. v2.17 closes five gaps found by auditing OCM against the BAETE SAR template: a **SAR Table 2.2.1** printable, a **Laboratory Activities** table in the Specifications (SAR 3.8.1), a record of **feedback returned to students** (Criterion 5.5(3)) printed in the Course Report, a **grading policy** field, and two extra Annexure H evidence lines — plus a Design Project in the theory sample so the culminating-course evidence can be demonstrated. v2.18 makes OCM adoptable by any university: a new **Setup** Section holds the institution name, address, logo, faculty and department, the signatory titles printed on the forms, and the institutional defaults for new courses — while all BAETE vocabulary and the app's own attribution stay fixed. v2.19 keeps a single **Final Exam Vetting Form** (the CEP/CEA one, as accreditation requires) and splits the Documents Section into **Key Documents for OBE Implementation** and **Additional Documents for Accreditation Visits**, so a newcomer sees what a semester actually needs. The **Class Performance** type needs no questions: set its total (typically 10) and tick the Related COs — the marks split equally among them, the teacher enters one CP mark per student (distributed automatically so every CO receives the same percentage), and courses taught in parts simply add one CP assessment per part. Assignment/Project/Presentation/Viva cards carry a **"Rubric prepared"** checkbox — until ticked, the summary shows an amber *rubric pending* badge, and rubrics appear in the CQI tab's Annexure H evidence checklist.
- **CA (Constructive Alignment)** — live Biggs triangles (Course Outcomes / T&L Activities / Assessments, "Knowledge · Skills · Attitudes" at the centre): a course-level triangle on top, and a compact triangle **repeated in every CO card**, its edges colored by that CO's own alignment state — live from the CO's adopted activities (⛓ T&L tab) and assessment items (⛓ Assessments tab). Each card header shows the CO statement and its Bloom's Domain & Level (e.g., "Cognitive · C6 Create"), with verified/mismatch/unverified activity indicators and rule-based **suggestions for proper CA**: unassessed COs, missing or level-mismatched activities (one-click Adopt), items exceeding the CO's level, under-assessed COs, high-level COs assessed only by quizzes, and choice-only measurement warnings.
- **Students & Marks** — add students individually or bulk-paste from Excel with explicit **Add to List** / **Replace List** actions (Replace matches by Student ID so corrected lists keep already-entered marks; a confirmation states the counts) and a **Remove All Students** reset; spreadsheet-style marks grid with **frozen header rows and frozen #/ID/Name columns** (the grid scrolls in its own box, so long classes and many items stay navigable); cells accept **decimals, fractions and mixed numbers** (1.67, 2/3, 1 2/3 — stored as decimals); CSV export/import of the full marks sheet (headers use the bare item label where unique, qualified only where labels collide; legacy headers still import). Assessments and items can be **reordered with ▲▼**, and the order flows to the grid and CSV.
- **Attainment (Direct)** — automatic CO attainment (% of students scoring above the threshold per CO) and PO attainment (weighted by mapping strength), with color-coded tables and charts against the target line.
- **Indirect Measurement (Course Evaluation Survey)** — students rate each CO on a 5-point Likert scale at semester end. Enter response counts in a tally grid, or import a survey CSV — download the template and fill it in Excel, or use a Google Forms export. Indirect CO attainment = % of responses rated at/above the threshold (default ≥ 4); indirect PO values are derived through the CO–PO mapping, weighted by CO marks. Beyond the CO block (the *only* input to attainment), the survey carries **six toggleable course-feedback items** — activities helped me learn, resources supported my learning, assessments matched what was taught (student-perceived constructive alignment), rubrics clear in advance, feedback timely, pace manageable — plus an optional **usefulness item per registered Learning Resource** and two open questions on the printed form. Feedback tallies (n, avg, % ≥ 4) sit beside the CO grid marked "not part of attainment", print as an additional table under Course Report 5.1, and feed all the AI prompts as perception evidence; the CSV template and import cover the new columns and remain backward-compatible. A printable survey form is included under Documents. Every item's wording is editable **in place** — type over the auto text; clearing reverts (attainment stays keyed to the CO), custom **open-ended questions** print on the form with response-summary boxes cited by the CQI prompts, and **⬇ Google Form Script (.gs)** generates an Apps Script that builds the whole survey as a Google Form in your own account — item titles match the CSV import, so responses flow straight back.
- **Combined Attainment** — weighted combination of direct and indirect measurements (default 80/20), per CO and PO, judged against the same Target KPI. Only the Direct weight is edited; Indirect is always 100 − Direct, so the pair can never exceed 100%.
- **CQI tab (BAETE Criteria 3.8 & 5.4.3)** — arranged top-to-bottom in the working order **diagnose → describe → decide → close** (the printable CQI Report re-arranges everything into BAETE's reading order automatically): first the **Low Attainment Analysis** linked to the Attainment tab (filter students below a threshold per CO, see item-wise average scores with weak items highlighted, record analyses w.r.t. T&L activities and assessment techniques plus comments); then the BAETE 3.8 card (auto-compiled per-CO table of T&L methods, assessment tools and CP/CEA coverage, plus narrative fields for complex-problem coverage, effectiveness, assessment-tool design and question moderation); then the BAETE 5.4.3 card (live six-step CQI-loop status board and improvement-action tables two-way linked with Course Report 6.1 and Course Specifications 6.1); then a stakeholder feedback register and an Annexure H evidence checklist. Every prompt button sits in the heading of the section it fills, run top to bottom: **Step 1 — 📋 (low-attainment analysis)** is tiered — a full (a)/(b)/(c) diagnosis for not-attained COs, brief preventive "improvement watch" notes for attained-but-borderline ones (below KPI + 15 points, or carrying a weak item), and an explicit collective no-action line for strongly attained ones — and its pasted findings then flow, lens-matched, into the T&L and Assessments tabs' Suggested Modifications prompts as well; **Step 2 — 📋 (3.8 narratives)** drafts only the four narrative boxes, engaging critically with the Step-1 analyses; **Step 3 — 📋 (Report 6.1 actions)** drafts only the five forward-looking action rows for the next offering, embedding the pasted analyses, narratives and working notes with a consistency requirement; **Step 4 — 📋 (Spec 6.1 closure)** drafts only the backward-looking "how they were reflected" column (exactly five labelled blocks with fallback rules) — it needs no marks, runs any time once implementations begin, and declines when there are no previous recommendations to close. All prompts contain the methodology, COs with mapped Washington Accord POs, assessment plan and aggregate results — never student identities — and require the AI to justify every suggestion (one sentence each). A consolidated printable **CQI Report** is included under Documents — fully auto-generated, nothing to fill in on the document itself; the 🖨 print button sits in a closing card at the bottom of the CQI tab, marking the workflow's finish line.
- **Documents** — the standard OBE documents (following the AUST templates), auto-filled from the course data and printable (*Print → Save as PDF*):
  1. **Course Outline** (COs with PO/Bloom C-A-P mapping, Knowledge Profile / Complex Problem / Complex Activities mapping, a user-managed assessment-methods percentage table — add/delete rows freely, e.g. Attendance, with an optional prefill from the Assessments tab and a 100% total check — and a 14-week plan with CSV template download/import, references, signature blocks)
  2. **Course Specifications** (SLT; constructive alignment table whose Delivery Methods show every adopted T&L activity in full auto-growing boxes and whose Assessment Method column is auto-filled per CO from the ⛓ Assessments tab, with a box for additions; planned contact hours — with a Topics Template (CSV) download/import that preserves actual hours on re-import — assessment blueprint, CQI recommendations — section 6.1 is ⛓ linked to the CQI tab and feeds the scoped AI-prompt buttons in the T&L and Assessments tabs)
  3. **Final Examination Vetting Form** (CO–question mapping auto-filled per assessment, checklist, vetter verification and signature blocks)
  4. **Direct CO-PO Calculations** (same method and layout as the AUST workbook: % of students above Target Pass Marks and above KPI, per CO and PO)
  5. **Course Report** (CO analysis with modification columns, contact-hour variation, TLA and resources analysis, IUMS grade distribution — typed in or filled in bulk from a screen-only paste box under table 4.1 — CO/PO KPI attainment with embedded attainment charts, indirect assessment summary with attained flags, combined direct+indirect attainment tables, CQI action plans, HOD approval)

  Dotted fields in these documents are editable in place and save automatically; everything already entered elsewhere in the app fills in by itself.
- **Data & Backup** — export/import all courses or a single course as JSON; share a course file with a colleague or the OBE committee.
- Multiple courses are supported — switch from the dropdown in the header.
- A built-in **sample course** (Dashboard → *Load Sample Course*) lets you explore every feature instantly.

## How to host on GitHub Pages (free)

1. Sign in at [github.com](https://github.com) (create a free account if needed).
2. Click **+** (top right) → **New repository**. Name it e.g. `obe-course-manager`, keep it **Public**, click **Create repository**.
3. On the repository page, click **uploading an existing file**, drag in `index.html` (and this `README.md`), then click **Commit changes**.
4. Go to **Settings → Pages** (left sidebar).
5. Under **Build and deployment → Source**, choose **Deploy from a branch**; select branch **main** and folder **/ (root)**; click **Save**.
6. Wait ~1 minute. Your app will be live at:
   `https://<your-username>.github.io/obe-course-manager/`

Share that link with colleagues — each person's data stays private in their own browser.

### Updating the app later
Edit or re-upload `index.html` in the repository (Add file → Upload files → Commit). GitHub Pages redeploys automatically.

## Running without hosting

Just double-click `index.html` — it opens and works in any modern browser (Chrome, Edge, Firefox). Internet is needed only on first load, for the chart library.

## Important notes on data

- **Recommended: work on a real file.** In Chrome/Edge, use the **📁 File menu in the header** — New Data File… (fresh workspace; your custom activity pool carries over), Open Data File…, Save As…, Save Now (Ctrl+S), Stop Using File — to keep all data in a `.json` file on your computer. The same actions exist under Data & Backup. Every change then auto-saves to the file (header shows "saved"/"saving…"). Keep the file in a OneDrive/Google Drive/Dropbox folder and it is backed up and portable across computers. After reopening the browser, click **Reconnect** once to resume.
- **Ctrl+S / Cmd+S** saves at any moment: it commits the field being edited, flushes the pending file write immediately (with a linked file), or confirms that everything is stored in the browser. The browser's own "Save page as…" dialog is suppressed.
- Without a linked file, data is stored per browser, per device (localStorage) — clearing browser data erases it, so export JSON backups regularly from **Data & Backup**.
- To share with the department, send the `.json` file (or a JSON export) — colleagues open it via **Open Data File…** or Import.
- Nothing is ever uploaded anywhere; the app has no backend.

## Attainment method (AUST Direct CO-PO Measurement)

Identical to the AUST "Direct CO-PO Calculations" workbook:

- Assessment items are **mandatory** (default) or **choice questions** (unticked in the Assessment Plan — the AUST pattern "answer any four of Q2–Q7"). A student's **CO score** = percentage obtained of the marks *assessed* under that CO: a blank mark on a mandatory item counts as 0, while a blank on a choice question is excluded from that student's calculation — students are never penalized for legitimately skipping choice questions. Sub-parts of one choice question can share a **Group** (e.g., Q3a/Q3b → "Q3"): attempting any part engages the whole question, so unanswered parts count as 0 — partial answers to a chosen question *are* penalized. Question groups and the **choice scheme** live under each assessment's collapsed **⚙ Advanced (question choice)** section, so the default interface stays simple. Each assessment can declare a choice scheme ("students must answer *k* of the choice questions"): a student attempting fewer than *k* has the shortfall counted as zeros (drawn from the unattempted questions with the highest marks), while a student with no marks in that assessment is treated as absent and excluded. Students with no assessed marks under a CO are excluded from that CO's cohort. The full methodology with worked examples is in `Attainment_Calculation_Methodology.docx`.
- **CO measurement** = % of students scoring **above the Target Pass Marks** (default 40); also reported: % of students above the KPI marks (default 50).
- A student's **PO score** = the student's CO scores mapped to that PO, weighted by each CO's allocated marks (a ✓ in the CO–PO matrix counts as mapped).
- A CO/PO is **attained** when the % of students above the pass marks reaches the **Target KPI** (default 50%).

All three thresholds are editable per course in **Course Info → Attainment Settings**.

## License

© 2026 Prof. Mazharul Islam ([mazhar17.github.io/MI](https://mazhar17.github.io/MI)). Distributed under the [Creative Commons Attribution (CC BY) 4.0 International License](https://creativecommons.org/licenses/by/4.0/) — free to share and adapt with attribution.
