Если кто не знаком с термином, то это способ создания контента силами сообщества. Можно почитать википедию.
Собственно, идея краудсорсить разборы задач кажется вполне естественной, но ... плохо работает. Как мы видим, уже не первый контест не находится желающих помочь сообществу. Вопроса собственно два: почему и как быть?
Давайте вместе обсудим этот момент. Что нужно исправить/улучшить/изменить, чтобы на Codeforces появились разборы?
Подсказки ведь для всех одинаковые и поэтому никого нечестно в лучшее положение не ставят. Понятно, что за использование подсказки должен быть штраф, как в виде заплаченной валюты, так и видимо штрафных минут (например в два раза больше чем за неправильный сабмит).
Вот рейтинг прибавлять действительно сомнительная идея... Тогда можно будет вообще не соревноваться, а только разборы писать - это безсмысленно.
Еще раз, подсказка может помочь только тому, кто в принципе сам может решить задачу, но по какой-то причине не сделал этого. Более того, тот кто может решить задачу без подсказки не страдает, т.к. за нее нехилый штраф. Понятно, что подсказки надо подбирать с умом, исходя из этого принципа.
В этом предложении логическая ошибка. Вы противопоставляете "думать самому" и "использовать чужие идеи,подсказки" как будто это взаимоисключающие вещи.
Вы на лекции ходите, учебники читаете? Зачем вы это делаете? Там же кругом чужие идеи...
Ну все-таки не совсем так. Правильнее сказать, это означает что А лучше чем Б выступает в соревнованиях по формуле CF. Формула может быть разная, до тех пор пока не выходит за рамки разумного. Маленькие подсказки не выводят в лидеров непонятно кого. Нужно все равно обладать знаниями и умениями, чтобы подсказками воспользоваться, т.е. это своего рода tie-breaker. Это никак не три очка за красивые футболки. Я вообще удивлен, что вынужден пояснять это уже не в первый раз.
На том же топкодере есть челендж фаза, которая тоже вносит некий диссонанс в картину с чистым решением задач. Вроде были случаи когда люди вообще ничего не сдавали и выигрывали комнаты, только за счет челенджей. Это ведь не вызывает аналогии с красивыми футболками... Просто другая формула.
Аргумент про то что кого-то это ставит в неравное положение тоже не проходит. Все в равном положении. Зарабатывай валюту и покупай подсказки. Ни у кого же не вызывает сомнения, что любой спортсмен должен сам заботиться о своем инвентаре. Возможность купить подсказку это такой же инвентарь.
Но понятно, что это только идея.... сейчас ее воплотить никак не получится, даже если захотеть (но видно что и желания нету). Сначала надо ввести валюту и придумать нормальные способы ее зарабатывания, понятно что это не только плата за разборы - этого слишком мало.
P.S.:
К вопросу о формуле. Когда я только пришел на CF я кажется где-то читал про какую-то новую формулу контестов. Так вот мне не понятно, те контесты что сейчас проводятся, это и есть новая формула, или это пока идут беты и формула будет другая?
ну не скажи))
я бы с радостью писал разборы (как и некоторые другие люди, в этом я уверен), но имеются некоторые проблемы:
1) задачи нужно, как минимум, решить, что, зачастую, является уже проблемой (особенно когда задачи D и E сдают по 12 человек на дивизион)
2) обязательное условие перевода на английский (разумеется, перевод должен быть, как минимум, корректный с точки зрения языка)
Людям, которые решили D и E, неинтересно писать решения на A,B так, чтобы его поняли те, кто не осилил эти задачи. А по-другмЛюди, которые решили A,B и рады, и хотят поделиться этим, скорее всего не осилили D,E.
Т.е. я предлагаю следующее:
- разбить каким-то образом на 10 частей - 5 задач и 5 переводов.
- у каждой части может быть свой исполнитель и свои комменты
- за каждую часть давать исполнителю +1 вклада
Тогда, мне кажется, мы получим разборы, если не полные, то хотя бы частичные, что все же лучше чем ничего.
как то так, наверно))
Если уж что-то и давать то либо мелкие бонусы на контесте либо напрямую рейтинг.
Из бонусов на контесте как вариант можно дать k прощенных штрафных попыток или просто -n минут к времени сдачи задачи.
На мой взгляд это разумнее чем подталкивать на решения задач подсказками..
При этом участник не обязан писать пост у себя в блоге (но это, конечно, и не запрещается); ещё думаю, многие участники не пишут разборы потому, что не решили все задачи контеста. А так просто можно будет послать разбор любой задачи.
Всё хорошее, что я здесь прочитал:
- трата бонусов на приоритет при проверке;
- трата бонусов на смену ника;
- возможно, трата бонусов на подсказки;
- разбор отдельной задачи, а не контеста, от любого участника;
- выбор админами лучшего разбора;
- бонусы за составление задач.
Насчет вознаграждения мое мнение скорее "нет", чем "да". Разве только действительно повышать "вклад", правда пока не ясно зачем.
Согласен что нужно автоматически генерировать шаблон для разбора очередного соревнования (как Pawa предлагает - по каждой задаче статистика по посылкам, ссылки на короткие решения, и т.д.), выкладывать этот шаблон на вики, и после соревнования давать всем ссылку. Тогда люди будут идти и редактировать вики, зная их труд сразу попадет в общедоступное место. Я бы лично написал несколько строчек про решение той или иной задачи на вики в существующий шаблон, а на просьбу адресованную к общественности вряд ли бы отреагировал. Плюсы вики - возможность совместной работы над разбором, возможность частичного разбора контеста (одной задачи)
2. Мне непонятно условие про обязательный перевод разбора. Ведь Julia предлагала свои услуги :) У нее не хватает времени? Тогда эту часть тоже можно выделить отдельно. Например, я бы с радостью перевел хороший разбор:)
3. По поводу идеи со "своей валютой". Действительно, уже есть "вклад", но его правильнее было бы назвать репутацией. То есть, если уж вводить "внутреннюю валюту", то хочется отделить, скажем, смехуечки и бугагашечки в комментах от, к примеру, оплаты за разбор задач. Но мне кажется, что лучше просто давать бонусы на определенный срок.
3а. Бонус на следующем соревновании. Здесь мне кажется приемлемым только вычитать штрафное время. Приоритет в проверке -- еще лучше, но это имеет смысл только до тех пор, пока эта недоработка с длинной очередью не будет пофикшена. Но вообще, я за чистоту контеста :) UPD: рандомная идея -- дать возможность добавлять свои тест-кейсы, которые будут прогоняться первыми; если чье-то решение упало -- минус к моему штрафному времени :)
3б. Бонусы в функционале сайта, например, на неделю. Пока в голову приходит только просмотр определенного количества тест-кейсов, или показ тест-кейсов, на которых падает отправленное решение. Я не знаю, какие планы по развитию сайта, вроде бы в будущем будет возможность делать свои контесты -- тут тоже можно подумать о бонусах. Ну, цвет ника и орден на аватаре -- это само собой :)
4. Коллективные разборы в вики на топкодере не оправдали себя. Качество такого разбора тоже существенно ниже.
Разбор должны впервую очередь написать авторы - если они конечно действительно сделать качественный контест, так я полагаю, ну а если последнего не произошло, то ребята должны сами братся за разбор по желанию, даже не за полный, и удобней сделать после окончания контеста, что бы по каждой задаче можно было нажать кнопочку -> разбор (или что-то похожее) и можно было просмотреть все разборы по этой задаче, и что бы любой человек мог оставить комментарий, или вопрос, а то когда много людей пишет отдельно разбор это выглядит как то не очень .. Если это не надо и не авторам и не ребятам, то что тут сказать, значит мы не хотим развиваться, и в следующий раз когда ты уже захочешь увидеть разбор (а сам его не показал другим), то многие попросту тоже ничего и не сделают в следующий раз.
Ну а всё таки было комфортнее, если бы авторы писали первоночальный разбор, а все остальные просто дописывали свои решения, либо отвечали "да я так решал", так как если твоё решение отличается от авторского, иногда даже очень хочется поделится им с другими, особенно если оно лучше или легче ...
Personal thoughts
There are some minor details I guess they could make members hesitate to contribute:- MikeMirzayanov: "The round tutorial is waiting for a volunteer. It is desirable that it will be one of the leaders of today's competition. The tutorial should be in Russian and in English."
- Intuitively, a good tutorial = a complete one = you should solve all problems and write all analysis for each of them = take much time
In long-term vision, I think it's hard and inconsistent to manage discrete blog contents:Let's clarify our goal for a tutorial
Personal opinions
Just few opinions aim at above questions:- In fact, Mike often writes a short summary blog after each contest. With a bit more details (like naming the winners), it could become an overview.
- After someone gets AC a problem, one more button [Contribute a hint] will appear with some sincere messages like "Congrats! you've passed all tests! We'd love to know your idea for this problem." In short, we're trying to collect all correct hints for each problem. And one can contribute hints for any problems he/she likes.
- In the problem page, one more column [Submitted hints] where people can find all hints for a particular problem.
- Community will evaluate each hint by voting +/- points. For any yellow / red members or problem-setters, once they click [I like it] <=> +2, instead of +1. The hint with highest plus points will be at the top place. It can reduce the workload of admins, and treat all contributors in a fair way :)
- Awards for contributions: IMHO, if one is willing to share his/her ideas, being awarded or not, simply doesn't matter at all. However, in order to encourage people, we can create a simple rank-list for contributors, like if his/her hints can get high positions = add contribution points and set he/she as a candidate for Friendliest coder of the month (a badge in profile?)
As yiuyuho said, it takes time to implement additional features. But once our goal is already clear, improvements can be made step by step.- Tutorial must be also in Russian. I don't speak Russian, so I'm not the best one to do it.
- I must write solutions to all problems. That means I must have done all of them. I don't know how to do (or at least prove) solution to last task, so again I'm not the right person here. That also means a lot of work since 5 completely described tasks is much.
- Finally I supposed that you will have rather too many volunteers than too less. Now I see the assumption was definitely wrong.
Generally I can declare myself to do some stuff and help to develop the site. I'm not the one with a bunch of time but I'd like to do something.
"...небольшие подсказки к задачам прямо во время турнира..."
Similarly, the requirement to write both Russian and English texts limits the potential contributors to those that are fluent in both languages, even though I imagine there are Russians that find writing in English too hard, but would be willing to translate a text into Russian, or vice versa. At any rate, it seems to me that having a Russian/English analysis only is better than having none at all, but the current rules prevent it.
So the summarize the above: I think you should consider reducing the amount of work to be done by a single person at a time, in order to reduce the threshold of contributing.
As an aside, I've edited a couple of problem analyses at TopCoder, and two things which sometimes put me off there, were the awkwardness of the wiki software (it's difficult and time consuming to properly format formulas and code in your analysis) and the fact that you don't know whether somebody else is writing a problem analysis too (possibly obsoleting your contribution). That last possibility is especially discouraging, because getting your contribution published is the only reward you get for your work.
Finally, I find the best way to solve a task with a group of people in any situation is to break it down into smaller subtasks that can be completed individually, and then assign each subtask to a person so that someone is specifically responsible for its completion. That may not be directly applicable to the current situation, but the closer you can get, the better.
я боюсь, что при таком "насилии" над топовыми участниками мы либо
а) получим разборы вида "ну тут и так всё понятно, а в этой задаче бинпоиск по ответу", либо
б) просто спугнём участников угрозой написания разбора; они поучаствуют раз и уйдут из CF, чтобы не делать то, что им не нужно, не хочется и не оплачивается
Может хоть какое-то применение званиям найдется :)