Gnay_Oahnauhz's blog

By Gnay_Oahnauhz, history, 7 years ago, In English

I want to ask you about your opinions on an idea about promoting competitive programming at my university.

The rough idea is like this:

When there is a rated round on codeforces, people in my university can have a choice to pay a little amount of money, say $1, to me to compete in that round. And after that round, competitors who do better will earn money from competitors who do worse. I don't make money by doing so, which means all the money collected will be distributed according to the competitors' performance. I hope this will make the game more excited and attract more people, just like in RPG games.

There are still details I don't work out. For example, how to distribute the money? How to distinguish coders with different skill level, so that everyone will have the chance to win money?

Please kindly provide your advice on the idea. Do you think this idea is viable or not? Or are there platforms like this already? Or do you think this idea is completely inappropriate.

  • Vote: I like it
  • +27
  • Vote: I do not like it

»
7 years ago, # |
  Vote: I like it +47 Vote: I do not like it

First, in general I'm not quite sure the money based system is a good idea. Maybe you'd better ask your school for some sort of small prizes to award the best ones. Badges, t-shirts, etc.

Anyway. If all the awards go to the best, it won't attract people of lower skill. What about distributing them based on rating change after round? And maybe even better would be to sell "monthly subscription" and distribute awards based on overall rating change (however, this needs division separation). This may not attract those who reached their top level, but could inspire newcomers. From the other side even with month periods there could be people who intentionally lose rating one month to easily regain it the next one.

  • »
    »
    7 years ago, # ^ |
    Rev. 2   Vote: I like it +17 Vote: I do not like it

    Thanks for your advice, I think your idea on rating change is inspiring!

    I think the system is for attracting newcomers. And another purpose is to help freshmen to be familiar with the basic ideas of programming languages.

    I want to share my thoughts on why participants should pay money to compete.

    In codeforces/topcoder, only after I have a relative high rating, for example advancing into div1, do I have strong desire to solve more problems, because I am afraid that I will lose my rating. When I am in div2, I feel that my desire to solve more problems is not that strong. Because even if I just solved div2A/B, my rating didn't change much. It seems that "I have nothing to lose" and I don't see the point in solving more problems.

    But what if you will lose something if you do badly in a competition even if you are a beginner? Now I tell you that if you solve more problems than others, you will likely be better than other competitors and will have more chance to win money from them. But as a trade-off, you will lose your money if you do badly. It's somehow similar to gambling. But the difference is that your behavior will determine your probability to win or lose. And yes, your money will come from people who have similar or higher skill level as you in the past if your rating goes up, because this shows that it's likely you are working harder than them.

    • »
      »
      »
      7 years ago, # ^ |
        Vote: I like it +5 Vote: I do not like it

      So, The best one have no chance to win any amount of money?

      • »
        »
        »
        »
        7 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I haven't think of any good idea about this yet. I think the best (in the long term) will not receive money from other competitors. Maybe I can set additional prizes for round winners? It is like...turning rating change into money gain/loss.

»
7 years ago, # |
  Vote: I like it +5 Vote: I do not like it

How about having different kinds of prizes, for example one type for top three participants ,one for those who have their colors changed and another one for those who only have gained positive rating. This way almost everyone could be somehow motivated according to their own level.

Generally, the idea of competing in university with people you know, could be very effective and what you’re trying to do is so inspiring ,Good luck.

»
7 years ago, # |
  Vote: I like it +5 Vote: I do not like it

How about some small prize for someone who solves a certain amount of problems in the contest? Or archiving a specific score?

»
7 years ago, # |
  Vote: I like it +19 Vote: I do not like it

I don't think giving money is a good idea.

In my opinion, it is not just about involving the best students in your university, but involving people who really want to be there because they like spending their free time solving problems creatively. You will find that there are students that are actually excellent competitive programmers but they just don't care about getting good grades.

The main issue about giving money or granting extra points in exams for example, is that, the moment you stop doing it, you will see that many people will start abandoning your group, which will result in a waste of your time specially if you are planning to prepare them by giving lectures or other things like that.

It is much better to start with a small group, it doesn't matter if at the beginning you are only a group of 4 or 5 people. When people in your group start achieving important thing, other students will try to join on their own.

  • »
    »
    7 years ago, # ^ |
    Rev. 2   Vote: I like it +3 Vote: I do not like it

    Thanks! I see your point.

    Our unviersity once granted extra credits for ACM/ICPC but it does not now. (Actually, many other universities are still acting like this) Yesterday we talked about this with a schoolmate of my university. He also thought the idea of giving extra credits was somehow stupid.

    Your idea on starting out as a small group and achieving important thing is very inspiring.

»
7 years ago, # |
Rev. 4   Vote: I like it +13 Vote: I do not like it

We did a similar thing but for a board game, and it didn't work.

Two months later after the "implementation" of this "mechanic" almost all people who joined started to leave, one after another. We ended up being the same we were before of that idea. Why? well, because the distribution of winners and losers was extremely unfair and stupid. We also tried to introduce palliative rules, and they only led to people complaining about unfair situations these rules created. For example, why is it possible that a guy who is less skilled than me ended up earning more money than I did? This may sound stupid, but these are the typical situations you can find in a patched system.

In my opinion, these systems work fine in games and situations where a "fair", near to 1 win/loss ratio is guaranteed or at least perceived (for example, sports bets are so popular due to that). If a system has an unfair distribution of winners and losers then I think that it will converge to a fairer system, i.e: the weaker players will leave.

Also, take into account one sad thing: if money comes, cheating will do too. And cheaters will always outsmart you. You will have no guarantee that everybody is competing at their proper skill level, for example. They can always fake it.

  • »
    »
    7 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thanks for your feedback, it is very important and insightful.

    You also remind me of the importance of how to define 'fair'. I must rethink this carefully.