Hi Codeforces,
The issue is that , in my opinion, Codeforces editorials are often not-beginner-friendly and sometimes very disappointing.
Please don't misunderstand me. I appreciate all the effort made by all the amazing people who make contests but
I think people can enjoy and benefit from Codeforces rounds much more if some changes are made.
My suggestion is to impose a specific format/template/rules on editorials that guarantees a min quality.
Given the effort needed to conduct contests, making small additions to editorials are almost effortless but they will yield a huge benefit for a big group of contestants, I think.
My assumption is that a good editorial should help people improve their problem-solving skills and related-knowledge. not just some annoying final task of contest making that we should do it ASAP.
So consider the following format:
For each problem,
State prerequisites, I know about tags and that a problem may have a lot of solutions but this will still be useful in a lot of cases since tags are not really specific.
Provide hints, this is incredibly useful for me and I assume for most of people same my level
DON'T DESCRIBE IT FROM YOUR PERSPECTIVE. a lot of problem setters are just very good for the very majority of contestants. so please, EXPLAIN the solution, not describe it. This criteria can be test by cyan or green volunteers.
The description of a solution should be like a story. the story of finding the solution. So, describe the process, at least one path, to the solution. This helps people learn how to think about the problem. Mention names of any problem-solving techniques used.
Provide clear code with comments when needed.
Optional: put a good comic after each problem.
As you can see, all these changes do not really require considerable time or effort. and with volunteers, no extra time is needed at all.
What do you think about all this? How does your ideal editorial looks like ? Also you can mention examples of Codeforces editorial your like!
Thanks for reading
I think the idea of stating prerequisites is really good. Currently, I might come across a difficult problem and just have no idea on how to solve it. After all, it requires some difficult data structure / algorithm.
As for providing hints, I think this and this are examples of good editorials.
It should be DO NOT not DON'T NOT :)
I like principally like your idea of provide hints and explain the way that the problem setter reach the solution.
Hope this to to he true. Amen
Writing a good solution is hard (maybe not as hard as coming up with a problem and creating a comprehensive test base for it, I don't have much experience writing them, so cannot tell with certainty).
I have written a blog with similar ideas, but this feature is still not implemented. I also think there should be some way to improve the given edutorial if the provided one is not good, or add different solutions. Writing it in comments or in blogs is not an organized way to solve the issue. Having a page of user solutions for each problem is one idea for that.
I think codechef editorials are pretty good
I agree
"I just tried bunch of shit and it somehow worked." The problem is that regular rounds are not meant as educational in the traditional sense. You solve a problem, memorize the solution and move on. You are basically feeding data to your pattern recognition machine.
I'm afraid extra requirements may lower the willingness of people to make contests. Unlike problems, community can help with the editorials. Maybe something like giving a better tools for discussing problems would improve the situation.
I agree that the community can help and does help a lot of times. This is what I do when I don't understand the editorial(for say 1473C)
1) I look for a solution in the comments and sometimes find a comment which explains things better. (Ctrl+F then search 'C '. note the space)
2) I reach out to someone who has solved the problem in a contest for help.
3) A lot of times you can see someone streaming right after the contest. I go to their stream to see their approach.
4) If the contest is not the last one and say I am getting WA on test 25 or am not getting the answer itself. I go to this link codeforces.com/problemset/status/1473/problem/C (replace the problem accordingly). Then search for people's submissions in the list who recently submitted and failed same test in same fashion(TLE or WA) using the same language and I just compare codes or approach them to find out how they found the solution or corrected their issue.
True, finding the solution is more often not a perfect stream of thoughts that lead you to the answer. Rather(as he mentioned), clearly mentioning the pre-requisites and then working from that would be better.
I agree with most of the points but "story of finding the solution" is not feasible. If you are the author you might not even have solved the problem in the traditional sense — instead you may have worked from the solution or arrived at this problem after many different versions, modifying the solution as needed. If we are talking about Div 2 ABC and you are a strong author (and I'm sorry, I hope this does not somehow demotivate anyone), then the thought process is "I looked it and saw immediately". A lot of the times the story is "I tried all sorts of approaches, didn't work, then I stumbled on the right one and suddenly the problem solved itself". There are cases when you do have a meaningful story; in that case you can provide it, but please don't require something like this for every problem.
I'm sorry but this is wrong. I write editorials for the Estonian olympiad and the difference between writing a short description (like the ones you condemn in your fourth point) and a fully detailed and accessible explanation is night and day.
I came to the comments to see if someone already said what -is-this-fft- said. This is a ton of effort. (I agree some of the suggestions are good, but it would be a lot more work, so please don't trivialize it.)
I didn't mean to trivialize it. All my points are simply 2 points: write hints and write editorial with a teacher mindset. My experience explaining solutions to others is really small but It generally takes me 5-10 mins to explain one solution in writing that's why I assumed it will take less time from a better player. but I clearly misjudged.
Agree completely with this.
Writing editorials, like settings problems, is a skill. You need to look at the problem from the viewpoint of the reader and constantly remind yourself to read back and look for any inadvertent assumptions you may have made in the editorial. Also, language plays a very important part (few problem setters aren't very fluent in English), as well framed sentences are almost equivalent to a pictographical description (which takes heck lot of time to create).
I've written editorials (in the past) for the Indian olympaid (INOI) problems on codechef and I've sat for hours together, remaking parts of the editorial atleast a dozen times until I had a satisfactory editorial at hand. Even then, the reviewers helped iron out inconsistencies (which were ashamedly many XD), till I created a good editorial. (PS, the quality of my editorials can be determined by the rating given at the end)
So, you surely can't expect problem setters to create top notch editorials, especially when there is significant effort involved and the incentive is little.
However, two things can be done: - ALWAYS include a native English speaker in your testers panel. - Have the testers review the editorial. If you have a distributed range of testers, you'll have green/cyan/blues who'll need the editorial to upsolve. Ensure atleast key points of the solution to review, if the editorial isn't prepared yet.
@Codeforces please apply the points which are feasible to authors.
i hope this blog wont get burried
In general, a tutorial should be of a lower level of complexity than the problem. Because if not, then only those who have solved the problem can understand it. And that's not the point of the tutorial.
Fully agree with this. The editorials have, unfortunately, generally not been very helpful for those of us who are not familiar with the underlying tricks involved (recent example: problem D in the recent Educational Round 102). Problem writers are likely fully caught up with figuring out the right problems and their solutions, and my guess is that writing an editorial is not something that many of them look forward to.
I have a solution for this. For each problem, give it a tentative rating. Then, have a tester with a rating that's closest to this problem do the writeup (preferably one with a lower rating than the problem). Finally, have the problem writers (or higher rated testers) review this and provide feedback on corrections.
Divide and conquer your way to higher quality.
I mostly agree with this. Especially for greedy problems, even seeing "this solution can be proven by induction" is waaaaaaaaaaaay better than seeing just a description of the solution, leave the guessing for contestants not authors. A proof outline (just the main points in the proof without detailed proofs) also would be way better than nothing and it wouldn't take much time at all to make.
Secondary point: if you guessed the solution and got WA on systest you deserved it. Every time I guess a solution (not often) I'm aware that I might get fucked by the systest but sometimes it's a risk worth taking.
Even though I agree with this, making stories up seems too much, the part I agree with is that "making small additions to editorials are almost effortless but they will yield a huge benefit for a big group of contestants". In other words: we agree there's a problem but the solution is still up for debate.