5.0 KiB
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)
-
[Single Choice, 5 pts] What is the correct way to create a variable in Python?
- Answer: B (x = 5)
-
[True/False, 5 pts] Python is a case-sensitive language.
- Answer: True
-
[Multiple Choices, 10 pts] Which of the following are valid Python data types?
- Answers: A (int), C (float), D (bool)
- Partial credit enabled
-
[Single Choice, 5 pts] Which keyword is used to define a function in Python?
- Answer: B (def)
-
[True/False, 5 pts] In Python, indentation is used to define code blocks.
- Answer: True
Section 2: Data Structures (5 questions)
-
[Multiple Choices, 10 pts] Which of the following are mutable data structures in Python?
- Answers: A (list), C (dict), D (set)
- Partial credit enabled
-
[Single Choice, 5 pts] How do you create an empty list in Python?
- Answer: B (list = [])
-
[True/False, 5 pts] A tuple in Python can be modified after creation.
- Answer: False
-
[Single Choice, 5 pts] What is the output of: print(type([1, 2, 3]))
- Answer: B (<class 'list'>)
-
[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)
-
[True/False, 5 pts] The 'elif' keyword in Python is used for else-if conditions.
- Answer: True
-
[Single Choice, 5 pts] Which loop is used to iterate over a sequence in Python?
- Answer: B (for)
-
[Multiple Choices, 10 pts] Which statements are valid loop control keywords in Python?
- Answers: A (break), B (continue), C (pass)
- Partial credit enabled
-
[True/False, 5 pts] Python supports switch-case statements like C or Java.
- Answer: False
-
[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:
- Open http://localhost:4200
- Register/Login as a user
- You should see the new exam: "Python Fundamentals - Easy Level (15 Questions)"
- 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
- 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.