Codeforces User–Problem Interaction Dataset for Personalized Programming Problem Recommendation and Balanced Team Formation

Published: 6 August 2026| Version 1 | DOI: 10.17632/sffnc5dxgv.1
Contributors:
, MD HOSSIN

Description

This dataset contains processed user–problem interaction data collected from the publicly available Codeforces API to support research on personalized competitive programming problem recommendation and balanced team formation. The recommendation dataset consists of interactions from 1,000 Codeforces users, 10,864 programming problems, and approximately 918,763 processed user–problem interactions. It includes user submission histories, problem metadata, user performance features, and user weakness profiles computed across programming tags and difficulty levels. The data were generated through a preprocessing pipeline that aggregates multiple submissions into user–problem interactions, computes solving statistics, and extracts problem ratings and programming tags. For the team formation experiments, an additional dataset was collected from 30 members of the Comilla University Programming Club, whose publicly available Codeforces submission histories were retrieved through the Codeforces API to construct user performance profiles and evaluate the proposed balanced team formation method. This dataset is intended for research in recommender systems, collaborative filtering, educational data mining, competitive programming analytics, and automated team formation. It accompanies the research titled A Hybrid Recommendation and Team Formation System for Competitive Programming and is provided to support reproducibility and future research.

Files

Steps to reproduce

1. Install Python 3.10 or later and the required dependencies (`pandas`, `numpy`, `requests`, `scikit-learn`, and `scipy`). 2. Run `fetch_data.py` to retrieve publicly available user submission histories from the Codeforces API. 3. Run `fetch_problems.py` to download problem metadata, including problem ratings and programming tags. 4. Execute `preprocess.py` to aggregate submissions into user–problem interactions, calculate the number of attempts, determine solved status, and merge submission data with problem metadata to generate `processed_data.csv`. 5. Run `user_features.py` to compute user-level performance features, including solve rate, Codeforces rating, maximum rating, and problem-solving statistics. 6. Run `fetch_user_weakness.py` to generate tag-level and rating-level weakness profiles (`user_tag_weakness.csv` and `user_rating_weakness.csv`) based on users' historical solving behavior. 7. For the team formation module, collect the publicly available Codeforces handles of the selected participants (30 members of the Comilla University Programming Club in this study) and execute the team formation preprocessing pipeline to generate user performance profiles and weakness features. 8. The resulting processed datasets can be directly used to reproduce the recommendation, weakness analysis, and balanced team formation experiments reported in the accompanying research paper.

Institutions

Categories

Data Mining, Machine Learning, Educational Interest, Recommendation System

Licence