Соревнование по кодированию, руководство по языковой независимости? - PullRequest
3 голосов
/ 22 марта 2010

Возможно, я скоро буду участвовать в конкурсе по программированию, мне было интересно, если кто-нибудь сделает его и что там, где есть рекомендации / процесс. Я хотел бы сделать конкурс привлекательным для всех разработчиков, и я пытаюсь придумать, как это сделать.
Сценарий таков: происходит событие, и у нас (в соревновании по кодированию) будет комната, которую мы сможем использовать (либо для кодирования, либо для вопросов и т. д.), однако в идеале задача соревнования должна быть назначена, и они должны Умею ходить и заниматься другими делами, если они так склонны. Что мне интересно, так это то, какие задачи ставить перед собой, и, самое главное, какие критерии для «победы» в преподавании и изучении хороших стандартов кодирования занимают много времени, и я хотел бы подумать, что если вы программируете дольше, вы будете делай все правильно и быстро ... но на соревнованиях ты бы срезал углы ... Буду очень признателен за ваш вклад в это

Ответы [ 5 ]

3 голосов
/ 22 марта 2010

Соревнование, которое привлекает всех разработчиков? Это звучит ... сложно. Но если вы хотите составить конкуренцию в отношении решения проблем и алгоритмов, то я большой поклонник Sphere Online Judge . По сути, это хранилище головоломок для программирования, но вы также можете решить проблемы и создавать проблемы или конкурсы на сайте.

Он поддерживает огромное количество языков программирования, от «популярных» до более неясных. Программы обычно читают из стандартного входа и записывают в стандартный вывод. Стандартная программа судейства будет просто diff выводом программы с ожидаемым результатом, но возможны более сложные судьи. Вы также устанавливаете лимит времени для выполнения представлений, который обычно требует, чтобы программисты были умнее, чем грубая сила.

Победителем считается тот, кто решит большинство проблем. Связи разбиваются по времени правильных представлений, с некоторыми штрафами за неправильные представления.

2 голосов
/ 22 марта 2010

Рекомендации

Ограничение языков, которые могут быть представлены.Если вы этого не сделаете, вы можете получить проприетарные языки, для которых требуется специальный приобретенный компилятор или другие неудобства.

Правильность

Это просто.Предоставьте легкий для чтения модульный тест на всех языках, которые вы примете.Это позволит выполнять простое автоматическое тестирование представлений и будет определять интерфейс решения.

Испытания

Создать тему.Сделайте его целенаправленным, но не слишком конкретным, чтобы требовать определенных парадигм или языковых особенностей.Затем разработайте задачи, основанные на этой теме.

Присвойте очки каждому вызову.Дайте больше очков на более сложные проблемы. Обязательно внимательно изучите каждую задачу и попросите команду выполнить их , прежде чем давать очки, чтобы вы могли принять более точное решение.

Как отметил @miorel в своем ответе, ограничения по времени и ограничению памятизамечательныУстановите лимит времени для каждого теста на тест или, по крайней мере, следите за ним, и эти показатели будут способствовать получению баллов за решение проблемы.

1 голос
/ 22 марта 2010

Вам стоит взглянуть на соревнования ACM. Каждый год проводятся конкурсы студенческого программирования. Это языковая независимость. Архив находится здесь .

http://www.ntnu.edu.tw/acm/

0 голосов
/ 01 июля 2015

Чтобы начать совершенствоваться, вам нужен проект, над которым вы можете работать, проблема, которую вы хотите решить, то, чего вы хотите достичь. Без какого-либо контекста и места назначения, которое вы хотите закончить, вы не сможете выучить все необходимые методы и все связи языка.

Существует конкурс, который проводится 2 раза в год, он называется ludum dare.
Также не имеет значения, на каком языке вы пишете, вам просто нужно создать игру в течение 48 часов (состав, только один человек и все активы, созданные вами) и 72 часов (джем, команда, работающая вместе, может приобретать активы). После соревнований, когда каждый выложил свою игру, начинается голосование. Это займет около 20 дней, когда каждый может проголосовать за вашу игру или вы можете проголосовать за игры других людей. В нем принимают участие около 3000 человек.

Каждый раз, когда начинается соревнование, проводится голосование по 5 дней подряд. Каждый день вы голосуете за набор тем, которые могут быть темой, для которой вам нужно будет создать игру. Мой последний конкурс был на тему «Нетрадиционное оружие». После окончания голосования начинается соревнование, и вам нужно подумать об игре с (в моем случае) нетрадиционным оружием и начать писать игру, которая вам нравится.

Речь идет не о том, чтобы быть лучшим, вы должны начать смотреть на проекты других людей после окончания конкурса. Вы можете узнать много других людей о том, как они решают свою проблему, и я уверен, что вы будете улучшать себя каждый раз, когда будете участвовать в таком конкурсе.

0 голосов
/ 22 марта 2010

Будет сложно разработать соревнование по кодированию, подходящее для широкого спектра языков, поскольку языки обычно служат различным целям.Я бы предположил, что то, что вы ищете, не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...