Files
lnet_tutor/exam_system/NEW_EXAM_CREATED.md
2025-10-22 20:14:31 +08:00

5.0 KiB
Raw Permalink Blame History

New Exam Created: Python Easy 15 Questions

Summary

User data cleared successfully

  • Removed all data from data/attempts/
  • Removed all data from data/output/
  • Removed all data from data/progress/
  • Reset manifest users to empty object

New exam created: python-easy-15q-v1

Exam Details

  • Exam ID: python-easy-15q-v1
  • Title: Python Fundamentals - Easy Level (15 Questions)
  • Subject: Python
  • Difficulty: Beginner (Easy)
  • Duration: 30 minutes
  • Passing Score: 70%
  • Total Points: 95 points
  • Total Questions: 15

Question Type Breakdown

Type Count Total Points
single_choice 6 30 points (5 each)
true_false 5 25 points (5 each)
multiple_choices 4 40 points (10 each)

Question List

Section 1: Python Basics (5 questions)

  1. [Single Choice, 5 pts] What is the correct way to create a variable in Python?

    • Answer: B (x = 5)
  2. [True/False, 5 pts] Python is a case-sensitive language.

    • Answer: True
  3. [Multiple Choices, 10 pts] Which of the following are valid Python data types?

    • Answers: A (int), C (float), D (bool)
    • Partial credit enabled
  4. [Single Choice, 5 pts] Which keyword is used to define a function in Python?

    • Answer: B (def)
  5. [True/False, 5 pts] In Python, indentation is used to define code blocks.

    • Answer: True

Section 2: Data Structures (5 questions)

  1. [Multiple Choices, 10 pts] Which of the following are mutable data structures in Python?

    • Answers: A (list), C (dict), D (set)
    • Partial credit enabled
  2. [Single Choice, 5 pts] How do you create an empty list in Python?

    • Answer: B (list = [])
  3. [True/False, 5 pts] A tuple in Python can be modified after creation.

    • Answer: False
  4. [Single Choice, 5 pts] What is the output of: print(type([1, 2, 3]))

    • Answer: B (<class 'list'>)
  5. [Multiple Choices, 10 pts] Which methods can be used to add elements to a list?

    • Answers: A (append()), C (insert()), D (extend())
    • Partial credit enabled

Section 3: Control Flow (5 questions)

  1. [True/False, 5 pts] The 'elif' keyword in Python is used for else-if conditions.

    • Answer: True
  2. [Single Choice, 5 pts] Which loop is used to iterate over a sequence in Python?

    • Answer: B (for)
  3. [Multiple Choices, 10 pts] Which statements are valid loop control keywords in Python?

    • Answers: A (break), B (continue), C (pass)
    • Partial credit enabled
  4. [True/False, 5 pts] Python supports switch-case statements like C or Java.

    • Answer: False
  5. [Single Choice, 5 pts] What does the 'range(5)' function return?

    • Answer: B (A range object representing 0 to 4)

Features Enabled

"I Don't Know" Option

  • All questions have allowIDK: true
  • Students can select "I don't know" to avoid guessing
  • IDK responses score 0 points (no penalty for honesty)

Multiple Choices with Partial Credit

  • All multiple_choices questions have partialCredit: true
  • Scoring formula: (correct_selected - wrong_selected) / total_correct × points
  • Minimum score is 0 (no negative points)

Automatic Scoring

  • Exam contains only auto-gradable question types
  • Score is calculated immediately upon submission
  • No manual grading required

File Location

/Volumes/data/tutor_system/exam_system/data/input/python/2025-10/python-easy-15q-v1.json

Manifest Update

The exam has been added to data/manifest.json and published:

{
  "examId": "python-easy-15q-v1",
  "subject": "python",
  "month": "2025-10",
  "path": "python/2025-10/python-easy-15q-v1.json",
  "published": true,
  "version": "1.0.0"
}

Next Steps

To Deploy (when Docker Hub connectivity is stable):

cd /Volumes/data/tutor_system/exam_system
docker-compose down
docker-compose up --build -d

To Test:

  1. Open http://localhost:4200
  2. Register/Login as a user
  3. You should see the new exam: "Python Fundamentals - Easy Level (15 Questions)"
  4. Start the exam and test:
    • Single choice questions with IDK option
    • Multiple choices with checkboxes and IDK option
    • True/False with IDK option
    • Selecting IDK in multiple_choices clears all other selections
  5. Submit and verify:
    • Automatic scoring works
    • Partial credit is awarded correctly
    • Result page shows all options with color coding
    • IDK selections show yellow notice

Known Issue

⚠️ Docker Hub connectivity is currently unstable

  • Connection resets when pulling node:18-alpine and nginx:alpine images
  • This is a temporary network issue
  • The exam server (Python) container builds successfully
  • Retry the docker-compose command when network is stable

Previous Exams Still Available

The following exams remain published in the system:

  • python-easy-v1 (original easy exam)
  • python-intermediate-v1 (50 questions, intermediate level)
  • python-easy-15q-v1 (new 15-question exam with multiple_choices)

All three exams are available in the exam list.