Some Problems in the state of Codechef

Hello again @randomusername,

I was in a bit of a hurry when I wrote that answer and I couldn’t wrap it up properly. Fortunately, you brought it up again with the line: “(…)It’s a tough job and you pointed out some valid difficulties a team faces when creating a contest. Let’s leave that as it is for now(…)”

Maybe we shouldn’t leave that as it is and clear up some points.

First of all, most problem setters aren’t professionals, instead, they are simple ordinary people like you and me (I am studying CS, pursuing a Bachelor’s degree and I am currently on the 2nd year of a 3-year timespan), which have their own lives and their own affairs besides CC.

With this being said, I wouldn’t be surprised if you were a better programmer than I am (you probably are, because, as I’ve mentioned on earlier answers, this is the end of my first more serious year and a half learning with Codechef, and there are yet many, many topics I don’t know about, so, we are all here to learn, all the time, especially because 1 year and a half is nothing!! :smiley: ), so, I guess writing problems/editorials has to be something one is really interested in, in order to do a good job.

However, as I said above, sometimes our own personal affairs, university, exams, etc, tend to be very overhelming and CC might fall back at times. It is something that ideally shouldn’t happen, but, the fact is, it does happen. That might be one of the reasons why some setters’ only check their e-mails when there are only 2/3 days left for the contest to start, which, obviously will reflect on the quality of the test cases and problem statement and puts additional pressure on the editorialist/testers’.

This isn’t something that we can fix, right? I hope people understand this. It’s not like we can SSH into the setters’ computer and leave him/her a message to check their e-mail because they are falling back on the problem preparation. It’s the inherent human factor that unbalances the equation that we can’t obviously fix (we could always discard the people which didn’t checked in after say, 1 day and replace them with someone else, but, that’s unfair on one hand and not very pratical on the other hand, as the “replacement” setter would be caught off-guard, in a sense.)

However, ironically, we have literally the best programmers’ in the world contributing for Codechef, which for sure helps in setting some great problems which can’t be found anywhere in the web, after all, which website can brag about having had @mugurelionut, @ACRush, @Anton_Lunyov, @Gennady.Korotchevic, @xiaodao, @Rubanenko, among many other amazing names setting problems? I bet no site can :wink:

So, as you can see, we have amazing setters’, somewhat competent testers and well, some poorer organization when it comes to writing editorials.

I guess that, if you agree with my idea of having the setter writing their own problem editorial, you might also agree with the point that some setters might be capable of setting a hard problem, but, might not be so capable of writing a decent editorial about it. (I really think that writing good texts takes a lot of effort and a lot of English proficiency + time, which, imho, is not something many people among the setters’ panel might have, at least, I don’t have any of those things if you ask me, which would make this task harder for some peole and might make them back off setting problems.)

On other hand, we might need to look into the problem structure versus problem difficulty versus contest duration.

When setters’ here mark a problem as being a HARD problem, it really means that the problem really is VERY HARD, right? (Which means that we are only having issues with all the remaining difficulty levels except with the HARD one, maybe simply because there are fewer harder problems and they really stand out from the rest)

However, maybe even the definition of HARD might need to be scaled down a bit, after all, if some coders here are learning Segment Trees for the first time, how is it expected that they will understand what a FFT is, how it relates with DFT, and what it is used for? We aren’t even talking about hard data-structures anymore, we are talking about concepts which are at the level of a Master’s Degree in Algorithms or maybe only PhD level in some countries (as in Portugal, for instance).

This, however, only comes into light of what was discussed earlier, and that both the concepts used and the difficulty levels need to be definitely re-thinked in order to have more balanced contests.(this is extremely notory on the Lunchtime contests, btw).

(Sidenote: I am yet to understand how to code a FFT in C++, and even understanding what it receives as input, and returns as output is somewhat tricky to me, and well, I guess I can’t call myself a newbie anymore.)

So, what can be done was already discussed above in general guidelines, we might need to wait for some admin reply on this.

Best,

Bruno

4 Likes

By Day 7 or 8 of the contest, CodeChef can invite editorials from the top 10 or 20 fastest problem solvers for each contest problem. I am sure that some of them comfortable in written English, would be willing to write an editorial and in the process, we can get to learn various methods used by top programmers. However, this method will not work for the shorter contests.

14 Likes

I see. I understand that all of you have personal lifes, but the fact that nothing will change is devastating. How can 5 day rating update/challenge problem regrade be normal? But OK, I guess it can’t be helped. Also, I still believe the problem clarity issue can be solved very easily. You didn’t talk about it as far as I can tell (I read your post yesterday). Regarding the other things, including balance and editorials, I mostly agree. You presented some valid arguments, it’s not easy as it seems. But still, I think that some things can be corrected with just a bit more effort.

As you said, there’s nothing we can say after this. Let’s just wait for an admin response, if it ever happens.

Regards,

RandomUsername

1 Like

Hello again,

First of all, thanks for being so insistent on this matter and for not leaving any “loose ends” in your analysis of the main issues our platform is currently facing… It’s a motive of both joy and concern to see such dedicated users :smiley:

And well, I did briefly mentioned this issue regarding statements clarity, on my first post:

"Regarding the correctness and clarity of the statements I guess that nothing can be done at least on a more practical level. I think so because most setters (myself included) are not native English speakers so it’s normal to have some mistakes and misunderstandings in the statements.

Maybe the testers should also proof-read statements in some way…"

However, it might be worth mentioning that (at least, in theory) it’s the editorialist duty to revise the statements in order to make them clear!!

This brings up a more nasty problem, because, if the editorialists themselves are not native English speakers, then, there might always be some issues with problem statements and unfortunately, this is a very recurring and serious issue on some very popular websites (just look at Codeforces and at the last round which was held!! Possibly the worst round I’ve ever seen so far.) and I really don’t think that nothing can be done besides hiring maybe a good literature person to proof-read the statements :stuck_out_tongue:

Which is also bad, because these people are getting paid and should possibly find a way to solve all these issues in a proper way!!

Please all note that I’m not being critic in a negative way, I’m just exposing some problems and I’ve already presented a plethora of possible solutions!!

@randomusername, once again, thanks! I’ll get in touch with admins and mention this post, so they can decide in an informed way!!

All the best,

Bruno

1 Like

I am not a native English speaker, either, yet I feel that my English is much better than the one used in some statements. (Wrong forms of verbs, order of words and lack of articles are the most common and painful issues.) That’s not an excuse, really.

If you’re not good at a language, it’s because you’re not using it regularly. One noteworthy method of improving that (as long as you don’t have the opportunity to use English at a daily basis) is reading books - that way, you get used to the correct way of using some constructions and extend your vocabulary.

Maybe a more serious problem than the level of English itself is the inclarity of statements, regardless of the language. It’s good to make a problem statement interesting by adding a story, but it should provide a clear (and that includes scientifically worded) description of the task, even for someone who decides to skip the story completely. Properly formatting sections of a statement (story, problem, input, output, notes…) and things like equations or code is another step towards greater clarity.

2 Likes

Everything was fine earlier but the problem started after change in the rule of judging challenge problem…So I think it would be better if the codechef team will remove the rule of partial judging
and They have already reduced the number of submissions one can make for a problem.

1 Like

i hope everybody is familiar with Joel Spolsky(founder of stackoverflow stuff) he has GOLDEN advice for CS students(since, here we all learn coding, then we are also in that set IMHO): Advice for Computer Science College Students – Joel on Software

****> Learn how to write before graduating.

Would Linux have succeeded if Linus
Torvalds hadn’t evangelized it? As
brilliant a hacker as he is, it was
Linus’s ability to convey his ideas in
written English via email and mailing
lists that made Linux attract a
worldwide brigade of volunteers.

Have you heard of the latest fad,
Extreme Programming? Well, without
getting into what I think about XP,
the reason you’ve heard of it is
because it is being promoted by people
who are very gifted writers and
speakers.

Even on the small scale, when you look
at any programming organization, the
programmers with the most power and
influence are the ones who can write
and speak in English clearly,
convincingly, and comfortably. Also it
helps to be tall, but you can’t do
anything about that.

The difference between a tolerable
programmer and a great programmer is
not how many programming languages
they know, and it’s not whether they
prefer Python or Java. It’s whether
they can communicate their ideas. By
persuading other people, they get
leverage. By writing clear comments
and technical specs, they let other
programmers understand their code,
which means other programmers can use
and work with their code instead of
rewriting it. Absent this, their code
is worthless. By writing clear
technical documentation for end users,
they allow people to figure out what
their code is supposed to do, which is
the only way those users can see the
value in their code. There’s a lot of
wonderful, useful code buried on
sourceforge somewhere that nobody uses
because it was created by programmers
who don’t write very well (or don’t
write at all), and so nobody knows
what they’ve done and their brilliant
code languishes.

I won’t hire a programmer unless they
can write, and write well, in English.
If you can write, wherever you get
hired, you’ll soon find that you’re
getting asked to write the
specifications and that means you’re
already leveraging your influence and
getting noticed by management.

Most colleges designate certain
classes as “writing intensive,”
meaning, you have to write an awful
lot to pass them. Look for those
classes and take them! Seek out
classes in any field that have weekly
or daily written assignments.

Start a journal or weblog. The more
you write, the easier it will be, and
the easier it is to write, the more
you’ll write, in a virtuous circle.****

codechef problems are barely English, i think they are Hinglish(indian+english). sorry for that, but pls adminstrative staff, pay attn to those details. thnx

2 Likes

I was planning to write an essay about how much trouble I have gone through just to understand every single problem this site contains. But, well, forget it. It’s not worth the time ranting.
I am not a programmer but I am planning to get into the industry, switching careers. The most concern I have now is that, do you programmers always face this kind of hard-to-understand instruction to the problem every day you work? This site is scaring me due to the fact that almost every problem I’ve seen is not written in modern English!
80% of time I spent on each problem is to trying to figure out what in the holy world is it asking for!

I felt your earlier title was not appropriate so i changed it.You can change it back if you disagree.

kcahdog: What do you have against Hamlet? :smiley:

Seriously, I feel offended. What’s wrong with Hamlet? If I broke a codechef rule, it’s ok to change what I wrote. But if I didn’t please let others decide if they like something or not.

1 Like

I was just about to say that. You can’t blame it all on your lack of language skills, there are mistakes that go beyond the language barrier, like in the tasks I mentioned earlier in this post.

totally agree. (like :wink:

Partial judging can stay. They should just judge all the submissions on 100% of test cases and then just show the score for 20%, thus when the contest ends the only thing you have to do is display results for 100%, simple as that. No regrading time.

P.S. If you don’t judge every submission on 100% as soon as it arrives, how do you know it won’t give wrong answer on some of the unknown 80%?

Exactly. And I bet my rating two people who know English good can fix all the mistakes Hinglish caused in one long contest. You can pay them, but I bet you can also find volunteers. That’s why I still find it hard to believe that the best Codechef can do is Hinglish, set aside everything Bruno said. It is a hard job, and they aren’t native speakers, but we’re on internet for god’s sake, how hard can it be?

1 Like

I’ve already indicated this post to Admins, so, maybe in a not so distant future we might get some kind of feedback on this matter :slight_smile:

1 Like

Thanks :slight_smile: I hope someone actually reads it :slight_smile:

They judge on all tests. But it is not possible with the existing design to show the score on the whole set of tests without judging them again. Let’s hope that will be fixed soon.

1 Like

Well if they do judge on all tests that’s a good thing. I think that a tiny modification of the system would allow access to those scores as soon as the contest ends. If it’s only a matter of design I think we should just wait, they must have that on a to-do list :slight_smile:

Yeah, that was a well known hamlet allusion. The original quote was “Something’s rotten in the state of Denmark.” I understand that not all users will understand the allusion though, so I understand why you edited it kcahdog.

1 Like