/student-ratings

Implementation of ELO rating for competitive programming for Alcoding Club

Primary LanguagePython

Student Ratings

Alcoding Club, PES University

Build Status

Alcoding Club of PES University maintains ratings of its students who are active in competitive programming. This repository contains the ratings and the code which generates it.

Purpose

An intra-college rating is maintained so that the club can identify good coders. The club will group these students and help them improve at competitive programming by organizing meet-ups, providing resources, arranging contests and develop a coding community in the University.

Ratings

The ratings are calculated by students' performances in specified contests.

Mechanism

A rank list of registered students is generated at the end of each contest. A rating is computed from the rank list, which indicates their relative performance. The implementation is almost the same as Codechef's Rating Mechanism which is a modified version of Elo rating system. To avoid students from protecting their ratings and encourage participation, a decay rule is also added which decrements a student's rating by 1% if she does not take part in 5 consecutive contests.

Verification

The code that generates the rating is open. Along with that we have provided a script with which you can verify that the displayed ratings are correct. This script resets all students' ratings, and computes the ratings after all the contest ranks are considered. You may report an issue if you find any discrepancy.

Calendar

Alcoding Club maintains a Google calendar for competitive programming. Contests that are marked as "Rated" will be considered for these ratings.

Contribute

This project is still very small so there are no strict guidelines for contribution. For now we are following PEP 8 -- Style Guide for Python Code.

You can report an issue if you find a bug or any other change you would like to make. You may also make a pull request. It would be helpful if you use our Github labels for all issues and pull requests. Be sure to clearly document and describe any issues or changes.

FAQ

  1. How can I improve my rating?

    The only way you can improve your rating is by consistently scoring more than those who are rated higher than you.

  2. Which contests have been considered for these ratings?

    The contests considered for ratings have been listed here. This list will be updated after calculating the ratings for each contest.

  3. Which contests are taken into account for rating?

    Contests in 'Competitive Programming PESU' Calendar are considered for ratings.

  4. How can I tell if these ratings are legitimate?

    You can verify the ratings yourself by running this script. It resets all students' ratings to default values and recomputes it for all contests so far in chronological order.

  5. How can I get the scoreboard only for some particular contest(s)?

    Clone this repository, open executor.sh and remove the contests you do not want the scoreboard for. Run this script and check scoreboard.csv.