1. Glossary and domain model¶
One concept, one word. The terms below are used as they are in the spec, the code and the interface.
1.1 Glossary¶
| Term | Definition |
|---|---|
| User | A person authenticated by edu-ID. Carries a global role: student, teacher or admin. The role comes from the edu-ID affiliation attribute, the admin is a configured edu-ID. |
| Course | A teacher's teaching unit, persistent from one year to the next. E.g. "Programmation C". References one or more pools. |
| Hidden course | A course a user took out of their own navigation (F-ORG-11). A per-user display state, not a state of the course: the word is "hidden", never "archived", which is a state of a classroom seen by the whole staff. |
| Classroom | An instance of a course for a group and a period. E.g. "Prog C, class A, autumn 2026". Owns a roster. May be connected to one GitHub organization and carry one journal (ADR-035). heig-classroom's "classroom" (top-level, bound to an organization) maps to a course plus a classroom here. |
| Period | When a classroom runs: a free label (2026-A, "Autumn 2026") and, optionally, a first and a last month (YYYY-MM, both or neither). The HEIG-VD semesters are the presets: autumn N = September N – January N+1, spring N = February – July. A dated classroom is current while its months, give or take one month on each side, cover today; an undated one is always current. "Ended" is computed, never written: nothing is archived automatically. |
| Roster | The list of the students of a classroom, with their accommodations. Fed by the teacher only, by CSV import or by hand; a student's line is claimed at sign-in on a matching address (ADR-053). |
| Pool | A collection of questions. Private to a teacher, or shared with roles. A global public pool is readable by every teacher. |
| Category | A hierarchical folder in a pool. Used for filing, not for permissions. |
| Tag | Historical: the free keyword a question carried before the cut-over, replaced by Concept (ADR-081, third addendum). The word no longer names anything in the interface; the tag tables and the administration's sorting of them are gone (step (d)). |
| Concept | What a question exercises, from one vocabulary shared by the whole instance (ADR-081): a stable id, a label and a description in French and in English, curated aliases, broader and related concepts. A course declares the concepts of its syllabus. Created by a teacher as proposed, consolidated by the admin. |
| Question | A stable entity of the pool, identified by an id. Carries the type, the internal name, its concepts, the difficulty. Its content lives in its versions. |
| Question version | The content of a question at a point in time: statement, configuration, answer key, explanation. Numbered 1, 2, 3. Immutable once published. |
| Draft | The version being edited, unnumbered, never usable in an evaluation. Publishing creates the next version. |
| Question type | A plugin that defines the configuration schema, the answer schema, the editor, the player, the review view and the grader. E.g. mcq, short, cloze, code. |
| Evaluation | An ordered set of question versions with run settings, created in a classroom. A single term: no quiz, assignment or session. |
| Activity | What a classroom gives its students to do: an evaluation (exam, exercise, poll) or a project. The student's Activities is the summary of the active activities of all their classrooms. The journal is not an activity. heig-classroom's commit-graph panel is called "repository history", never "activity". |
| Project | The activity kind of the merge (D01): graded work in a GitHub repository of the classroom's organization, one per student or per group, a lab as well as a semester project (F-PROJ). heig-classroom's "assignment"; the word "assignment" stays forbidden outside migration code and the wire names GitHub already carries (I16). |
| Source repository | The teacher's repository a project is made from, in the classroom's organization. Never shown to a student, nor its existence. Never called a "template", which is an evaluation template's word. |
| Distribution repository | The private repository the platform builds from the source and hands out from (<slug>-squashed): the source's tree in one commit per branch (squash), or its history (whole). Written by the App only. |
| Student repository | The repository of one student, or of one group (group repository), made at Accept from the distribution repository, with which it shares an ancestor. The student holds the push permission, never more. |
| Group set | A named list of groups of a classroom's students (fr répartition), reusable by several projects; formed by the staff, by hand or at random, or by the students (ADR-070). A student is in at most one group of a set. The word "team" is not used: it names the course's staff in French and Microsoft Teams in English. |
| Project group | A project's copy of a group of its group set; it follows the set until the deadline, then no longer moves. One repository per group (ADR-048, ADR-070). A student is in at most one group of a project. |
| Push receipt | The server's own record of a push to a tracked repository — head commit and the time the platform received the webhook — written as the webhook arrives. The legal reference of a deadline: the commit's date is never trusted (ADR-012). |
| Grade run | One CI run of grading.yml on a student repository, with the score it reported (points / max) or why it has none. Immutable. heig-classroom's name, kept for the table (project_grade_runs), though it holds a score. |
| Score | Points out of a maximum, as a project's CI reports them (4.5/6). Never a grade: a score becomes a grade through the project's grading scale, at the release. |
| Repository deadline | A student repository's own deadline, an individual extension its staff set (D13 as amended 2026-10-02). Its effective deadline is that one when set, else the project's: every deadline rule of a repository — its lock or commit, a late receipt, its freeze — reads the effective one. Never the roster's extra time (F-ORG-07). |
| Frozen score | The score of a repository at its (effective) deadline: provisional at the deadline, definitive at the deadline plus the grace. Later runs never change it. |
| Final score | The score a project's release gives a student: the teacher's, else the final review's, else the frozen score. Amended 2026-10-12 (ADR-106 §7): the validated criteria's total ranks between the teacher's and the review's. |
| Review checkpoint | A dated step of a project at which the repository's CI is asked for a review of the work so far (grade-milestone on the wire). Never counts for the score. heig-classroom's "milestone", a word Quiz keeps for an evaluation's navigation checkpoint. |
| CI runner | The self-hosted GitHub Actions runners that run a project's CI (ADR-007). Never "runner" alone, which is apps/runner. |
| Release | The one verb for making results the students': an evaluation's results (F-GRADE-09), a project's final scores (F-PROJ-14). heig-classroom's "validate the grades" is a release. |
| Gradebook | A classroom's grades in one table: a column per released activity that counts, a row per student, a weighted mean (F-GBOOK). |
| Gradebook column | One activity of a classroom in its gradebook, with whether it counts and its weight; its cells are read from the activity's released results, never stored. |
| Online workspace | The browser-based workspace a project may be worked in (heig-classroom's codespace, ADR-047); phase M6 of the merge. Never a "session", which an evaluation never has either. Amended 2026-10-05 (product owner, ADR-075): a supervised evaluation (SEB or kiosk) may also send a student into it through a workspace question, one workspace per attempt, collected and destroyed by the server at the deadline; an exercise never does. An evaluation still has no session: the workspace belongs to the attempt. |
| Evaluation template | An evaluation kept at the course level rather than in a classroom: its questions, points, order, milestones and settings, without dates nor IP list. Never opened, never answered; each classroom's evaluation is made from it by Instantiate and records the template and its revision. exam and exercise only, never poll (ADR-031). |
| Instance | An evaluation linked to a template: instantiated from it into a classroom, or saved as it (Save as template, at revision 1). It records the template and the revision it came from, and editing the template never changes it: a newer revision reaches it only when the teacher pulls it (ADR-031). |
| Evaluation mode | exam timed and graded, exercise open with a deadline, poll one live question. |
| Attempt log | The server's record of an attempt's events (attempt_events): focus and visibility changes, reconnections, IP changes, time added, pauses, runs. Formerly called the attempt's "journal" (D16); "journal" now means the course journal only. |
| Attempt | A student's participation in an evaluation. An exam has one attempt per student; an exercise may allow retakes, each a new attempt with a new seed (ADR-025). Carries the start time, the effective end, the state. |
| Answer | The current state of a student's answer to a question of an evaluation. One record per attempt and per question, updated on every autosave. |
| Grading | The result of assessing an answer: points, source, state, justification. Several successive gradings are possible, the last one is authoritative. |
| Grader | The function of the question type that produces a grading from the configuration and the answer. Synchronous, asynchronous through the runner, or LLM. |
| Grade | The conversion of an attempt's points into a Swiss grade from 1 to 6 to the tenth, according to the evaluation's grade scale; for a project, of its final score, by the project's grading scale (F-PROJ-14). |
| Grade scale | The rule converting points into a grade for an evaluation: linear, 1 + 5 × points / total, capped at 6, with its rounding. The total leaves the bonus and neutralized items out (ADR-052, ADR-108). |
| Bonus item | An item of an evaluation whose points are left out of the total: they can only lift a student: under negative marking its score is floored at 0 (when the student's points are summed), and the grade stays capped at 6. Set in the builder, locked like the points, or chosen at grading time once the list is frozen; labelled "Bonus question" for the student (ADR-052, ADR-108). |
| Neutralized item | An item of an evaluation the teacher withdrew at grading time, once the list is frozen, typically an incoherent question: its points are left out of the total AND out of every student's points; the stored gradings are kept, so the change is reversible. Labelled "Not counted" for the student, points struck through; a copy of the evaluation counts it normally (ADR-108). |
| Explanation | Markdown text attached to a question version, shown to the student according to the feedback policy, and to the teacher during grading. |
| Feedback | The disclosure policy: none, on_release, immediate. |
| Published correction | The correction of an exercise published by its teacher while it is still running (F-EVAL-27, ADR-050): the class debrief opens over the papers handed in, and each student's feedback follows the policy as if the results were released. Irreversible; retakes go on. |
| Drill | An individual practice session generated for a student from the questions seen in class, scheduled by spaced repetition. |
| Runner | An isolated service that compiles and runs the students' code in a sandbox. |
| Canonical format | The YAML representation of a question or a pool, independent of the database, used for import, export and external versioning. |
| Quiz's GitHub App | The GitHub App through which the platform acts on GitHub (D23): it reads and writes the repositories of the organizations that installed it, receives their webhooks, and links GitHub accounts. One App per environment: production, and staging on a test organization. heig-classroom's App is a different one; an organization may install both. |
| GitHub organization link | The connection of a classroom to one GitHub organization where Quiz's App is installed (D02, github_classroom_links). Made from the classroom's Settings by a member of the course's staff; optional; at most one per classroom. A classroom without it is a plain Quiz classroom. |
| GitHub account link | The attachment of a user's GitHub account (its immutable id and its current login) to their edu-ID account (github_accounts). Never a way to sign in. One GitHub account for one user. Needed to be invited as a collaborator to a repository, never to edit a journal in the browser. |
| Journal | A classroom's course documentation, one markdown page per file, written by the staff and read by the students of the classroom. Not an activity: no grade, no deadline, no tracking. At most one per classroom (D03). It has a mode (ADR-057): in Quiz (the default), where the platform holds the pages and their revisions; or in a GitHub repository of the classroom's organization (a branch and an optional root folder), the source of truth, of which the platform keeps a rendered, read-only copy; two classrooms may use the same repository, each with its own copy. |
| Journal page | One markdown file of the journal, rendered on the server. Its place in the navigation comes from its path; its front matter may carry title, date, draft: true (read by the staff only) and visible_from (hidden from the students until then). |
| Journal asset | A file of the journal's repository (an image, a PDF) referenced by one of its pages, copied into the read model (≤ 5 MB, D14). |
1.2 Roles and permissions¶
| Action | Student | Teacher | Admin |
|---|---|---|---|
| See and answer own evaluations, results, drills | Yes | No | No |
| Create a course, a classroom, import a roster | No | Yes | Yes |
| Create a private pool, edit its questions | No | Yes | Yes |
| Read the public pool | No | Yes | Yes |
| Edit a shared pool | No | According to the role on the pool | With Super Powers, else as a teacher |
| Create, launch, drive, grade an evaluation | No | On own classrooms; grading after the release by an owner of the course (ADR-068, amended 2026-10-10) | With Super Powers, else as a teacher |
| Create, instantiate, delete an evaluation template | No | On own courses | With Super Powers, else as a teacher |
| See the grades of a classroom | Own grades | On own classrooms | With Super Powers, else as a teacher |
| Configure the institutional LLM gateway | No | No | Yes |
| Configure runner languages and admins | No | No | Yes |
| Connect a classroom to a GitHub organization, create, choose or remove its journal, edit its pages | No | On own classrooms | With Super Powers, else as a teacher |
| Read a classroom's journal | Own classrooms, pages neither draft nor before their visible_from |
On own classrooms, drafts included | With Super Powers, else as a teacher |
| Link or unlink own GitHub account | Yes | Yes | Yes |
| Create, publish, sync, lock, grade and release a project; form its groups and group sets | No | On own classrooms | With Super Powers, else as a teacher |
| Accept a project, see own repository and score | Own classrooms, own repository or own group's | No | No |
| See and export a classroom's gradebook, choose its columns and weights | Own cells, the mean once published | On own classrooms | With Super Powers, else as a teacher |
| Delete a classroom or an evaluation and its data | No | On own classrooms; a classroom, or an evaluation released, with its correction published or a student attempt (a poll: released), by an owner of the course (ADR-068, amended 2026-10-10) | With Super Powers, else as a teacher |
| Act as a student (a one-time link, ADR-034) | No | No | With Super Powers |
Roles on a shared pool: reader may read and copy into their own pool, contributor may create and publish versions, owner manages members and deletes.
A course may have several teachers. They all reach its classrooms; each seat is owner or assistant (ADR-068): an owner also manages the staff, the course, its linked pools, its classrooms' creation and deletion, and the release of results; since 2026-10-10 also the deletion of an evaluation that students took or that reached them (released, or its correction published; a poll only once released), and every grading change once an evaluation is released.
Super Powers (ADR-054): an admin reaches everyone's content only after switching them on from the settings, for one fixed hour of the server's clock, in that browser session only (never through an API token or an assistant), each switch audited. Otherwise the admin is a teacher: their own seats, their pools by their pool role. The admin's own functions — the teacher grants, the user list, the metrics — never need them.
1.3 Domain model¶
erDiagram
USER ||--o{ COURSE_TEACHER : teaches
COURSE ||--o{ COURSE_TEACHER : has
COURSE ||--o{ CLASSROOM : instantiates
COURSE }o--o{ POOL : uses
CLASSROOM ||--o{ ENROLLMENT : roster
USER ||--o{ ENROLLMENT : student
POOL ||--o{ POOL_MEMBER : shares
POOL ||--o{ CATEGORY : contains
POOL ||--o{ QUESTION : contains
CATEGORY ||--o{ QUESTION : files
QUESTION ||--o{ QUESTION_VERSION : versions
QUESTION }o--o{ CONCEPT : exercises
CLASSROOM ||--o{ EVALUATION : hosts
COURSE ||--o{ EVALUATION : templates
EVALUATION |o--o{ EVALUATION : instantiates
EVALUATION ||--o{ EVALUATION_ITEM : ordered
QUESTION_VERSION ||--o{ EVALUATION_ITEM : used_in
EVALUATION ||--o{ ATTEMPT : has
USER ||--o{ ATTEMPT : takes
ATTEMPT ||--o{ ANSWER : contains
EVALUATION_ITEM ||--o{ ANSWER : answers
ANSWER ||--o{ GRADING : graded_by
USER ||--o{ DRILL_CARD : reviews
QUESTION ||--o{ DRILL_CARD : scheduled
USER ||--o| GITHUB_ACCOUNT : links
GITHUB_ORGANIZATION ||--o{ GITHUB_CLASSROOM_LINK : connects
CLASSROOM ||--o| GITHUB_CLASSROOM_LINK : connected_to
CLASSROOM ||--o| CLASSROOM_JOURNAL : documents
CLASSROOM_JOURNAL ||--o{ JOURNAL_PAGE : mirrors
CLASSROOM_JOURNAL ||--o{ JOURNAL_ASSET : mirrors
CLASSROOM ||--o{ PROJECT : hosts
CLASSROOM ||--o{ GROUP_SET : sets
GROUP_SET ||--o{ STUDENT_GROUP : groups
STUDENT_GROUP ||--o{ STUDENT_GROUP_MEMBER : has
ENROLLMENT ||--o{ STUDENT_GROUP_MEMBER : member
GROUP_SET |o--o{ PROJECT : followed_by
STUDENT_GROUP |o--o{ PROJECT_GROUP : copied_to
PROJECT ||--o{ PROJECT_GROUP : groups
PROJECT_GROUP ||--o{ PROJECT_GROUP_MEMBER : has
ENROLLMENT ||--o{ PROJECT_GROUP_MEMBER : member
PROJECT ||--o{ REVIEW_CHECKPOINT : checkpoints
PROJECT ||--o{ PROJECT_REPO : hands_out
USER ||--o{ PROJECT_REPO : accepts
PROJECT_GROUP |o--o| PROJECT_REPO : works_in
PROJECT_REPO ||--o{ GRADE_RUN : runs
CLASSROOM ||--o{ GRADEBOOK_COLUMN : grades
Key attributes¶
- USER:
id,oidc_sub,email,given_name,family_name,role,locale. The display name is derived. The institutional LLM key belongs tollm_settings, never a user (ADR-058). - COURSE:
id,name,code. - CLASSROOM:
id,course_id,name,period,period_start,period_end,archived_at. - ENROLLMENT:
classroom_id,user_id,time_bonus_percentinteger, 0 by default,note. - POOL:
id,name,is_public,description,owner_id(the displayed visibilityprivate/shared/publicis derived, ADR-013). - QUESTION:
id,pool_id,category_id,type,internal_name,difficulty1 to 5,created_by,origin_question_idfor a fork. - QUESTION_VERSION:
question_id,numbernull for the draft,configJSONB conforming to the type's schema,explanation,published_at,published_by,change_note. - EVALUATION:
id,classroom_id,course_idset on a template only (exactly one home: a classroom, a course, or — an anonymous poll — its owner),revisionon a template,origin_template_idandorigin_revisionon an instance,title,mode,state,settingsJSONB, see 02-exigences-fonctionnelles.md F-EVAL,grading_scale,feedback_policy,opens_at,closes_at,duration_s,correction_published_at(an exercise's published correction, ADR-050),access_code(a poll's session code only, ADR-014; an exam or an exercise has none, ADR-053). - EVALUATION_ITEM:
evaluation_id,position,question_version_id,points,milestoneboolean,countingnormal / bonus / neutralized (ADR-052, ADR-108). - ATTEMPT:
evaluation_id,user_id,state,started_at,deadline_atcomputed with the bonus,submitted_at,seed,instancesfor stored parameter draws (ADR-056),attempt_numberfor retakes. Attempt events are separate rows inattempt_events. - ANSWER:
attempt_id,item_id,payloadJSONB conforming to the type's answer schema,revisioninteger incremented on every autosave,marked_done(the question was validated in a locking navigation),skipped("Leave unanswered": left blank on purpose),flagged(the student's review flag),updated_at. - GRADING:
answer_id,points,max_points,sourceauto/llm/manual,stateproposed/validated/superseded,detailsJSONB,graded_by,graded_at,notefor the annotation of a re-grading. - GITHUB_ORGANIZATION:
github_org_id,login,installation_idof Quiz's App (null until installed),status,plan. - GITHUB_CLASSROOM_LINK:
classroom_id,org_id,linked_by,linked_at. - GITHUB_ACCOUNT:
user_id,github_user_idunique,login,linked_at. - CLASSROOM_JOURNAL:
classroom_id,modequiz/github, and in GitHub modegithub_repo_id,full_name,ref,root_path,last_commit_sha,sync_status,sync_error. - JOURNAL_PAGE:
path,title,front_matter,draft,visible_from, the renderedhtmlandtoc,warnings. - PROJECT:
id,classroom_id,name,slug,statedraft/published/locked,start_at,deadline_at,grace_minutes, the source and distribution repositories,source_strategywhole/squash,deadline_strategylock/commit,grading_modeauto/none,publish_mode,branches,protected_files,group_mode,group_set_id,grading_scale,deadline_applied_at,released_at,archived_at. - PROJECT_REPO:
project_id,user_id(who accepted),group_idfor a group repository,github_repo_id,full_name,provision_status,invitation_status, its owndeadline_at(null: the project's),deadline_applied_at,frozen_at,locked_at(andarchived_atwhen the lock fell back to archiving), the staff's hand on the lock (staff_lock),ci_status, the current, frozen and review grade runs, the teacher's points and comment,deleted_at. - GRADE_RUN:
repo_id,workflow_run_id,run_attempt,head_sha,conclusion,points,max,parse_status,after_deadline,completed_at. - GRADEBOOK_COLUMN:
classroom_id, the activity,counts,weight; the classroom'smean_published. - DRILL_CARD:
user_id,question_id, FSRS parametersstability,difficulty,due_at,reps,lapses,last_review_at; one per student and question, created at the release of an exam or the hand-in of an exercise (ADR-041). Its reviews record the rating, the active time and the device class.
Invariants¶
- An evaluation references only published versions. The draft is never referenced.
- A published version never changes. Fixing an answer key creates a version.
- An attempt has at most one answer per item. The autosave updates the answer in place and increments
revision. The server rejects a revision lower than the current revision. - An answer has at most one grading in state
validated. A new grading moves the previous one tosuperseded. - The grade of an attempt is computed from the validated gradings, never stored as the source of truth. It is cached when the results are released.
- The content sent to a student never contains the answer key nor the explanation before the feedback policy allows it.
- A journal page reaches a student only rendered, and only when it is not a draft and its
visible_fromhas passed; an asset only when such a page references it (N-SEC-12, N-SEC-13). - Removing a journal, or disconnecting a classroom from GitHub, never deletes anything on GitHub.
- Deleting a project or its classroom never deletes a repository on GitHub (D19).
- A project's score counts from the platform's receipt time of the commit, never the commit's own date; a run on a commit the App pushed never counts.
- A project's score reaches a student only through the project's student view, and is indicative until the release (N-SEC-20, N-SEC-21).
1.4 Lifecycles¶
Question version: draft → publish → published number N. A published version may be marked deprecated to signal that a more recent version fixes an error.
Evaluation template: always draft; its revision starts at 1 and moves with every committed change to its items or template-level settings, never with its title (ADR-031).
Evaluation: draft → scheduled → lobby waiting room → running → paused ↔ running → closed → grading → released. An exercise may use a waiting room (lobby) but cannot be paused; only an exam can be paused. A poll ends at closed, with deterministic grading and no results release (ADR-014).
Attempt: not_started → in_progress → submitted by the student or expired by the server at the deadline. Both terminal states can be graded.
Journal: in Quiz, created with an editable home page and versioned in the database; in GitHub mode, created or chosen → sync_status pending → ok after ingestion, or error when GitHub refuses access (the mirrored pages stay readable). Removal drops the platform's copy, never a GitHub repository (ADR-057).
Project: draft → publish (now, or by the ticker at its start) → published → deadline → locked; frozen definitively at the deadline plus the grace, then the final review dispatched, then released by the staff. A deadline moved later reopens it. Archived and unarchived at any time. The staff's views derive a phase from the frozen repositories and the release, locked / graded / released, which the badge says (ADR-104); the stored state stops at locked.
Project repository: accepted → provision_status pending → ok (or error, retried by the student) → invitation pending → accepted; at its effective deadline applied (provisional freeze) and locked, frozen definitively at the effective deadline plus the grace; its own deadline moved later reopens it alone; deleted for good when the repository is gone from GitHub.
Grading: proposed → validated. An auto grading on a fully deterministic type is born validated. An llm grading is born proposed. A manual grading is born validated.
1.5 The interface's words, in both languages¶
One concept, one word in each language, on every screen, for both readers.
The English column is the interface's English, the French column its French;
neither is a translation of the other: each is written in its language,
short, by the rules of apps/web/DESIGN.md (Voice). A word of this table
replaces every variant listed under never; the i18n lint of
apps/web/src/i18n/ (copy.test.ts, which owns the list of enforced
variants: a new row here prompts a rule there) refuses the variants it can
detect (N-I18N-04). Settled
by the product owner on 2026-10-20.
| Concept | English | French | Never (fr) |
|---|---|---|---|
| Pool | pool | banque | pool |
| Poll | poll | sondage | poll |
| Concept | concept | notion | concept |
| Evaluation, mode unknown | evaluation | évaluation | quiz |
| Exam / exercise, mode known | exam / exercise | examen / exercice | quiz, épreuve |
| Feedback (what the student sees of the grading) | feedback | correction | retour, retour à l'étudiant, politique de retour |
| Answer key (the published expected answer) | answer key | corrigé | solution, réponse modèle, solution de référence |
| Expected answer (inside a question) | expected answer | réponse attendue | clé |
| Explanation | explanation | explication | — |
| Points of a question or an attempt | points | points | score, marque |
| Grade (1 to 6) | grade | note | score, marque |
| Score of a project (CI points) | score | score | note, marque |
| Grade scale | grade scale | barème | échelle, politique de notation |
| Grading policy (MCQ, categorize) | grading policy | règle de notation | politique |
| All-or-nothing policy | all or nothing | tout ou rien | exact |
| Navigation checkpoint of an evaluation (closes what precedes it) | checkpoint | verrou | jalon, étape, séparation de section |
| Review checkpoint of a project | checkpoint | point de contrôle | jalon |
| Lobby | lobby | salle d'attente | salle, anneau |
| Notepad | notepad | bloc-notes | calepin |
| Calculator | calculator | calculatrice | — |
| Template (evaluation) | template | modèle | gabarit |
| Code template, starter | starter | code de départ | modèle, template |
| LLM, model, AI | AI | IA | LLM, modèle, modèle de langage |
| Runner | runner | exécuteur | runner, simulateur (the circuit simulator keeps simulation) |
| Staff of a course | staff | équipe enseignante | staff, équipe |
| Teacher | teacher | enseignant·e in prose becomes a neutral turn; enseignant alone in a label | professeur, prof |
| Student | student | étudiant (label); neutral turn in prose | élève |
| Classroom | classroom | classe | salle, volée |
| Roster | roster | liste des étudiants | effectif, liste |
| Settings | settings | réglages | paramètres |
| Edit | edit | modifier | éditer |
| Save | save | enregistrer | sauvegarder |
| Submit (an attempt) | hand in | rendre | soumettre, remettre |
| Release (results, scores) | release | publier (les résultats, les notes) | rendre, relâcher |
| Published correction (exercise) | published correction | corrigé publié | — |
| Retake | retake | nouvelle tentative | reprise |
| Frozen (score, list) | frozen | figé | gelé, verrouillé |
| Locked (repository, question) | locked | verrouillé | figé, gelé |
| Dashboard (live) | dashboard | tableau de bord | — |
| Drill, practice | practice | entraînement | drill, révisions |
| Targeted revision | targeted revision | révision ciblée | — |
| Group set | group set | répartition | — |
| Journal | journal | journal | carnet |
| Gradebook | gradebook | carnet de notes | — |
| Correct / wrong (a verdict) | correct / wrong | juste / faux | correct, bon |
| Not answered | unanswered | sans réponse | pas répondu, non répondue |
| Default | default | par défaut | défaut |