📌 Project Overview
AutoJudge is a machine learning–based system that automatically predicts the difficulty level of programming problems using only their textual descriptions. The system performs two tasks:
-
Classification: Predicts the difficulty class
→ Easy / Medium / Hard -
Regression: Predicts a numerical difficulty score
The prediction is based solely on problem text (description, input, output), without using user submissions or platform statistics. A Streamlit web interface is provided for real-time inference on new problem statements.
⚙️ Installation & Setup
- Clone the Repository
git clone<repository-url> cd AutoJudge
- Install Dependencies
pip install pandas numpy scikit-learn joblib streamlit
Running the Project
Step 1 : Train the models (acm_classifier.ipynb)
This Step:
- Loads dataset
- Trains classification & regression models
- Evaluates performance
- Saves trained models
Step 2 : Launch Web Application
This web app loads the saved models and performs inference only
Run this in the Command Prompt and make sure the working directory is the same as the cloned file.
streamlit run app.pyWeb Interface Usage
-
Paste:
a) Problem Description
b) Input Description
c) Output Description
-
Click Predict Difficulty
-
View:
a) Predicted Difficulty Class
b) Predicted Difficulty Score
To View the Demo Video Download it to watch it fully or use the link:
https://drive.google.com/file/d/16NXo2LxZjWUUCvy6zbNXxfw_kptE87US/view?usp=sharing