From 184a36fe605a048552e29440efe7d2406e0f7f74 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 11:12:56 +0100 Subject: [PATCH 01/11] Update Text.md --- docs/teacher/reference/response_area_components/Text.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/teacher/reference/response_area_components/Text.md b/docs/teacher/reference/response_area_components/Text.md index e69de29bb..eba104cbb 100644 --- a/docs/teacher/reference/response_area_components/Text.md +++ b/docs/teacher/reference/response_area_components/Text.md @@ -0,0 +1 @@ +# Text From d7044170425f0b7344fc7c4aef4ca726074dd675 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 11:29:25 +0100 Subject: [PATCH 02/11] Update NumericUnits.md added guide for evaluation function parameters --- .../response_area_components/NumericUnits.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/teacher/reference/response_area_components/NumericUnits.md b/docs/teacher/reference/response_area_components/NumericUnits.md index 7b3fed53c..afd40a6d4 100644 --- a/docs/teacher/reference/response_area_components/NumericUnits.md +++ b/docs/teacher/reference/response_area_components/NumericUnits.md @@ -2,16 +2,29 @@ Provides two input fields with `Number` and `Units` placeholder texts. This area will also display its associated grading function (as seen in the screenshot below). -**Note** this area will display how the user's response was interpred using the `interp_string` field provided in the feedback object returned by that function (if it exists). +**Note:** this area will display how the user's response was interpred using the `interp_string` field provided in the feedback object returned by that function (if it exists). ## Component Parameters -### `pre_response_text` (optional) -Text block to be displayed to the left of the input field. Markdown and LaTeX are allowed following the usual syntax. +### `pre_response_text` & `post_response_text` (optional) +Text block to be displayed to the left and right of the input field respectively. Markdown and LaTeX are allowed following the usual syntax. +### Comparing units +By ticking the `physical_quantity (boolean)` option in the *Evaluate* tab, answers with different units from the reference answer can be compared. + +![physical quantity ticked](screenshots/physical_quantity.png) + +For example, if the reference answer is 100 m, the following answers will also be accepted: + +* 0.1 km +* 10000 cm +* 10^5 mm +### Tolerances +Tolerances can be added to your answer using the `atol (number)` and `rtol (number)` fields, which denote absolute and relative tolerances respectively. ## Response Structure *This is how the react component will structure the user's input to the Grading Gateway, when they press the check button.* In this case, the response is a single string which features the user's response to both fields separated by a space. + !!! example ```json @@ -19,4 +32,4 @@ In this case, the response is a single string which features the user's response ``` ## Example Screenshot -![Screenshot](screenshots/NumericUnits.jpg) \ No newline at end of file +![Screenshot](screenshots/NumericUnits.jpg) From 65937f2aa3f6995938911683856e87adb95360bc Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 11:30:58 +0100 Subject: [PATCH 03/11] Add files via upload --- .../screenshots/physical_quantity.png | Bin 0 -> 18263 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/teacher/reference/response_area_components/screenshots/physical_quantity.png diff --git a/docs/teacher/reference/response_area_components/screenshots/physical_quantity.png b/docs/teacher/reference/response_area_components/screenshots/physical_quantity.png new file mode 100644 index 0000000000000000000000000000000000000000..5873c03d09d2dc697149f13938b8e939718310f7 GIT binary patch literal 18263 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 LS3j3^P67S literal 0 HcmV?d00001 From a104c7407c9b4c4ca95348399981f38dd9633f3b Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 11:46:14 +0100 Subject: [PATCH 04/11] Update NumericUnits.md --- docs/teacher/reference/response_area_components/NumericUnits.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/teacher/reference/response_area_components/NumericUnits.md b/docs/teacher/reference/response_area_components/NumericUnits.md index afd40a6d4..5702fbc18 100644 --- a/docs/teacher/reference/response_area_components/NumericUnits.md +++ b/docs/teacher/reference/response_area_components/NumericUnits.md @@ -17,6 +17,8 @@ For example, if the reference answer is 100 m, the following answers will also b * 0.1 km * 10000 cm * 10^5 mm + +See [here](https://lambda-feedback.github.io/user-documentation/user_eval_function_docs/compareExpressions/#4-checking-the-value-of-an-expression-or-a-physical-quantity) for more information ### Tolerances Tolerances can be added to your answer using the `atol (number)` and `rtol (number)` fields, which denote absolute and relative tolerances respectively. From b0d43a8f4f8cfae70ba28287e524e5376a4fe330 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:19:26 +0100 Subject: [PATCH 05/11] Update Expression.md added guide to input symbols --- .../response_area_components/Expression.md | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/teacher/reference/response_area_components/Expression.md b/docs/teacher/reference/response_area_components/Expression.md index 0dc1acf7e..b3be334ae 100644 --- a/docs/teacher/reference/response_area_components/Expression.md +++ b/docs/teacher/reference/response_area_components/Expression.md @@ -12,6 +12,22 @@ Calculates the difference between the teacher answer (ans) and the student respo Compares two symbolic expressions for mathematical equivalence, using SymPy. See [SymPy](https://www.sympy.org/en/index.html.md-button) for further information. +## compareExpressions +**Input Symbols** + +This is a powerful feature for defining a dictionary of accepted symbols. For each symbol, you define: +* **Symbol:** The LaTeX-rendered symbol (e.g., `$f(x)$`). +* **Code:** The machine-readable variable name (e.g., `fx`). This is what your students will type and what the evaluation function sees. +* **Alternatives:** A list of other codes you want to accept for the same symbol (e.g., `f_x`, `f(x)`, `f`). This allows you to anticipate different ways students might type the same thing. +* **Visibility:** A `TRUE`/`FALSE` toggle. If "Display input symbols" is enabled in the Input tab, this setting determines whether a specific symbol is shown to the student. This allows you to show students common symbols while still accepting less common or alternative ones in the background. + +![example](screenshots/input_symbols.png) +![example](screenshots/input_symbols_preview.png) + +Tolerances can also be added. These will apply to the numerical parts of the answer (e.g. the '10' in '10x'). + +This is done using the `atol` and `rtol` fields under the Evaluation Function Parameters section. + ## Component Parameters ### `post_response_text` (optional) @@ -22,11 +38,11 @@ Text block to be displayed to the left of the input field. Markdown and LaTeX ar Text block to be displayed to the left of the input field. Markdown and LaTeX are allowed following the usual syntax. -### Allow Handwrite (Experimental) +### Enable Handwriting Input -Enables a handwriting canvas in the browser, which allows a student can use to draw their expression, rather than type using Sympy's syntax. +Enables a handwriting canvas in the browser, which allows a student to draw their expression, rather than type using Sympy's syntax. -### Photo (Experimental) +### Enable Photo Upload Allows a student to upload their expression as an image, as an alternative to handwriting if the student isn't using a phone or tablet. From f41385553df87f5b1041185cf36fdde1e8407acf Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:19:43 +0100 Subject: [PATCH 06/11] Add files via upload --- .../screenshots/input_symbols.png | Bin 0 -> 33317 bytes .../screenshots/input_symbols_preview.png | Bin 0 -> 17384 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/teacher/reference/response_area_components/screenshots/input_symbols.png create mode 100644 docs/teacher/reference/response_area_components/screenshots/input_symbols_preview.png diff --git a/docs/teacher/reference/response_area_components/screenshots/input_symbols.png b/docs/teacher/reference/response_area_components/screenshots/input_symbols.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdbe7cdcc1fdc9e9614abe247a2cc6a5647b626 GIT binary patch literal 33317 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 literal 0 HcmV?d00001 diff --git a/docs/teacher/reference/response_area_components/screenshots/input_symbols_preview.png b/docs/teacher/reference/response_area_components/screenshots/input_symbols_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..56ca90e43b2936b62d583c7f71196c13b1f77d7f GIT binary patch literal 17384 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%0DMQcKq4jm%pZ9@m4YV^A>(D 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 SA%QW09_X6r)Zcyb@_z&GdGq`L literal 0 HcmV?d00001 From ef1574b00bf53768cd525183354b6fc8dfb9f029 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:24:31 +0100 Subject: [PATCH 07/11] Update NumericUnits.md --- .../reference/response_area_components/NumericUnits.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/teacher/reference/response_area_components/NumericUnits.md b/docs/teacher/reference/response_area_components/NumericUnits.md index 5702fbc18..4fc0d796a 100644 --- a/docs/teacher/reference/response_area_components/NumericUnits.md +++ b/docs/teacher/reference/response_area_components/NumericUnits.md @@ -7,7 +7,10 @@ Provides two input fields with `Number` and `Units` placeholder texts. This area ## Component Parameters ### `pre_response_text` & `post_response_text` (optional) Text block to be displayed to the left and right of the input field respectively. Markdown and LaTeX are allowed following the usual syntax. + ### Comparing units +This is done using the **compareExpressions** evaluation function. + By ticking the `physical_quantity (boolean)` option in the *Evaluate* tab, answers with different units from the reference answer can be compared. ![physical quantity ticked](screenshots/physical_quantity.png) @@ -20,6 +23,8 @@ For example, if the reference answer is 100 m, the following answers will also b See [here](https://lambda-feedback.github.io/user-documentation/user_eval_function_docs/compareExpressions/#4-checking-the-value-of-an-expression-or-a-physical-quantity) for more information ### Tolerances +This is done using the **compareExpressions** evaluation function. + Tolerances can be added to your answer using the `atol (number)` and `rtol (number)` fields, which denote absolute and relative tolerances respectively. ## Response Structure From caeb38faa24573028054aa974453e75a4a731f23 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 13:37:47 +0100 Subject: [PATCH 08/11] Update Expression.md --- docs/teacher/reference/response_area_components/Expression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/teacher/reference/response_area_components/Expression.md b/docs/teacher/reference/response_area_components/Expression.md index b3be334ae..b29c6382f 100644 --- a/docs/teacher/reference/response_area_components/Expression.md +++ b/docs/teacher/reference/response_area_components/Expression.md @@ -24,7 +24,7 @@ This is a powerful feature for defining a dictionary of accepted symbols. For ea ![example](screenshots/input_symbols.png) ![example](screenshots/input_symbols_preview.png) -Tolerances can also be added. These will apply to the numerical parts of the answer (e.g. the '10' in '10x'). +Tolerances can also be added. These will apply to the numerical parts of the answer (e.g. the $10$ in $10x$). This is done using the `atol` and `rtol` fields under the Evaluation Function Parameters section. From 074dcc1b992312f9a6339660e3f1463962426899 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 13:52:15 +0100 Subject: [PATCH 09/11] Update gettingstarted.md added links to branching and creating steps for worked solutions --- docs/teacher/guides/gettingstarted.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/teacher/guides/gettingstarted.md b/docs/teacher/guides/gettingstarted.md index 60adf8944..f3916d9c4 100644 --- a/docs/teacher/guides/gettingstarted.md +++ b/docs/teacher/guides/gettingstarted.md @@ -48,7 +48,7 @@ A [student guide is here](../../student/index.md). Teachers use the 'below the l - **Final answer** is self-explanatory. - **Worked solutions** provides detailed, step-by-step solutions. -All content below the line uses Lexdown functionality. Worked solutions can be branched. Future developments will add branching and response areas to structured tutorials. +All content below the line uses Lexdown functionality. Worked solutions can be [branched](https://lambda-feedback.github.io/user-documentation/teacher/guides/good-practice/#branching), or split into [steps](https://lambda-feedback.github.io/user-documentation/teacher/guides/lexdown/#steps-in-worked-solutions). Future developments will add branching and response areas to structured tutorials. It is not necessary to include all three methods of help. If you only provide content for one tab, only that button will appear in the published student version. From 74a74ec1567a054dcea938fdf980cb369e79f349 Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:20:45 +0100 Subject: [PATCH 10/11] Update getting_started_student.md --- docs/student/getting_started_student.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/student/getting_started_student.md b/docs/student/getting_started_student.md index cabeab9f8..c75f8b184 100644 --- a/docs/student/getting_started_student.md +++ b/docs/student/getting_started_student.md @@ -37,13 +37,13 @@ See the [Answering Questions](answering_questions.md) page for more help with an The Workspace provides you with various functionalities to assist you during your learning process: #### 1. Canvas: - A pane where you can write down your thought process and notes for the previewed question (handwriting, sticky notes & text). +A pane where you can write down your thought process and notes for the previewed question (handwriting, sticky notes & text). - ![Canvas Interface](images/canvas_interface.png) +![Canvas Interface](images/canvas_interface.png) #### 2. Chat: - A chat interface connecting you with helpful AI Chatbots to discuss any questions you have on the current topic you are working on. +A chat interface connecting you with helpful AI Chatbots to discuss any questions you have on the current topic you are working on. - ![Chat Interface](images/chat_interface.png) +![Chat Interface](images/chat_interface.png) - Your edits and progress in the Workspace are saved per each Question you preview. So, you will be able to view your old edits for the Question you are currently on. +Your edits and progress in the Workspace are saved per each Question you preview. So, you will be able to view your old edits for the Question you are currently on. From d79de6bd2a05639ae9c685807f548de8f5385e8d Mon Sep 17 00:00:00 2001 From: Clark Tsuei <164399795+CarkHT@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:22:55 +0100 Subject: [PATCH 11/11] Update content-sets-questions.md --- docs/teacher/guides/content-sets-questions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/teacher/guides/content-sets-questions.md b/docs/teacher/guides/content-sets-questions.md index a2bc4ec1b..92c6b22f3 100644 --- a/docs/teacher/guides/content-sets-questions.md +++ b/docs/teacher/guides/content-sets-questions.md @@ -16,7 +16,7 @@ This guide explains how to use the editor to create and modify [sets](https://la | **4** | **Master Content** | The main content for the question, which is always visible above the individual parts. This field uses the Lexdown editor. | | **5** | **Current Part** | **Indicates** which question part you are currently editing. | | **6** | **Part Content** | Edit the content for the selected question part (i.e., the sub-question).| -| **7** | **Response Area** | The input field where a student submits their answer. Adding a response area is optional.
See [here](https://lambda-feedback.github.io/user-documentation/teacher/reference/response_area_components/) for an in-depth explanation.| +| **7** | **Response Area** | The input field where a student submits their answer. Adding a response area is optional.
See [**here**](https://lambda-feedback.github.io/user-documentation/teacher/reference/response_area_components/) for an in-depth explanation.| | **8** | **Question Help Options** | Add optional support materials for students, such as a [**Structured Tutorial**](https://lambda-feedback.github.io/user-documentation/terminology#structured-tutorial), a [**Final Answer**](https://lambda-feedback.github.io/user-documentation/terminology#final-answer), or [**Worked Solutions**](https://lambda-feedback.github.io/user-documentation/terminology#worked-solution). The buttons shown here are the same ones students will see. | | **9** | **Teacher/Student View Toggle** | Toggle between the teacher editing view ('EDIT') and the student 'PREVIEW' to see how the question will appear to students. | | **10** | **Edit Guidance** | Add extra details for the question, such as guidance notes, estimated completion time, and skill level. |