๐ฌ Simulate:
Introduction to Python Programming
Draft v1
โบ
Question Bank
| Type | Question | Tags | Status | Ver | Actions |
|---|---|---|---|---|---|
| MC | Which of the following correctly defines a variable in Python? | variables syntax | Active | v2 | Edit |
| MC (multi) | Select all statements that are valid ways to create a list in Python. (select all that apply) | lists | Active | v1 | Edit |
| TF | Python is a statically typed language. (True/False) | types | Active | v1 | Edit |
| Short | Write a Python function that returns the square of a given number. | functions | Active | v3 | Edit |
| Match | Match each Python keyword to its description. | keywords | Active | v1 | Edit |
| Numerical | A list has index positions from 0 to N-1. What is the correct upper index bound for a 10-element list? | lists indexing | Active | v1 | Edit |
๐
Sub-flow invocation โ question authoring by type
"Add Question" / "Edit" route to the authoring form matching the question's type; on save, control returns here.
Uses sub-flows:
Screen Flow (from flow.puml):
๐ Spec notes โ UC-CCM.12 / SCR-CCM.29 (fields, actions, requirements)
Identity
- Screen: SCR-CCM.29 โ Question Bank Panel
- Use case: UC-CCM.12 โ Manage Question Bank
Brief description
Embedded panel rendered as the "Questions" tab of the Content Editor (SCR-CCM.02). Displays all questions in the current course's question bank with a filter bar (by type, tags, and status) and a question list with per-row actions. Instructors can add new questions, edit existing ones, manage tags inline, retire (disable) active questions, and restore disabled ones. Adding or editing a question opens the corresponding question authoring form (SUC-CCM-07 through SUC-CCM-10).
Fields
type_filter"Type" โ enum ยท one of: all, mcq, multi_select, true_false, short_answer, numerical, match ยท fallback "all" ยท always visibletags_filter"Tags" โ enum (multi) ยท data_ref: QuestionTag.name ยท fallback [] ยท always visiblestatus_filter"Status" โ enum ยท one of: active, disabled, all ยท fallback "active" ยท always visibleadd_question_type"Question Type" โ enum ยท region: Add Question Control ยท required and visible whenadd_question_clicked == truetag_input"Tag" โ text ยท max length 100 ยท region: Question List ยท visible whenrow_tags_editor_open == true
Actions
add_question"Add Question" โ enabled always ยท triggers UC-CCM.12-M-2edit_question"Edit" โ enabled always ยท triggers UC-CCM.12-A-1B-1manage_tags"Tags" โ enabled always ยท triggers UC-CCM.12-A-1C-1retire_question"Retire" โ enabled whenquestion.status == activeยท triggers UC-CCM.12-A-1D-1restore_question"Restore" โ enabled whenquestion.status == disabledยท triggers UC-CCM.12-A-1E-1confirm_retire"Confirm" โ enabled always ยท triggers UC-CCM.12-A-1D-3cancel_retire"Cancel" โ enabled always ยท triggers UC-CCM.12-A-1D.3A-1search_questions"Search" โ enabled always ยท triggers UC-CCM.12-M-1clear_filters"Clear" โ enabled always ยท triggers UC-CCM.12-M-1
Additional requirements
- When the course has no questions yet, the Question List area shows an empty state (icon + message) replacing the table. The "Add Question" control in the table header remains visible so the instructor can add the first question without navigating away.
- The inline tag editor on a question row closes when the instructor clicks outside the row or presses Escape. Each add/remove tag action saves immediately without a separate Save button.
- The retirement confirmation prompt expands inline below the selected question row. It displays the question stem and type. When the question is currently selected as a fixed question in one or more quiz sections (pinned via QuizQuestionRef), the prompt shows an additional warning that retiring will exclude the question from random draw pools but will not remove it from quiz sections that already selected it as a fixed question. [refs: SS-CCM.34]
UC additional requirements
- Questions in this bank belong to the current course. Quizzes built in this course can use these questions โ either by selecting specific questions directly (fixed) or by setting rules to draw random questions from the pool. See SUC-CCM-11 for how quizzes assemble question sets.
- A question's type cannot be changed after it is created โ to change the type, retire the question and create a new one.
- Tags belong to this course's question bank. New tag names are created automatically when typed โ no separate administration is needed. A tag cannot be removed from the question bank while any question in it still uses it.
- The system checks that each question's answer key is complete and valid before saving. If the check fails, the form shows which fields need to be corrected. [refs: SS-CCM.09]
- A retired (disabled) question is excluded from future random-draw pools, but quiz sections that already selected it as a fixed question keep it โ retiring never removes a question from a quiz section that pinned it. [refs: SS-CCM.34]