Claims
- 1. A method for providing a coding competition comprising:
(a) transmitting a coding problem to contestants over a communications network; (b) receiving computer code developed by at least one of the contestants in response to the transmitted coding problem over the communications network; (c) determining a response of the received computer code to test data submitted by a party other than the contestant; (d) evaluating the determined response of the computer code to the test data.
- 2. The method of claim 1, wherein step (b) further comprises receiving computer code from a plurality of contestants.
- 3. The method of claim 1, wherein the evaluating step (d) comprises:
determining a reference response of reference code to the test data; and comparing the determined response of the received computer code to the test data to the determined reference response of the reference code to the test data.
- 4. The method of claim 1 wherein the evaluating step (d) comprises evaluating at least one of the correctness of the determined response, the accuracy of the determined response, and the speed of the determined response.
- 5. The method of claim 1 further comprising the step of awarding points to the at least one of the contestants based on the evaluation of the determined response of the computer code to the test data.
- 6. The method of claim 5 further comprising assigning a rating to the at least one of the contestants based on the points awarded to the contestant.
- 7. The method of claim 1 further comprising, prior to the step of transmitting the computer coding problem, requiring contestants to take a qualifying test.
- 8. The method of claim 7 wherein the step of requiring completion of the qualifying test comprises a determined qualifying test score for the contestant greater than a predetermined value.
- 9. The method of claim 8 further comprising, prior to the transmitting step, incrementing a competition counter for each contestant who has obtained the determined qualifying test score greater than the predetermined value.
- 10. The method of claim 9 further comprising closing the coding competition to other competitors even if the other competitors have obtained the determined qualifying test score greater than the predetermined value when the competition counter for the coding competition reaches the predetermined value.
- 11. The method of claim 1 further comprising, prior to the step of transmitting the computer coding problem, the step of assigning the contestant to a division.
- 12. The method of claim 11 wherein the step of assigning the contestant to a division further comprises assigning the contestant to one of:
(i) a first division for contestants who have previously attained a rating greater than a first predetermined division rating; and (ii) a second division for contestants who have a rating substantially equal to zero or a rating below a second predetermined division rating.
- 13. The method of claim 12 wherein the first predetermined rating and the second predetermined rating are the same rating.
- 14. The method of claim 12 wherein the method further comprises assigning the contestant to one of the first division, the second division, and a third division, the third division for contestants having a rating greater than the second predetermined rating and less than the first predetermined rating.
- 15. The method of claim 12 wherein the step (a) of transmitting a computer coding problem further comprising transmitting less difficult coding problems to a contestant assigned to the second division relative to a contestant assigned to the first division.
- 16. The method of claim 1 wherein the step (c) of determining a response of the received computer code to test data submitted by a challenging party other than the contestant further comprises receiving the test data from one of the contestants.
- 17. The method of claim 1 wherein the step (c) of determining a response of the received computer code to test data submitted by a challenging party other than the contestant further comprises receiving the test data from a spectator.
- 18. The method of claim 1 wherein the step (c) of determining a response of the received computer code to test data submitted by a challenging party other than the contestant further comprises generating the test data.
- 19. The method of claim 1 wherein the step (c) of determining a response of the received computer code to test data submitted by a challenging party other than the contestant further comprises determining a response of the computer code to a predetermined test data.
- 20. The method of claim 1 wherein the communications network is the Internet.
- 21. The method of claim 1 wherein the communications network is an intranet.
- 22. The method of claim 1 wherein the communications network is a local area network.
- 23. The method of claim 1 wherein the communications network is a wide area network.
- 24. The method of claim 1 wherein computer code is source code, and wherein the method further comprises, prior to step (c), the step of compiling the source code thereby producing executable code; and wherein step (d) comprises determining the response of compiled executable code to the test data.
- 25. The method of claim 1 wherein step (b) further comprises receiving computer code written in the C++ programming language.
- 26. The method of claim 1 wherein step (b) further comprises receiving computer code written in the C# programming language.
- 27. The method of claim 1 wherein step (b) comprises receiving computer code that is a model that can be forward engineered into a machine-readable format for testing purposes, and wherein step (c) comprises testing the machine-readable format of the model.
- 28. The method of claim 1 wherein step (b) further comprises receiving computer code that is interpreted code.
- 29. The method of claim 28 wherein step (b) further comprises receiving computer code written in the Java programming language.
- 30. The method of claim 1 wherein step (b) further comprises receiving computer code comprising an engineering design, and wherein step (c) comprises simulating the engineering design.
- 31. The method of claim 30 wherein the engineering design comprises an electronic circuit design.
- 32. The method of claim 1 wherein the method steps (a)-(d) are repeated first in a practice session and second in a competition.
- 33. The method of claim 1 wherein:
step (a) comprises transmitting a coding problem to at least two teams of contestants; step (b) comprises receiving computer code developed by at least one of the teams of contestants; and step (c) comprises determining a response of the received computer code to test data received from a party not part of the team that developed the computer code.
- 34. The method of claim 1 wherein the transmitting step (a) takes place upon request by two or more available contestants.
- 35. The method of claim 1 wherein the transmitting step (a) takes place at a predetermined time.
- 36. A method for evaluating a skill level of a contestant comprising:
(a) electronically communicating a coding problem to contestants during a competition; (b) electronically receiving computer code in response to the coding problem from one of the contestants during the competition; (c) automatically evaluating the received computer code; (d) awarding points to the contestant based on the received computer code; and (e) determining a rating for the contestant based on the number of points awarded to the contestant.
- 37. The method of claim 36 wherein step (e) further comprises determining an average rating for the competition based on previous ratings of the contestants and a total number of contestants receiving the coding problem.
- 38. The method of claim 37 wherein step (e) further comprises determining a competition factor for the competition based on at least one of previous ratings of contestants, a total number of contestants receiving the coding problem, and volatility of the ratings of the contestants.
- 39. The method of claim 38 wherein step (e) further comprises determining a skill for a contestant based on a previous rating of the contestant.
- 40. The method of claim 39 wherein step (e) further comprises determining a deviation value for a contestant relative to other contestants based on the volatility of the ratings of the contestants.
- 41. The method of claim 40 wherein step (e) further comprises estimating a probability of awarding a contestant more points than other contestants in the competition.
- 42. The method of claim 41 wherein step (e) further comprises calculating at least one of an expected performance, an expected rank, and an actual performance of a contestant.
- 43. The method of claim 42 wherein step (e) further comprises calculating at least one of a new volatility and a new rating of a contestant.
- 44. The method of claim 43 further comprising determining a maximum rating increase for the contestant.
- 45. The method of claim 44 further comprising determining a weighting effect of the competition for the contestant.
- 46. The method of claim 36 wherein the step of determining of a rating for the contestant further comprises adjusting the rating in smaller increments as the frequency that the contestant has been rated increases.
- 47. A method for providing contestant information to a potential employer, comprising: receiving contestant information from contestants for entry into on-line coding competitions;
(a) providing an on-line coding competition between contestants; (b) assigning a rating to each contestant based on performance in the on-line coding competition; and (c) providing at least some contestant information and the assigned ratings of at least one contestant to a potential employer of the contestant.
- 48. The method of claim 47 wherein step (c) further comprises awarding points to the contestant based on performance in the on-line competition.
- 49. The method of claim 47 wherein the contestant information further comprises at least one of home address, phone number, work address, e-mail address, professional experience, work history, and certain demographic information of the contestant.
- 50. A method for awarding a prize to a contestant comprising:
(a) providing an on-line coding competition among contestants; (b) awarding a point value to each contestant based on performance in the on-line coding competition; and (c) awarding at least one prize to at least one contestant in response to the awarded point value.
- 51. The method of claim 50 wherein the method comprises awarding prizes to contestants who have been awarded a point value above a predetermined prize point value, wherein the prize awarded depends on the points awarded with respect to the predetermined prize point value.
- 52. The method of claim 50 wherein the prize awarded is at least one of a monetary award, a tangible good, an interview with a prospective employer, and an employment offer.
- 53. A method for advertising in a coding competition comprising:
(a) receiving contestant information from contestants for entry into on-line coding competitions; (b) providing at least one on-line coding competition between contestants; (c) providing each contestant with at least one advertisement for viewing during the at least one competition; (d) tracking the viewing time of the at least one advertisement by each contestant; and (e) providing at least some contestant information and the viewing time of the at least one advertisement to an advertiser.
- 54. The method of claim 53 further comprising the step of assigning a rating to each contestant based on performance in the on-line coding competition.
- 55. The method of claim 54 wherein the contestant information providing step (e) further comprises providing the contestant rating.
- 56. The method of claim 53 wherein the contestant information is provided in the aggregate in the contestant information providing step (e).
- 57. The method of claim 53 wherein the step of providing each contestant with at least one advertisement for viewing during the at least one competition comprises selecting an advertisement for viewing by at least one contestant in response to contestant information.
- 58. An apparatus for providing a coding competition, the apparatus comprising:
(a) a web server for communicating with a web browser used by a contestant to provide information about a coding competition; (b) a client interface server communicating with the client software used by the contestant, the client interface server enabling transmission of a coding problem to the client software and reception of at least one of a client request and computer code in response to the coding problem; (c) an application server in communication with the web server and the client interface server to interpret at least one of the client request, the competition request, and the computer code; and (d) a contest server in communication with the application server to at least one of compile the computer code, execute the computer code, test the computer code, and compute a rating for the contestant.
- 59. The apparatus of claim 58 further comprising a database server in communication with the application server to retrieve data in response to at least one of the client request, the competition request, and the computer code.
- 60. An apparatus for determining a coding skill level of a coding contestant, the apparatus comprising:
(a) a client-server interface for providing a competition communication to a contestant for entry into a coding competition with a plurality of contestants; (b) a receiver for receiving a request from the contestant; and (c) a contest server layer in communication with the receiver to determine a coding skill level of the contestant by at least one of validating the request and determining a rating of the contestant with respect to the plurality of contestants.
- 61. The apparatus of claim 60 further comprising an application server layer in communication with the receiver to interpret the response.
- 62. The apparatus of claim 61 wherein the application server layer further comprises a message queue processor in communication with the receiver to queue the request for operation by the contest server layer.
- 63. The apparatus of claim 62 wherein the message queue processor is in communication with the contest server layer to transmit the request to the contest server layer.
- 64. The apparatus of claim 60 wherein the receiver further comprises a web server layer.
- 65. The apparatus of claim 60 wherein the receiver further comprises a client interface server layer.
- 66. The apparatus of claim 65 wherein the client interface server layer further comprises an interface connection providing an interface to the client-server interface.
- 67. The apparatus of claim 60 wherein the client-server interface further comprises at least one of a web browser and client software.
- 68. The apparatus of claim 60 wherein the client interface server layer further comprises an interface server manager in communication with the interface connection to manage at least one of the allocation and operation of communications with the interface connection.
- 69. The apparatus of claim 60 wherein the client interface server layer further comprises an interface server process in communication with the interface connection to provide communications with the application server layer.
- 70. The apparatus of claim 60 wherein the competition communication further comprises a coding problem.
- 71. The apparatus of claim 60 wherein the request further comprises a response to the coding problem.
- 72. The apparatus of claim 60 wherein the application server layer further comprises a servlet engine in communication with the web server layer.
- 73. The apparatus of claim 72 further comprising a database server layer in communication with the application server layer.
- 74. The apparatus of claim 72 wherein the application server layer further comprises a data access layer to access data in response to at least one of the request and the interpretation of the request.
- 75. The apparatus of claim 74 wherein the database server layer is in communication with the data access layer.
- 76. The apparatus of claim 60 wherein the contest server layer further comprises at least one of a rating engine, a code compilation engine, and a code testing engine.
- 77. The apparatus of claim 76 wherein the contest server layer is in communication with the message queue processor.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. provisional patent application serial No. 60/260,610, filed Jan. 9, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60260610 |
Jan 2001 |
US |