Assignment: Quiz Generation System for Operating Systems
Deadline: 15 Sept, Sunday 12:00 Noon
What to Submit: Github link + Demo Video
Assumptions Note:
If any requirement or specification is missing or unclear, the programmer is encouraged to make reasonable assumptions based on common practices for quiz systems and core operating system concepts. All assumptions made should be clearly documented in the README or commented in the code for review.
Skills Evaluated: Programming and problem-solving skills.
Tech Required:
1. React
2. Nodejs
3. Python
Objective:
Create a quiz generation system focused on core topics of Operating Systems. The system should allow users to select topics (e.g., Memory Management, Process Scheduling, etc.) to generate quizzes. Based on their performance, the system will analyse strengths and weaknesses and adjust future quizzes to focus more on weak areas and less on strong areas.
Task Breakdown:
- Quiz Generation System:
- Build a system where users can select topics (e.g., Process Management, Memory Management).
- Generate quiz questions dynamically based on selected topics.
- Each question should include:
- Description
- Multiple answer options
- Correct answer
- Performance Tracking:
- After the quiz, analyse the user's performance to identify strong and weak areas.
- Categorise results into two sections:
- Strong topics: Topics where the user performed well.
- Weak topics: Topics where the user performed poorly.
- Provide suggestions on which areas need improvement based on the overall quiz score per topic.
- Adaptive Quiz Generation:
- In future quizzes, adjust the number of questions:
- More questions from weak areas.
- Fewer questions from strong areas.
- Ensure the quiz remains balanced and challenging.
- Sample Data:
- Use or generate a sample dataset of questions. Each question must have:
- Topics (e.g., Process Management, Memory Management)
- A detailed description
- Multiple choice options
- The correct answer
- Expected Output:
- A working quiz system that generates quizzes based on selected topics.
- After quiz submission, provide an analysis of strong and weak topics.
- Adaptive quiz generation based on performance.
Sample Data
{
"questions": [
{
"description": "Which of the following is a valid page replacement algorithm?",
"options": ["FIFO", "LRU", "SJF", "Round Robin"],
"correct_answer": "LRU",
"topic": "Memory Management"
},
{
"description": "What is the primary purpose of a process scheduler?",
"options": ["Allocate memory", "Select which process to run", "Manage I/O devices", "Handle interrupts"],
"correct_answer": "Select which process to run",
"topic": "Process Scheduling"
}
]
}