Hello, Codeforces community!
I am currently working on a project called "Codeforces User Analysis System for Generating Individual Training Recommendations". The goal of this project is to create a tool that recommends tasks to users, helping them improve their skills through solving targeted problems.
As the first step, I decided to collect data using the open Codeforces API. After spending about 6–7 hours gathering and processing the data, I thought it would be a good idea to share the dataset with the community. This way, anyone working on similar projects can save some time.
What is this dataset about?
This dataset includes submissions from ≈15,000 active Codeforces users over the entire history of the platform, up to the end of November 2024. The dataset consists of 17.6 million records, with the following details for each submission:
handle
: An anonymized and shuffled user nickname (e.g.,user{i}
).rating_at_submission
: User's rating at the time of submission.problem_rating
: Problem difficulty rating.id_of_submission_task
: Unique problem identifier on Codeforces.verdict
: Result of the submission (e.g.,OK
,WRONG_ANSWER
).time
: Time of submission (in seconds since the Unix epoch).
Where to download the dataset?
I have uploaded the dataset to Hugging Face:
UsersCodeforcesSubmissionsEnd2024
How can this dataset help?
- Save time: No need to spend hours collecting data. It’s already processed and available in a ready-to-use format.
- Support AI projects: This dataset can be used to develop training systems, analyze user behavior, study problem difficulties, and more.
- Inspire new ideas: Perhaps this dataset will inspire you to start your own projects)
Wishing you productive learning and good luck with your projects! :)
Auto comment: topic has been updated by denk (previous revision, new revision, compare).
Don't you think it can be full of errors if you specifically want use it to decide what problems to recommend to people of a particular rating range? Because many times people use multiple platforms and some even quit codeforces, practice somewhere else and return as Masters or Candidate Masters.
Yes, I've thought about that, but I have some assumptions on how to mitigate the impact of such errors. However, this blog isn't about my project but about the database itself. Of course, this data can be used not only for machine learning but also for gathering other types of statistics
oh, so thats why we all are facing queue..
interesting stuff
Do you mind if I try the same as a hobby project?
Of course, I don't mind; on the contrary, I'll only be glad!
Thank you so much :D, will share if I get good results!
Tfw I found myself in the dataset... so I am active, in a way?
For the sake of things, kudos for actually censoring the handles in the dataset. Not sure revealing would harm anyone, but I think we all do prefer a bit of privacy.
Simply querying in tight ranges and check for matching submission patterns.
Apologies for not clarifying what is meant by "active" in this context. This dataset considers submissions from users who were included in the leaderboard rankings at the time of data collection (i.e., those who participated in at least one contest in the last six months).
Woah, I see. I thought "active" at first meant those with top activity count of all time, turns out it was just current active ones with data spanning through "all time". Punctuation matters, I guess. It's good to know now though. ;)