This project focuses on analyzing student performance in quizzes across various topics and generating personalized recommendations for improvement. Using data sourced from multiple APIs, we aggregate quiz performance data, identify weak areas, and provide actionable insights to help students enhance their learning. The project leverages Python libraries like Pandas for data manipulation, Matplotlib and Seaborn for visualizations, and Requests for API data fetching.
- Aggregation of quiz data by topic.
- Calculation of average final score, accuracy, speed, and total questions per topic.
- Visualizations of improvement trends across topics (Accuracy and Speed).
- Identification of weak areas and performance gaps.
- Personalized recommendations for improvement.
- Insights into how accuracy and speed impact student performance.
To install the necessary dependencies, run the following command in your terminal:
pip install -r requirements.txt
To run the Jupyter Notebook, follow these steps:
-
Launch Jupyter Notebook by running the following command in your terminal:
jupyter notebook
The script processes quiz performance data by grouping it based on the quiz topic. It calculates the following metrics for each topic:
- Average Final Score: Mean of all final scores across submissions for each topic.
- Average Accuracy (%): Mean of the accuracy percentage across submissions for each topic.
- Average Speed: Average time per question across submissions for each topic.
- Total Questions: Total number of questions in each quiz.
The project includes two key visualizations:
-
Improvement Trends (Accuracy & Speed):
- A line chart showing the trends of accuracy and speed over various topics.
-
Weak Areas Distribution:
- A pie chart visualizing the distribution of weak areas (topics with accuracy below 70% or final scores below 50%).
Based on the performance data, personalized recommendations are generated for each student:
- If the accuracy for a topic is below 70%, the system recommends more focus on that topic.
- If the final score is below 50% for a topic, a recommendation to review the topic thoroughly is provided.