September 28, 2020

RDM Competition FAQs and Rules

What are Rapid Development Matches?

RDMs are fast, timed software development competitions focused on ranking and scoring developers on code accuracy, speed, particular technologies, platforms, and development languages. The goal is clearly defined problems to be solved and requirements to be achieved.

Sometimes RDMs will also be focussed on a particular technology, platform, or language. The competition technology stack and other details will be announced at least a week before the competition, allowing members to sharpen their skills and prepare.

Each challenge will have three (3) problems: easy, medium, and hard. Points will be allotted to each problem depending on difficulty.

Scores for each problem will be awarded based on how early a member makes a submission on that particular problem as compared with other competitors.

When will the Rapid Development Matches be held?

Regular Topcoder sponsored Rapid Development Matches will be held twice a month. The day and time of the competition will vary from competition to competition. The schedule will be announced in the Topcoder Newsletter and Forums every month. Please keep in mind that all times on Topcoder’s website are communicated in either Eastern Standard Time (EST / UTC -5) or Eastern Daylight Time (EDT / UTC-4) depending on the time of the year.

The Topcoder website will specify the beginning time in your time zone. In addition, you may elect to receive a reminder email preceding each Rapid Development Match from your profile settings.

Topcoder is conscious of members’ time zones and will be launching Rapid Development Matches at various time zones to allow members located all around the world to compete in a comfortable time zone.

How does a Rapid Development Match affect my Development Rating at Topcoder?

Rapid Development Matches will be rated competitions and will affect your Development Track Ratings at Topcoder. The ratings calculation is explained here.

How are submissions scored in a Rapid Development Match?

Scores of a particular problem will be scored according to how fast you make submissions compared to other competitors on that particular problem

The point value of a submission is dependent upon the problem’s level of difficulty and the after how many competitors you make a submission to that particular problem.

The Topcoder server will calculate the numbers of submissions already done to the problem when the coder submits a solution.

For example, if you are the first one to make a submission to the 250 point easy problem you will get 250 as a tentative score on the leaderboard for that problem. With subsequent submissions, the points awarded for that particular problem will gradually decline.

The point value of a submission is dependent upon the problem’s level of difficulty and the time it took to code the solution. The Topcoder server will calculate the submissions already done on a problem when the coder submits to a problem. The sequence in which problem submissions actually gets to our server is used.

Total points awarded =
Screenshot 2020-09-28 12:11:02

Where
S is the number of submissions on that particular problem.
TotalTime is the total time allocated for coding all problems in hours, and
MaxPoints is the maximum points available for that problem.

For example:
A coder submits when thirty submissions have already been made. Let’s assume the the total submission time is seventy-two hours, and the maximum point value for the medium problem is 500, the coder’s awarded points for the submission will be:
500*(.3 + .772^2/((10(30*10+1))+72^2))
or
371.43 points (point calculations are rounded to two decimal places).

If during the final testing a particular submission fails to pass, the member’s score for that particular problem will become zero (0), scores of other competitors will be adjusted and the new scores will be available on the leaderboard.

How will the submissions be reviewed in the Rapid Development Match?

Each problem will have a set requirement to achieve and instructions around what is expected from you. Sometimes the technology and/or language and/or platform to use will also be specified. The requirements will be simple and straightforward to understand.

If your submission achieves the requirement you are able to get the score you received based on the scoring formula mentioned above and in detail here.

Minimal code quality is expected for the reviewer to review the submission and go through your code. If minimum code quality requirements are met you will be awarded points, or else zero (0) points will be awarded for the same.

  • Obvious and deliberate code obfuscation will be rejected.

  • Collaborating/Cheating in any way with anyone else (member or not) during a rated event is considered cheating.

  • An excessive amount of unused content should be avoided.

  • Code readability is expected with necessary comments, indentation and somewhat refactored code (as much as possible).

How does a Rapid Development Match differ from a regular Development Code challenge?

There are a number of differences - the biggest being that participating in a Code Challenge you are tackling a particular client requirement or participating in a fun learning challenge with several requirements to achieve and a review scorecard.

In Rapid Development Matches you will be working on three problems related to each other in terms of problem story but different in terms of the requirement you have to achieve.

Other differences being - in a Code challenge you will be scored based on scorecard judgment criteria and you get a review score based on the requirements you achieve. However, in Rapid Development Matches each problem will have a point value and points will be awarded based on how fast you make a submission as compared to other competitors and with expected minimal code quality.

Phases of a Rapid Development Match

Registration Phase

In order to participate in a match, you must register for that match from within on the challenge detail page. The registration will open seven days prior to the match start time. You will click “Register” and be asked to agree to the terms and rules of the match.

Once you select “I Agree” at the bottom, you will be registered for the match. It is a good idea to confirm your match registration by selecting the “Registrants Tab” and verifying that your handle is in the list.

During the start of the registration phase you will also be informed about the technology platform and any specific language that will be used in the problems to allow you ro refresh your skills on the same.

Submission Phase

The submission phase is the period during which each competitor attempts to create solutions to the three problem statements. In most cases, the coding phase will last seventy-two hours, which is the total time that you have to submit solutions to any or all of the problems.

You do not have to make a submission on the host challenge, but submit on each problem individually.

When the coding phase begins, each competitor will have the opportunity to view the problem statements. Each problem can be opened by selecting the problem challenge from the challenge listing page or the RDM page.

The higher the point value assigned, the more difficult the problem will be. You may open the problems in any order. As soon as a member submits, the submission point value for that problem will begin to decrease. The later you submit to the problem, the lower your score will be.

Final-Testing Phase

The final-testing phase is non-interactive. During the final testing, every submission will be reviewed by the competitors. The reviewers will check to make sure that each submission returns the correct result. If any submission fails, the submission will be marked incorrect and the points achieved for that submission will be removed from that coder’s total score, the submission will be removed from the order and the points of the remaining competitors will be recalculated based on the new “valid submissions order”.

Other Important Rules

Code Obfuscation

Topcoder has a policy against any intentional obfuscation of code submissions. Any code submission that contains obvious and deliberate code obfuscation will be rejected and any points received for that submission will not count towards your final score. For the purpose of this policy Topcoder defines obfuscation as “An obvious and deliberate attempt to disguise the true behavior or nature of the code.” In ALL cases, Topcoder will make the final decision as to whether or not a code submission has been intentionally obfuscated. In some cases, Topcoder may decide to “nullify” any unsuccessful challenges that have been applied against a code submission that is determined by Topcoder to be obfuscated. We encourage any Topcoder competitor to notify us in the event that you feel that a code submission during a rated event violates this policy.

Excessive / Extra Code Rule

Topcoder has a policy against including extra content in a submission that is not part of the solution to the problem. This includes, but is not limited to the following:

  • automatically generated code

  • testing code

  • unused personal library code

  • comments not directly related to the solution

The following things are excluded from the rule (they are not considered unused):

  • Library import statements (#include, imports, using, Imports)

  • Comments directly related to the solution (explaining algorithms, etc.)

In all cases, Topcoder will make the final decision as to whether or not a code submission has an excessive amount of unused content. If Topcoder determines that a submission violates this policy, the competitor will receive no score for the problem for that submission. No challenges will be overturned or nullified as a result of a violation in this policy. We encourage any Topcoder competitor to notify us in the event that you feel that a code submission during a rated event violates this policy.

Cheating at Topcoder

Cheating is taken seriously at Topcoder. There are a number of ways in which you could cheat
and have your account deactivated by Topcoder.
Collaborating in any way with anyone else (member or not) during a rated event is considered cheating. This includes discussing problem statements or solutions between the time that the coding phase begins and the time that the challenge phase ends.
Using multiple accounts to participate in a rated event is considered cheating.
Registering a new account for the purpose of resetting your rating is considered cheating.
Purposefully performing poorly during a rated event with the intention of artificially lowering your rating is considered very poor sportsmanship - and may result in account deactivation.

Obviously, Topcoder cannot identify all malicious behavior (we try hard, though), so we do rely on each member’s sportsmanship and integrity.

Using Pre-written Code and Starter Packs

Many Topcoder participants find it useful to create code libraries and starter packs for situations that commonly arise. We have collated some cool starter packs for you to get a head start in some of the problems. Doing such is perfectly legal (and you know how we feel about cheating).
Pasting large libraries of code into each submission with the intent of only using a small percentage (if any) is against the Excessive / Extra Code Rule.

Forum Threads and Important Messages

During a competition, Topcoder may notify participants of important information regarding the competition via the use of a forum thread. By default you will receive forum messages by email. These forum messages may contain important information about changes or additions to the problem statements or any changes in accessing the data being used in the match. Be sure to read messages that are sent during a match - chances are it’s important! Also, remember to check for new messages every time you log into the competition during a match - you may have missed a message that was sent while you were offline.

Leaderboard and Awards

Total scores will be summed and available on the main competition challenge.

Getting Help

During a competition, members may share their questions in the forums. You may use the Contact Managers feature present in the Online Review in the case that it may notify participants of important information regarding the competition.

Determining Score

The point value of a submission is dependent upon the problem’s level of difficulty and the after how many competitors you make a submission to that particular problem.

The Topcoder server will calculate the numbers of submissions already done to the problem when the coder submits a solution.

Total points awarded =
Screenshot 2020-09-28 12:11:02

Where
S is the number of submissions done on that particular problem.
TotalTime is the total time allocated for coding all problems in hours, and
MaxPoints is the maximum points available for that problem.

For example:
A coder submits when thirty submissions have already been submitted for that particular problem. Given the fact that the total submission time is seventy-two hours, and the maximum point value for the medium problem is 500, the coder’s awarded points for the submission will be:
500*(.3 + .772^2/(10(30*10+1)+72^2))
or
371.43 points (point calculations are rounded to two decimal places)

Rating Changes

At the conclusion of the final-testing phase, Topcoder will recalculate the Topcoder Development ratings of all match participations based on our rating formula. If you did not submit to any of the problems during the submission phase you will not have your rating adjusted.

Once the rating adjustments are completed, it will be announced in the forums
Your rating change is essentially a measure of how well you performed compared to others - given how well you were expected to perform based on your previous rating. Your rating increases when your performance exceeds expectations!

The rating updates are subject to change based on any appeals that Topcoder may receive the day following a match. If any scores are determined to be incorrect (within the appeals period), Topcoder will re-adjust the ratings based on the correct scores.

What if you do not agree with the results?

In the event that you do not agree with some aspect of the results of a match please use the appeals phase to appeal against the review. In case of issues with appeals response, please send an email to support@topcoder.com explaining in detail what it is that you feel is inaccurate. We will investigate each appeal and determine what, if anything, to do about it.

Problem Set Analysis, Discussions and Members Submissions

Following each match, an overview and analysis of each problem will be posted on Topcoder Thrive and submissions will be made available to all the competitors.

Group 9
Group 9