alex.velea's blog

By alex.velea, history, 7 months ago, In English,

Hi everyone.

I need to make a project for one of my university courses and myself and other guys want to make a 'competitive programming coach platform' of some sorts.

Our main idea is to use all the problems which are currently on the platforms and analyse them with AI (buzz words, I know) and give them a wider range of difficulty. For example, a problem may require a big understanding of graphs and some little math and data-structures (like stack and gcd). We want to say this for every problem and when someone wants to train a particular area we will suggest problems that will 'improve' only that part or hopefully do this, meaning that the other parts should not be a problem in solving the task as he/she already possesses enough skill points in that expertise.

For example, I really such at geometry so any geometry problem would somehow improve this area for myself. My question here is: What would you expect of such platform? What it should do and what is shouldn't?

I'm not going to say a lot about our vision of the 'platform' since it may influence you in any way. The main idea is that we want to take the information on the web recommending competitive programming and filter and suggest it to people.

Please, if you could give us some feedback regarding what would you expect, what we shouldn't do and maybe what is already done but it can be done better — ex: more social parts of competitive programming like facebook of some sorts.

Would you use something like this? Why? Why not?

This is really important for us since this study case/user expectations part would be needed to present to a teaches as part of our assignment.

If you wish, you could send this feedback as a private message to myself. Whatever's comfortable for you.

Thanks again everyone!

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

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

    Thanks a lot! I'll go throw it tomorrow :) It'll sure give us a better base-line about the platform and how to do the AI magic

    Are there any features that you would be interested in?

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

      With pleasure. I have just sent you a private message. Please check your messenger.

»
7 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Hi guys. Any features you might expect or why you would not be interested in something like this? Please?

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

    up please?

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

    For me, I would only care about the quality of problems. I will be interested in it if and only if the problems are good :D

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

    If I understood correctly, you want to build something similar to, but a better version of Code Drills..

»
7 months ago, # |
Rev. 2   Vote: I like it +5 Vote: I do not like it

So what I understand about your idea is..

  • You have large database of competitive programming problems, related theorems, and solutions.
  • Your AI classifies those problems and select/recommend fit problems to improve users' skill.

I assume you are targeting standard-skilled coders because they are majority and many advanced coders like Div.1 participants are studying well in their own way.

I have several points to argue:

  • Since there are so many well-prepared courses that teaches data structures and algorithms for newbies, your AI should be pretty good to attract many newbies.
  • I think giving only problems will not be the good solution. In other words, I think you should be prepared with well-written solutions(or nice tutors) and useful trick tips.

And finally, (I think this is from my bad English skill, but anyway) I don't understand your sentence: "The main idea is that we want to take the information on the web recommending competitive programming and filter and suggest it to people."

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

    There are a lot of courses/tutorials or similar things for each topic. A quick search for binary search tutorial on google gives a lot of results, but which ones are the best?

    I personally learned a lot from http://e-maxx.ru/algo/ — besides the fact that it's in russian and I used google translate. I guess there a lot of similar resources like this.

    We would want to create an archive of some sorts and put links to them and people can say "well, this article is bad written and it wants to teach convex hull trick" and we'll adjust our 'recommendation algorithm' to 1) recommend it to convex hull trick 'learners' and not give it such a big 'recommendation rate' since people say it's kinda bad

»
7 months ago, # |
  Vote: I like it +9 Vote: I do not like it

I would certainly use this kind of tool and I believe that many would do so because it's pretty hard to find interesting problems whenever you need some. As an important part of competitive programming is comparing with others,I would add a "follow"/stalk feature to keep track of competitors of my level on multiple sites(maybe it should be usable only with a competitor's agreement in a mutual way,because I feel there are some competitors who hate to be stalked on programming websites).Also,a feature like problem review(or maybe just quality rating) would certainly help,because it would be easier to find interesting problems this way(yes,it is good to solve all problems on an online judge, even those you don't like but honestly 99% of the time it is unrealistic).Maybe a feature like "users who liked this problem also liked" or "users who liked this problem are usually weak at" would be a pretty good use of the reviews.I believe this kind of features would attract users of all skill ranges.