Figured questions for grade-12 geometry (conics, systems, vectors: 50 new); docs: figured questions win in the island quiz
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -323,6 +323,13 @@ has been done before.
|
|||||||
|
|
||||||
- `GET /api/nodes/{id}/quiz`: at most one question per lesson, shuffled on `nodeId:userId` only, so a student
|
- `GET /api/nodes/{id}/quiz`: at most one question per lesson, shuffled on `nodeId:userId` only, so a student
|
||||||
sees the same quiz every time (owner's decision; `NodeQuizStabilityTests`).
|
sees the same quiz every time (owner's decision; `NodeQuizStabilityTests`).
|
||||||
|
**Figured questions win:** inside a lesson the quiz takes a question with a `figure` over one without
|
||||||
|
(`NodeQuizPrefersFigureTests`). So adding figured questions to a lesson replaces its figureless ones in
|
||||||
|
the quiz without deleting anything; the old rows stay (seed never deletes, answers may reference them).
|
||||||
|
Owner's standing plan (2026-10-14): keep writing more figured questions and re-review the whole bank over
|
||||||
|
time; this rule is the mechanism, so new figures need no other switch. Write them with
|
||||||
|
`tools/figures/batch.py` (`docs/content-authoring.md` «سوالِ شکلدار»). The lesson-level list
|
||||||
|
(`/api/lessons/{id}/questions`) does not reorder; only the island quiz does.
|
||||||
- `POST /api/nodes/{id}/quiz/complete` completes the island at any score (score sets stars/XP) and returns
|
- `POST /api/nodes/{id}/quiz/complete` completes the island at any score (score sets stars/XP) and returns
|
||||||
`nextNodeId`. It refuses a locked island (403 `node_locked`, same rule as `/api/home`) and a user who has
|
`nextNodeId`. It refuses a locked island (403 `node_locked`, same rule as `/api/home`) and a user who has
|
||||||
not answered every question (409 `answers_missing`; required = `max(client totalQuestions, min(4, questions
|
not answered every question (409 `answers_missing`; required = `max(client totalQuestions, min(4, questions
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -140,3 +140,22 @@ python manage.py seed_test_data # فقط با DEBUG=True اجرا
|
|||||||
python manage.py seed_test_data --force # staging، با DEBUG=False
|
python manage.py seed_test_data --force # staging، با DEBUG=False
|
||||||
python manage.py seed_test_data --reset # پاک کردنِ دادهی seedِ قبلی و ساختِ دوباره
|
python manage.py seed_test_data --reset # پاک کردنِ دادهی seedِ قبلی و ساختِ دوباره
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## سوالِ شکلدار (از ۲۰۲۶-۱۰-۱۴)
|
||||||
|
|
||||||
|
آزمونِ جزیره از هر درس یک سوال برمیدارد و اگر درس سوالِ شکلدار داشته باشد، همان را برمیدارد؛ پس افزودنِ سوالِ
|
||||||
|
شکلدار، سوالِ بیشکلِ همان درس را از آزمون کنار میزند، بیآنکه چیزی پاک شود. برنامه این است که
|
||||||
|
شکلها و سوالهای بیشتری ساخته و کلِ بانک بازبینی شود؛ این سازوکار همان را بیکارِ اضافه ممکن میکند.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python tools/figures/batch.py spec # کاتالوگِ نوعهای شکل
|
||||||
|
python tools/figures/batch.py export "پایه دوازدهم" "فصل ۲" هندسه --out f.json # درسهای فصل
|
||||||
|
python tools/figures/batch.py check batch.json # سختگیرانه: آیتمِ حذفشده = رد
|
||||||
|
python tools/figures/batch.py merge batch.json # افزودن به questions.json
|
||||||
|
```
|
||||||
|
|
||||||
|
درسهایی که ذاتاً شکل ندارند (تعریف، گزاره، نقیض) را شکل نمیدهیم. بیضی، سهمی و هذلولی نوعِ جدا ندارند:
|
||||||
|
با دو `function` (نیمهی بالا و پایین) کشیده میشوند. معادلهی خط را به شکلِ `ax + by = c` بنویسید (`y = -x/3 + 1`
|
||||||
|
خوانده نمیشود)، و نسبتِ `xRange` به `yRange` را از حدود ۱٫۵ بیشتر نکنید، وگرنه خطها نصفه کشیده میشوند.
|
||||||
|
بعد از `check`، شکل را حتماً رندر و با چشم ببینید.
|
||||||
|
|||||||
Reference in New Issue
Block a user