CN1503951A - 用于编码竞赛的系统和方法 - Google Patents

用于编码竞赛的系统和方法 Download PDF

Info

Publication number
CN1503951A
CN1503951A CNA028062396A CN02806239A CN1503951A CN 1503951 A CN1503951 A CN 1503951A CN A028062396 A CNA028062396 A CN A028062396A CN 02806239 A CN02806239 A CN 02806239A CN 1503951 A CN1503951 A CN 1503951A
Authority
CN
China
Prior art keywords
player
server
computer code
grade
contest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA028062396A
Other languages
English (en)
Inventor
M・利顿
M·利顿
胡赫斯
J·M·胡赫斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Topcoder LLC
Original Assignee
Topcoder LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Topcoder LLC filed Critical Topcoder LLC
Publication of CN1503951A publication Critical patent/CN1503951A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B7/00Electrically-operated teaching apparatus or devices working with questions and answers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06398Performance of employee with respect to a job function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/085Payment architectures involving remote charge determination or related payment systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0209Incentive being awarded or redeemed in connection with the playing of a video game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • G07F17/3276Games involving multiple players wherein the players compete, e.g. tournament

Abstract

本发明涉及到一种用于提供编码竞赛的方法和装置。在一个实施例中,一种用于提供编码竞赛的方法包括向竞赛者传递编码问题、接收由竞赛者所建立的计算机代码、确定计算机代码对测试数据的响应、以及评估计算机代码对测试数据的响应。在另一个实施例中,一种评估竞赛者技能水平的方法包括电子地将编码问题通信到竞赛者、电子地接收来自竞赛者之一的响应于编码问题的软件程序、评估所接收的软件程序、基于所接收的软件程序向竞赛者授予分数、以及基于授予竞赛者的分数值确定竞赛者的竞赛等级。

Description

用于编码竞赛的系统和方法
相关申请交叉引用
这一申请提出对在2001年1月9日提交的美国临时专利申请序号60/260,610的优先权要求。
技术领域
这个发明涉及到用于竞赛的基于计算机的方法和系统,且更具体而言涉及到提供编码竞赛的方法和系统。
背景信息
在美国和其它别的地方,计算机在工作场所和个人努力中已经成为人们日常生活的一部分。这是因为通用计算机可以被编程来运行各种软件程序,每个软件程序提供不同的处理和连网功能。计算机程序设计员开发计算机代码。一些公司雇佣大量计算机程序设计员来代表公司开发代码。
像许多其它活动一样,进行编码需要多种技能。例如,一些编码员具有极高的技能,且例如,非常精确且高效。专业鉴定提供由个人所拥有的有关基本技能的信息,但总体上并不存在方便地区分高技能编码员与普通编码员的客观方法。客观测量的这一缺乏意味着高技能的编码员可能并没有得到其真实的价值的补偿。此外,在美国和其它别的地方,被认为“专业人员”的劳动者,如律师、会计师、医生及管理人员比一般人士得到更高的工资。而典型地具有良好教育、显著的责任心及相对独特能力的高技能程序设计员却被视为生产和行政管理人员,而未被视为专业人员。在其它学科(例如硬件设计、及其它工程学科)中对于计算机编码员也是如此。
在雇佣过程中,公司典型地让编码员经受可甚至包括对候选者编码技能的一些实际测试的面试过程。但是对于公司而言即便进行了一些技能测试,但很难最后识别出具有最佳技能、最准确且最高效等的那些程序设计员。这使得想要雇佣杰出编码员的公司难以识别且雇佣他们,并且对于杰出编码员而言更难以其可应得的补偿水平被雇佣。
发明概述
因此存在对这样的机制的需求,所述机制为技能编码员建立市场性并提高其收入,以反映其工作产品所产生的价值。总体上,在本发明的一个方面中,用于提供编码竞赛的系统和方法致力于这些及其它目的。通过提供基于计算机的编码竞赛,成功的编码竞赛参加者可以从其它编码员中被区分出来,这既有助于编码员又有助于其雇主。可识别出的较好编码员可以得到更高的工资,且雇主具有客观手段来比较候选者且找到好的编码员。在一些实施例中,因为竞赛提供一种或多种娱乐、奖励及未来雇佣机会,所以好的编码员具有参加的动机。
在一些实施例中,希望获得对有技能编码员的接触机会的实体赞助编码竞赛。在一些实施例中,采用等级系统来提供一种可以用来评估程序设计员的被证实的技能、知识及能力的量度。
在各种实施例中,从利用通过网络进行通信的计算机而提供编码竞赛的意义上讲,编码竞赛被“在线”加以提供。编码竞赛的参加者,也被称为竞赛者,使用与竞赛服务器进行通信的客户计算机。如果(例如)网络为全球网络如因特网,则所述竞赛者可以位于世界上任何地方,或者如果(例如)网络为局域网,则编码竞赛的参加者可位于附近,甚至可位于同一房间内。
在一些实施例中,作为编码竞赛的一部分,服务器计算机为一个或多个竞赛者提供一个要求每个竞赛者开发计算机代码的计算机编码问题(例如测试问题)。所述计算机代码可例如是一个完整的计算机应用程序或计算机应用程序的大部分或一小部分(例如子程序或子系统、一个或多个对象等)。所述代码可以用专门的编程语言(例如C++、Java、C#、Fortran、perl等)来写,或可按照编程语言或编码格式的选择之一来进行编码。
除了进行编码以外,编码问题可还要求对问题的设计和或分析。计算机代码还可用于除计算机应用程序以外的其它事情;例如,它可是计算机程序的设计,或者它可是电子电路的设计或实施,或者用于另一工程设计和/或实施。计算机代码可是这样的模型,其将被前向工程为机器可读格式用于检测目的。由竞赛者开发的代码总体上被称为计算机代码,而无论它是应用程序的全部或一部分或是其它别的。
在一些实施例中,部分编码竞赛在其中两个或多个竞赛者进行竞赛的虚拟“房间”中进行。在虚拟房间中的每个竞赛者接收到一个编码问题或多个编码问题,所述问题可具有变化的难度。竞赛者响应于一个或多个所呈现的编码问题写下计算机代码。当竞赛者的代码已经准备好时,相应的客户计算机将竞赛者的计算机代码传递到服务器进行评估。竞赛者完成计算机代码所占用的时间可被加以记录。
在一些实施例中,服务器评估所述计算机代码,且为竞赛者的提交内容授予若干分数。在一些实施例中,竞赛包括多轮次,其中服务器评估每轮次中竞赛者的计算机代码。服务器还可确定竞赛者的技能水平等级。竞赛者技能水平的确定可例如导致为竞赛者授予奖励、为竞赛者引见就业机会、吸引对竞赛的赞助并为竞赛的赞助商引见雇佣机会。
在一些实施例中,竞赛者提交在竞赛的第一阶段所要求的响应于计算机编码问题的计算机代码,并且竞赛者的响应时间被加以记录。在竞赛的第一阶段期间由竞赛者所写的计算机代码在竞赛的下一阶段被加以验证。通过将预先设定的测试数据作为输入,所提交的代码可被加以验证。此外,每个竞赛者可有机会回顾由其它竞赛者所提交的计算机代码,并且提交测试数据,此测试数据作为对其它竞赛者计算机代码的输入而提供用于对那个代码加以验证。通过这个方法,竞赛者可以对其它竞赛者的工作提出挑战。
在一个实施例中,类似于吸引许多观众的体育竞赛,一人或多个竞赛在论坛环境下在程序设计员当中展开。竞赛者彼此相邻而座,且观众可观察到竞赛,且观看活动当中的程序设计员。还有显示器及其它辅助设施来加强观众对竞赛的颀赏。在其中竞赛是通过全球计算机网络如因特网而进行的另一实施例中,竞赛是在“虚拟的论坛”环境中进行的,其中观众可以通过计算机网络观察到在虚拟房间内的活动。在一些实施例中,观众(即可是在实地或通过网络)不仅可以观察到编码竞赛,而且可以通过提交将作为竞赛者提交内容的输入的测试数据来参加。
在本发明的一个方面,一种用于提供编码竞赛的方法包括下述步骤:通过通信网络向竞赛者传递编码问题以及接收由一个或多个竞赛者响应于通过通信网络所传递的编码问题而建立的计算机代码。所述方法还包括这样的步骤,即确定所接收的计算机代码对由非竞赛者一方所提交的测试数据的响应,并且评估所确定的响应,其中所述方可例如是系统管理员或服务器、裁判、另一竞赛者、竞赛观众等等。
在一个实施例中,所述方法包括这样的步骤,即提供作为对参考代码的输入的测试数据,并且将参考代码的输出与所接收的计算机代码的输出相比较。在一个实施例中,所接收的计算机代码可基于这样的因数,如所确定的响应的正确性、所确定的响应的精确性及所确定的响应的速度被加以评估。基于对所确定的计算机代码对测试数据的响应的评估,可授予竞赛者分数。还可基于所授予的分数以及基于从前的竞赛表现给竞赛者赋予一等级。在一个实施例中,基于竞赛者的等级,竞赛者被分配到一个分区。例如竞赛者可被分配到下述分区之一,其中第一分区是针对从前已经获得了第一等级或更高等级的竞赛者,且第二分区是针对具有等级基本上等于零或低于预定设定分区等级的竞赛者。取决于竞赛者的数量及技能水平的扩展范围还可存在第三、第四分区等。分区的使用使竞赛者保持对竞赛的兴趣。
在另一方面,用于评估竞赛者技能水平的方法包括下述步骤,即在竞赛期间电子性地将编码问题通信到竞赛者,以及在竞赛期间电子性地接收来自竞赛者之一的响应于编码问题的计算机代码。所述方法还包括这样的步骤,即自动地评估所接收的计算机代码且基于所接收的计算机代码给竞赛者授予分数。所述方法额外地还包括:基于授予竞赛者的分数值来确定竞赛者的竞赛等级。
在一些实施例中,所述方法包括:基于从前的竞赛等级和接收到编码问题的竞赛者总数量来确定竞赛的平均等级。所述方法还可以包括:基于竞赛者从前的等级、接收到编码问题的竞赛者总数量及竞赛者等级的变动性(volatility)来确定竞赛的竞赛因数。在另一实施例中,所述方法包括:确定竞赛者的最大等级增加。在另外一个实施例中,所述方法包括:估算给一个竞赛者授予比竞赛中其它竞赛者高的分数的概率。对竞赛者等级的确定还可包括:当竞赛者已经被评级的频率增加时,以更小的增量调节等级。
在本发明的另外一个方面中,一种用于向潜在雇主提供竞赛者信息的方法包括下述步骤:接收来自竞赛者的竞赛者信息,以输入到在线编码竞赛中,以及提供竞赛者之间的在线编码竞赛。所述方法还包括:基于在在线编码竞赛中的表现向每个竞赛者赋予一等级,以及向竞赛者的潜在雇主提供一些或全部竞赛者信息及一个或多个竞赛者被赋予的等级。在一个实施例中,所述方法还包括:基于在在线竞赛中的表现,为竞赛者授予分数。竞赛者信息可包括这样的信息如竞赛者的家庭地址、电话号码、工作地址、电子邮件地址、专业经验、工作经历及某些人口统计信息。在另一实施例中,基于给竞赛者授予的分数赋予给竞赛者一等级。
在另一方面,一种用于向竞赛者授予奖励的方法包括:提供竞赛者之间的在线编码竞赛,以及基于在竞赛中的表现给每个竞赛者授予一个分数值。所述方法还包括:向已经被授予分数值高于预先设定奖励分数值的竞赛者子集合授予奖励。所授予的奖励取决于相对于预先设定分数值的被授予的分数。奖励可以包括,但可并不局限于金钱奖励、与有前景雇主的面试、有形物品、工作开价或一些组合。
在另一方面,一种用于在编码竞赛中做广告的方法包括:接收来自竞赛者的竞赛者信息,以输入到在线编码竞赛中。所述方法还包括下述步骤:即提供一个或多个竞赛者之间的在线编码竞赛,并且在竞赛期间为每个竞赛者提供一个或多个用于观看的广告。所述方法额外地还包括跟踪每个竞赛者观看每个广告的时间,并且向广告商提供竞赛者信息及所跟踪的广告观看时间。
在一些实施例中,竞赛者信息被以总计形式提供给广告商。例如,服务器提供出这样的信息,即具有等级高出预定值的20个编码员总计观看了三十分钟广告。在另外的实施例中,服务器基于竞赛者信息向竞赛者提供广告。例如,服务器可向具有Java编程经验的竞赛者提供一个广告,而向具有C++编程经验的竞赛者提供另一广告。
在一个方面,一种用于提供编码竞赛的装置包括:与网浏览器通信的网服务器。网浏览器被竞赛者所使用以接收竞赛请求并且使竞赛者能够利用客户软件进入到编码竞赛中。所述装置还包括与客户软件通信的客户接口服务器。客户接口服务器使编码问题能够传输到客户软件且能够接收响应于编码问题的计算机代码。所述装置还额外地包括与网服务器和客户接口服务器通信的应用服务器。应用服务器解释客户请求、竞赛请求、以及/或计算机代码。所述装置还包括与应用服务器通信的竞赛服务器。竞赛服务器对由竞赛者提交的计算机代码进行编译、执行计算机代码、测试计算机代码、以及/或计算竞赛者的等级。
附图的简要说明
在附图中,从不同的角度上相似的参考符号总体上指相同的部件。同样,附图没有必要依照比例,而是将重点总体上放在对本发明原理的示例上。
图1是根据本发明的编码竞赛系统的一个实施例的方框图。
图2是在图1编码竞赛系统中的服务器的一个实施例的方框图。
图3是图2中服务器的一个实施例的更详细方框图。
图4是用于编码竞赛的服务器一个实施例的操作流程图。
图5是用于编码竞赛的服务器的一个实施例的更详细操作流程图。
图6是由服务器所完成的计算机代码对测试数据的响应评估的一个
实施例的方框图。
图7是在图4的编码竞赛之前用于资格检定测试的服务器的一个实施例的操作流程图。
图8是用于完成图7中资格检定测试的服务器的一个实施例的操作流程图。
图9是用于在编码竞赛中赋予等级的服务器的一个实施例的操作流程图。
图10是用于吸引编码竞赛赞助商的服务器的一个实施例的操作流程图。
图11是用于在编码竞赛中授予奖励的服务器的一个实施例的操作流程图。
图12是参加者通过竞赛淘汰轮次至全国轮次编码竞赛的进程的一个
实施例的图表。
图13是在编码竞赛期间所显示的网页的一个实施例的实例性屏幕照片。
图14是在编码竞赛期间所显示的编码问题选择屏幕的一个实施例的实例性屏幕照片。
图15是在编码竞赛期间所显示的编码窗的一个实施例的实例性屏幕照片。
图16是在编码竞赛期间所显示的挑战窗的一个实施例的实例性屏幕照片。
详细说明
参考图1,在一个实施例中,编码竞赛系统100包括至少一个服务器104、以及至少一个客户108、108′、108″(总体上为108)。如所示,编码竞赛系统100包括三个客户108、108′、108″,但是这仅是作为示范性的目的,并且其意味着可以存在任何数量的客户。优选地客户108作为运行在个人计算机(例如具有INTEL处理器或APPLE MACINTOSH的PC)上的软件而被实施,所述个人计算机能够运行这样的操作系统,如来自Redmond,Washington的Microsoft Corporation的MICROSOFTWINDOWS系列操作系统、来自Cupertino,California的Apple Computer的MACINTOSH操作系统、及各种种类的Unix,如来自SUN MICROSYSTEMS的SUN SOLARIS以及来自Durham,North Carolina的RED HAT,INC的GNU/Linux(及其它)。客户108还可以在这样的硬件如智能或迟钝终端设备、网络计算机、无线设备、信息器件、工作站、小型计算机、大型计算机或其它计算设备上被实施,所述硬件作为通用目的的计算机或仅用作为竞赛系统100中的客户108而服务的专用目的硬件设备而工作。
总体上,客户108由竞赛者来操作且由竞赛者来使用,以参加编码竞赛。在各种实施例中,客户计算机108包括网浏览器116、客户软件120或两者。网浏览器116允许客户108请求一具有网页请求的网页(例如来自服务器104)。网页的实例是一包括计算机可执行的或可解释的信息、图表、声音、文本以及/或视频的数据文件,其可以被显示、执行、播放、处理、流涌(stream)或存储且其可以包含到其它网页的链接、或指示器。在一个实施例中,客户108的用户人工地请求来自服务器104的网页。作为另一选择地,客户108自动地向网浏览器116做出请求。市场上可购买到的网浏览器软件116的实例是由Redmond,Washington的Microsoft Corporation所提供的INTERNET EXPLORER,以及由MountainView,California的Netscape Communications Corporation所提供的NETSCAPE NAVIGATOR。
在一些实施例中,客户108还包括客户软件120。客户软件120为客户108提供允许竞赛者参加编码竞赛的功能性。客户软件120可以各种形式被实施,例如,它可以被下载到客户108且与网浏览器116联合运行的Java applet形式,或者客户软件120可采用以多平台语言如Java或以本机处理器可执行码来实施的独立应用形式。在一个实施例中,如果客户软件120在客户108上执行,则其通过通信网络112打开到服务器104的网络连接,并且经由那个连接进行到服务器104的通信。客户软件120和网浏览器116可是单客户-服务器接口124的一部分;例如,客户软件可作为到网浏览器116的“插件程序”而被实施。
通信网络112将客户108与服务器104相连接。通信是经由任何媒体如标准电话线、LAN或WAN链接(例如T1、T3、56kb、X.25)、宽带连接(ISDN、Frame Relay、ATM)、无线链接等进行的。优选地,网络112可以传送TCP/IP协议通信以及由网浏览器116所要求的HPPT/HTTPS请求,并且客户软件120和服务器104之间的连接可以通过这样的TCP/IP网络来进行通信。然而,网络的类型并不是局限性的,可采用任何适合的网络。可用作通信网络112的典型网络实例包括无线或有线基于以太网的内联网(intranet)、局域或宽域网(LAN或WAN)、以及/或被公知为因特网(Internet)的全球通信网络,其可容纳许多不同的通信媒体和协议。
计算机编码竞赛提供者操纵与客户108相互作用的竞赛服务器104。优选地,服务器104在一个或多个服务器类计算机上被实施,所述计算机具有足够的存储器、数据存储及处理能力并且其运行服务器类的操作系统(例如,SUN Solaris、GNU/Linux、MICROSOFT WINDOWS NT)。取决于设备能力和竞赛者数量以及竞赛者库和竞赛的规模,也可以使用非上述的其它类型系统硬件和软件。例如,服务器104可是服务器场(serverfarm)或服务器网络的一部分,所述服务器场或服务器网络是一个或多个服务器的逻辑组。作为另一个实例,可存在彼此之间可联系或连接的多个服务器,或多个服务器可以单独地操作,但具有共享数据。正如在大规模系统中典型的那样,应用软件可以在部件中被实施,其中不同的部件运行在不同的服务器计算机上、运行在同一服务器上或一些组合上。
参考图2,在一个实施例中,服务器104包括作为与客户108进行通信的接口的客户通信模块206。所述客户通信模块206可以作为运行在一个或多个服务器上的软件而被实施,或者可作为独立的服务器而被实施。在一些实施例中,客户通信模块206可以提供到客户软件102及到客户网浏览器116两者的接口,以便于例如,网浏览器116可以被竞赛者使用以访问表现信息,或者观察其它竞赛者的进程等,而客户软件120可以用于参加编码竞赛。到每个客户软件120及客户网浏览器116的接口可以单独地或以组合形式被加以实施。在其它实施例中,客户通信模块206还可以利用其它协议或机理来通信。
客户通信模块206与应用服务器212通信,所述应用服务器212提供系统操作的主编程逻辑。在一个实施例中,应用服务器212作为一个或多个运行在服务器类计算机上的应用程序而被实施,所述服务器类计算机可是与客户通信模块206相同或不同的计算机。应用服务器212经由客户通信模块206接收来自竞赛者的询问。应用服务器212还提供编码竞赛。例如,应用服务器212跟踪在编码竞赛虚拟房间内的活动,并且提供竞赛的编码问题。作为另一实例,在一些实施例中应用服务器212可提供资格检定测试,所述资格检定测试是对竞赛者参加编码竞赛的初步要求。
服务器104还包括竞赛服务器216。竞赛服务器216通过计算处理与编码竞赛相联系的密集任务,例如编译且测试由竞赛者提交的响应于编码问题的代码。在一个实施例中,竞赛服务器216还给竞赛者赋予等级。总体上,应用服务器212和竞赛服务器216之间的接口被这样加以设计,以使从计算上密集的任务被队列等待在竞赛服务器216上进行处理,由此甚至当应用服务器212装载有一个或多个活动的编码竞赛时,允许其做出响应。
服务器104还包括数据库服务器220,所述数据库服务器220在一个或多个数据库中存储有关编码竞赛的数据。例如,数据库服务器220存储竞赛信息、有关竞赛者的统计、竞赛者信息、服务器可用性、以及网通信量信息。数据库服务器202向应用服务器212提供数据。数据库服务器220的一个实例是由Armonk,NY.的NTERNATIONAL BUSINESSMACHINES所提供的INFORMIX DYNAMIC SERVER。
参考图3,在一个实施例中,客户通信模块206(图2)包括接口服务器204,所述接口服务器204提供用于与客户软件120通信用的接口。在一个实施例中,客户接口服务器204是在服务器计算机104上执行的软件模块。在另一个实施例中,客户接口服务器是与服务器104,如应用服务器212的其它部件通信的独立服务器计算机。在一个实施例中,客户接口服务器204通过采用用于在客户软件120和客户接口服务器204之间通信的信息传递协议与客户软件120通信,所述信息传递协议经过Transmission Control Protocol/Internet Protocol(TCP/IP)运行。客户接口服务器204被设计成维持与大量客户108的客户软件120的通信。
客户接口服务器204包括一个提供到客户软件120的实际接口的接口连接304。所述接口连接304接收来自客户软件120的消息并且将它们提供到接口管理器308和接口服务器处理312。同样,接口管理器接收来自接口服务器管理器308和接口服务器处理312的消息并且将那些消息通信到客户软件120。
接口服务器管理器308管理接口连接304和接口服务器处理312到每个客户软件120的分配。每次当客户108(经由客户软件120)连接到服务器104(经由客户接口服务器204)时,被指定单独的处理,它在客户连接的工作时间过程中存在。接口服务器管理器308处理这个指定的处理。接口服务器管理器308还存储有关每个客户连接的数量和性质的任何信息。
接口服务器处理312是从客户接口服务器204到应用服务器212的接口。接口服务器处理312在比接口连接304较高的水平上与客户软件120进行通信。接口服务器处理312还与接口服务器管理器308进行通信。例如,接口服务器管理器308可命令接口服务器处理312从应用服务器212荻取特定的应用,用于在编码竞赛中使用。
因此,当竞赛者想要向服务器104传递一个请求时,客户软件120通过通信网络112传递此请求。客户软件120与接口连接304进行通信,以使能够与接口服务器处理312进行通信。接口服务器处理312接收来自接口连接304的请求,并且确定为了处理此请求需要发生什么。接口连接304还按需要将此请求通信到接口服务器管理器308,来适当地管理且分配客户接口服务器204的资源以处理此请求。
然后接口服务器处理312将此请求传递到应用服务器212。应用服务器212包括处理此请求的事务对象(business object)316。每个事务对象316管理一个或多个客户108。事务对象316经由接口服务器处理312与客户软件102进行通信。事务对象316处理来自客户软件120的请求。实施事务对象316的实例包括,例如Component Object Model(COM)对象和Enterprise Java Bean(EJB)对象。
如果一请求要求数据访问,则事务对象316经由数据访问层320向数据库服务器220做出请求。如果此请求要求由竞赛服务器216来处理,则此请求被传递到消息队列处理器324,所述消息队列处理器324将请求进行队列用于由竞赛服务器216进行操作,并且经由接口服务器处理312将结果发送回到客户软件102。
在一些实施例中,客户108(图1)还可以经由网浏览器与服务器104通信。在这样的实施例中,通信模块206(图2)还包括网服务器208。网服务器208将网页传送到客户108且提供一个用于在网浏览器116与服务器104之间通信的接口。优选地,网服务器208是一个运行在一个或多个服务器类计算机上的企业类网服务器,如来自APACHE FOUNDATION的APACHE、来自MICROSOFT CORPORATION的INTERNET INFORMATIONSERVER、或来自NETSCAPE COMMUNICATIONS CORPORATION的NETSCAPEENTERPRISE SERVER,所述服务器类计算机可是与客户接口服务器204相同或不同的计算机。网服务器208可作为能够通过通信网络112向客户网浏览器116提供网内容服务、并且与服务器104的其它部分进行通信的任何通信设备如个人计算机、网器具等而被实施。网服务器208和客户接口服务器204中的每个与应用服务器212进行通信。网服务器208为网浏览器116提供接口,以与服务器104进行通信。网服务器208包括一个从网浏览器116接收HTTP请求且向浏览器116传递HTTP应答的HTTP收听器328。HTTP收听器328经由servlet引擎332与应用服务器212进行通信。
应用服务器212经由servlet引擎332与网浏览器116进行通信。响应于网页请求servlet引擎332使用Java servlet来产生网页。XSL处理器336解释由servlet engine 332所使用以产生HTML文件的XSL式样文件。由servlet engine 332向事务对象316做出数据请求,若必要的话,则其经由数据访问层320向数据库服务器220做出数据请求。servlet引擎332将XML对象与XSL式样的文件加以组合以产生HTML文件,然后所述HTML文件经由网服务器208被通信到客户的浏览器116。
数据库服务器220包括一个或多个数据库340。数据访问层320与数据库340进行通信以检索数据。数据库340可通过使用商业上可获得的数据库软件,利用标准接口被实施。在数据库340中的各种类型信息可以被存储在相同的数据库或不同的数据库中。
在一个实施例中,竞赛服务器216包括代码编译引擎344。此代码编译引擎344对竞赛者的计算机代码进行编译。在此,术语编译按其最广义被加以使用,且包括不只仅将源代码翻译成目标代码。例如,如果竞赛系统被用于硬件设计,则编译器可以将包括工具以将代码翻译成适合于仿真的电路设计格式。代码编译引擎344可以包括任何编译器。然而,代码编译引擎344的选择影响到编码竞赛,这样编译器应该支持竞赛编码语言及测试环境。因此,在一个实施例中,利用来自Cambridge,Massachusetts的FREE SOFTWARE FOUNDATION的GNU C编译器(GCC),服务器104可让代码编译引擎344对C或C++代码进行编译。在一个实施例中,服务器104让代码编译引擎344利用从Mountain View,California的SUN MICROSYSTEMS可得到的编译器来编译JAVA代码。在另一个实施例中,JAVA代码被解释而不被编译。在一些实施例中,代码编译引擎344包括或具有到编译器的入口,用于在编码竞赛中将要用到的各种编码语言或格式。
在一个实施例中,竞赛服务器216还包括代码测试引擎352,所述代码测试引擎352根据测试数据,如预先设定的一套测试程序来测试竞赛者计算机代码的结果。测试输入可来自各种源。总体上竞赛服务器216运行、解释、或模拟测试环境,以便于测试数据可以作为输入被提供并且获得结果。优选地,由编译引擎344所使用的编译器对代码进行编译,以便于代码可以由代码测试引擎352来执行。在一个实施例中,竞赛服务器216额外地包括等级引擎349来计算和管理竞赛者的等级。等级引擎348可实施精确地表示竞赛者相对于其它竞赛者的技能水平的任何算法,如基于统计的算法。代码编译、代码测试和等级产生这些任务中的每个任务均是计算密集型的任务。这些操作请求由消息队列处理器324进行队列,并且按照接收的次序被提供到引擎344-352。这允许事务对象316来完成请求,而不需要阻塞或等待引擎344-352。
将竞赛服务器216中的这些密集型计算任务从其它服务器的操作中分离(de-coupling)允许竞赛系统的可伸缩性。服务器、处理器或引擎(例如,网服务器208、应用服务器212、消息队列处理器324、等级引擎348)的任何组合可以在相对于其它服务器、处理器或引擎相同或独立的处理器或计算机上加以实施。竞赛服务器216的几个例子可以并行地(在相同或不同的计算机上)执行,以对来自消息队列处理器324的请求做出响应。正如在竞赛期间可能会出现的那样,如果系统出现大量负载,则可以快速地添加额外的处理能力。因此,服务器104这个实施例有用的特性是它可以可靠地支持具有大量竞赛者的计算密集型的编码竞赛。
参考图4,在一个实施例中,竞赛者与服务器104(经由客户108)的相互作用可以总体上被概括为四个步骤。竞赛者任选地向服务器104登记(步骤404)。优选地,竞赛者提供有关其本人在登记过程中的信息。竞赛者信息的实例可以包括如竞赛者姓名、联系信息(即电子邮件地址、电话号码、电子邮件地址)、在现场使用的用户名或“化名”、工作经历、教育程度、某些人口统计信息、技术特长、竞赛者是否目前正在寻找工作、以及/或竞赛者受雇的地理偏好等信息。化名是竞赛者将如何在系统上让其它竞赛者和观众知道。登记还可包括,例如正如下面更详细讨论的那样,每个竞赛者完成资格检定测试、或资格检定轮次。
登记之后,竞赛者可以参加竞赛。在一个实施例中,竞赛在服务器104上进行且连续地进行。在另一个实施例中,竞赛是在规定时间、或者由竞赛管理员宣布进行。为了赢得一些编码者的注意力和参加,例如可最好在正常的上班时间之后周期性地进行竞赛。在一个实施例中,竞赛者在任何时间进入竞赛。例如,如果存在可进行竞赛的其它适合竞赛者,则竞赛者可连接到服务器104且可在任何时间进入竞赛。在一个实施例中,这种类型的竞赛被称为“搭便车”竞赛,因为竞赛者可以在存在其它竞赛者的任何时间进入竞赛。竞赛可被排定时间,以便于服务器104自动地在规定时间(或在预先设定时间之后的一些预先设定延迟)开始竞赛。
竞赛首先涉及到编码问题的通信(步骤406)。在竞赛中服务器104经由客户108将一个或多个计算机编码问题传递到每个竞赛者。竞赛者回顾所述一个或多个编码问题,且开发作为对编码问题的解的计算机代码(步骤408)。竞赛者可选择一个或多个所传递的编码问题来解答。竞赛者可选择第一问题来解答,且随后选择另一个问题来解答。为了简便起见,可以说明一个编码问题,但是它旨在所述原理可以被扩展到不只一个编码问题。
在一个实施例中,在竞赛者提交作为编码问题最终答案的计算机代码之前,竞赛者可以提交此代码用来由服务器104进行编译,且利用由竞赛者所提供的测试数据来执行。通过这种方法,竞赛者可以编译和/或运行计算机代码,以确定例如计算机代码操作情况的好坏、其操作的速度、以及计算机代码的精确度。竞赛者额外地可以观看,例如编译的结果及利用由竞赛者提交的测试输入所执行的结果。
在一个实施例中,服务器104记录在编码阶段由竞赛者所占用的流逝时间。服务器104在传递计算机问题至竞赛者(经由客户108)时起动编码计时器,并且当竞赛者提交解时,或当编码计时器到达预先设定的编码阶段时间(即超时)时便结束编码阶段。此外,取决于计算机问题的难度,服务器104可调节预先设定的编码时间。
在一些实施例中,在提交代码之后,竞赛的挑战部分紧接其后(步骤412)。在挑战周期期间,挑战方可以对竞赛者的计算机编码进行挑战。在各种实施例中,挑战方可以是一个或多个:另一个竞赛者、编码竞赛的观众、裁判或具有被赋予的提交测验数据任务以验证编码提交内容的另一方、或服务器104。在一个实施例中,挑战方通过向服务器104提交作为被执行的计算机代码的输入的测试数据来挑战计算机代码。服务器104使用测试数据来确定计算机代码的正确性。利用测试数据,挑战方试图诱发计算机代码的不正确执行,例如产生不正确的输出,或因错误而中断执行。基于计算机代码对测试数据的响应,服务器104可以确定计算机代码的执行是否可接受。在一些实施例中,当挑战计时器到达预先设定的挑战时间时,服务器104终止挑战。虽然所述计时器被说明成独立的计时器,但是计时器如挑战计时器和编码计时器可以利用单个计时器或多个计时器来实施。
服务器104还可进行对所提交代码的自动测试(步骤416),其中所述代码被提交到一个或多个来自一套预先设定检验程序的自动测试。在一个实施例中,服务器104将所有被提交的计算机代码提交到一个或多个自动测试中。服务器104可随机地从一套预先设定检验程序中选择一个测试,或者可基于,例如预先设定顺序或有关先前挑战中计算机代码的表现而选择测试。在另一个实施例中,挑战阶段包括自动测试。在另一个实施例中,自动测试先于挑战阶段。
在一个实施例中,竞赛包括竞赛者登记以及随后参加两个或多个竞赛轮次,其中每个轮次由问题通信(步骤406)、编码(步骤408)、挑战(步骤412)、以及测试(步骤416)组成。作为另一选择地,竞赛轮次可包括问题通信(步骤406)、挑战(步骤412)、以及测试(步骤416)的子集。在一些实施例中,挑战(步骤412)及自动测试(步骤416)的顺序被颠倒,且在其它实施例中,这些步骤相重叠或并行地发生。在一个实施例中,编码竞赛由预定设定数量的轮次组成,其中所述数量随竞赛到竞赛而变化。因此,竞赛可仅由一个轮次组成。具有众多轮次的竞赛还可被称为锦标赛。如下面所讨论的那样,服务器104可以在整个竞赛完成之后(例如在竞赛的轮次完成之后)额外地赋予或调节每个竞赛者的等级。一个轮次可以包括两个或多个问题的通信,带有重叠的问题通信、挑战以及自动测试。
参考图5,在一个实施例中,服务器从客户(如果它是竞赛者的第一竞赛)或数据库接收竞赛信息(步骤504)。在一些实施例中,直到所要求的竞赛者信息被服务器104接收到,服务器104才能够使竞赛者移向下一步骤。在一些实施例中,服务器104在适当的时候,如在编码竞赛的间歇期间请求来自客户108的额外竞赛者信息。在其它实施例中,如果竞赛者已经在服务器104被登记,但还从未在竞赛中进行过竞赛,则竞赛者在进行竞赛之前可不必完成额外的信息。因此,在一个实施例中,所有的竞赛者在竞赛之前提供最小量的登记信息。
在另一实施例中,服务器104主持一个实习房间。实习房间是其中一个或多个参赛者可以使自己熟悉竞赛格式(例如,回答编码问题的格式)的房间。在一个实施例中,在实习房间内,服务器104向一个或多个竞赛者提供简单的编码问题。竞赛者试图响应于这些问题开发出代码,这可有助于它们熟悉竞赛系统。
在一个实施例中,服务器104确定是否有足够的竞赛者来开始编码竞赛(步骤508)。如果没有,则服务器104进行等待,直至预先设定数量的竞赛者连接(经由客户108)到服务器104来参加编码竞赛。在一些实施例中,在建立与两个竞赛者(经由客户108)的连接之后,服务器104可等待预先设定的时间,然后才开始竞赛。例如,如果服务器104排定了编码竞赛的时间以在特定的日期和时间开始,只要不只一个竞赛者将要参加竞赛,则在开始竞赛之前服务器104可仅等待一段预先设定的时间(例如10分钟)待排定的时间过去。如果没有竞赛者或只有一个竞赛者在排定的时间提交了竞赛信息,则服务器104可自动地删除编码竞赛或将其推迟到随后的日期或时间。
当有与已经登记的、合格的竞赛者相联系的预先设定数量的客户108参加时,服务器104经由客户108将编码问题传递到每个竞赛者(步骤512)。在一个实施例中,编码问题要求竞赛者建立一个或多个计算机程序、子程序、以及/或任务。在一个实施例中,编码问题涉及到以一种或多种专用语言或格式来开发代码。
服务器104还可以将时间限制强加到其对编码问题响应的接收上。在一个实施例中,当服务器传递编码问题时,服务器104在客户108上显示出一个响应计时器。服务器104将响应计时器设置到一个预先设定的响应时间,以其中服务器104接收响应于编码问题的计算机代码的时间限制。当响应计时器期满时,竞赛者可以不再提交计算机代码。
在一些实施例中,竞赛者从几个被传递的编码问题中选择一个编码问题。服务器104将几个编码问题传递到客户108,其中每个编码问题相对于其它的编码问题具有不同的难度。如果竞赛者提交了具有较高难度编码问题的正确解,则相对于具有较低难度编码问题的正确解而言,更难的选择可以导致赋予更高的分数。在竞赛者响应于一个问题提交代码之后,竞赛者方能够解决另一个编码问题。在另一个实施例中,在竞赛中所提供的编码问题具有相同的难度,且因此具有相同的得分数值。在另一个实施例中,仅有一个必须响应的问题,而别无选择。
竞赛者在向服务器104提交作为最终响应的代码之前可编译(若有必要)且测试她的代码。因此竞赛者可以在提交代码之前证实其代码。通过编译和/或测试计算机代码,竞赛者可能够例如改善计算机代码、确定计算机代码中的错误、确定计算机代码的精确度、以及确定计算机代码的效能。当代码准备好时,然后竞赛者向服务器104提交其计算机代码。服务器104从竞赛者接收计算机代码(步骤516)。若有必要,服务器104对所述代码进行编译(步骤520)。如果服务器104从竞赛者接收到可执行的或解释的计算机代码(例如JAVA程序),则可不需要编译步骤。
在一个实施例中,服务器104等待一段预先设定的时间,以从每个竞赛者接收计算机代码。一旦这个预先设定的编码时间已经过后,则服务器104并不接收代码的提交。在其它实施例中,服务器104继续接收代码的提交,但是提交内容可得的分数随着时间减小。
服务器104验证所提交的计算机代码的正确执行(例如,它产生了正确的输出并在所有的情况下无误差地执行了吗等)。服务器通过获取可来自各种源的测试数据(步骤524)而做到这点。在一个实施例中,服务器具有作为所提交编码问题的输入而提供的预先设定测试数据。这样的测试数据随着编码问题被提供到服务器上。在另一个实施例中,利用可以提供到计算机代码的有关输入类型的信息,服务器可产生测试数据(步骤524)。正如上面所述,测试数据还可被作为挑战由其它竞赛者或者在一些实施例中,由观众或裁判来提供(图4,步骤412)。基于一个或多个因数,例如,向服务器104提交计算机代码的顺序、提供到服务器104的测试数据的顺序、提交竞赛者的目前排名、在这个竞赛中竞赛者被赋予的目前分数值,服务器104可随机地或按照预先设定顺序来选择竞赛者的计算机代码进行验证。在一个实施例中,为了使计算机代码响应的这个自动验证能够进行,当测试问题被提供到服务器以用于到编码竞赛时,参考计算机代码636和预先设定的测试数据连同测试问题一道被提供到服务器104。参考程序636和测试数据被存储有测试问题以在这种方式下使用。
服务器104通过将测试数据作为输入来执行所述代码,并且确定计算机代码的响应(步骤528)。在一个实施例中,服务器104可以显示通过利用测试数据作为到竞赛者和观众的输入来执行此计算机代码的结果。在另一个实施例中,所使用的测试数据和所获得的结果被存储在数据库中,以用于日后观看和验证。
在一个实施例中,作为自动测试阶段的一部分,服务器104产生测试数据且使代码经受服务器的数据。即使当服务器104从前提供了或产生了作为挑战的测试数据,但是在一个实施例中服务器104向计算机代码中输入一个或多个额外的测试数据。
服务器104评估计算机代码的响应(步骤532)。在一个实施例中,通过将此响应与可接受的响应或一系列可接受的响应相比较,服务器104对所述响应加以评估。此外,当使测试数据作为输入来执行计算机代码时,如果竞赛者的计算机代码失败或产生错误,则服务器104可从提交竞赛者身上扣分数。此外,如果计算机代码利用测试数据正确地执行,则服务器104可给提交竞赛者赋予分数。在一些实施例中,如果被挑战的计算机代码响应于测试数据被正确地执行,则服务器104还可给为特定计算机代码提交挑战测试数据的竞赛者加分或扣分。换句话说,系统将为对竞赛者计算机代码的成功挑战加分且为不成功的挑战扣分。
在一个其中通信网络112是因特网的实施例中,竞赛在“虚拟论坛”环境中进行,其中观众可以经由计算机网络观察虚拟竞赛房间内的活动。观众可是已经在服务器104登记但未参加特定的编码竞赛的客户108的用户,或者可是还未在服务器104上登记的观察者。在这样一些实施例中,除了参加编码竞赛的服务器104和其它竞赛者以外,观众(既可是当地的或经过网络的)也可以通过向服务器104提交测试数据来参加竞赛,用作竞赛者提交内容的输入。因此,观众可以帮助判别提交内容的价值。
同样参考图6,在一个实施例中,服务器104使用参考代码636来验证竞赛者的计算机代码640的操作。优选地,参考程序636是预先设定的对编码问题的解。测试数据639作为参考程序636和竞赛者代码640两者的输入而被提供。测试数据可是由服务器104所存储的预先设定数据、由服务器104所产生的数据、由另一竞赛者所提供的数据、或由另一方如观众、裁判、管理员等所提供的数据。在利用作为输入的测试数据来执行期间(或之后)参考程序636产生参考响应638。当利用作为输入的测试数据执行竞赛者的计算机代码640时,其还产生响应644。然后服务器104比较这两个响应638和644,以确定计算机代码响应644的正确性。服务器104还可测量参考程序636和竞赛者计算机代码640产生相联系的响应638、644所占用的时间,以确定竞赛者计算机代码640的效能。这个比较可针对各种输入测试数据而重复,使每个测试输入来自相同或不同的源。
再次参考图5,在对竞赛者的计算机代码加以评估之后,服务器104给竞赛者授予分数(步骤536)。在一个实施例中,每个编码问题具有与其相联系的最高分数值。在一个实施例中,服务器104授予编码问题所值的小于最高分数的分数。具体地,基于例如竞赛者代码响应的正确性(例如与参考响应638做比较)、竞赛者的计算机代码响应644的精确性、计算机代码640产生计算机代码响应644的速度、以及/或所记录的其中服务器104从竞赛者接收计算机代码640的时间中的一些或全部,服务器104给竞赛者授予分数。
在一个实施例中,所授予的分数值取决于编码问题的难度。通过与服务器104提供编码问题的时间相比较,服务器104还可基于服务器104接收竞赛者的计算机代码640的时间来调节给竞赛者授予的分数值。在一个实施例中,授予竞赛者的总分数值在方程式1中被示出:
所授予的总分数=MP*((0.3+(.7*TT2))/(10* PT2+TT2)    方程式1
在方程式1中,PT是竞赛者对问题进行编码(即产生计算机代码)所花费的时间、TT是在这部分竞赛中分配用于对所有计算机问题进行编码的总时间、以及MP是计算机编码问题可得到的最高分数。在一个实施例中,可得到的最高分数值是竞赛者实际上不可获得的服务器104的参照系。更具体地说,对于待被授予最高分数的竞赛者,竞赛者将必须花费几乎零秒来读编码问题、对计算机代码640进行编码、以及向服务器104提交计算机代码640。例如,如果存在一个被分配有600秒(10min)的问题,且它花去竞赛者300秒(5min)来对问题进行编码,则TT=600、PT=300,而且如果代码正确执行的话则将授予总分数MP的大约52%。
在一个实施例中,如果利用所有的测试数据计算机代码正确地加以执行,则竞赛者接收此计算机代码的这个分数(例如可得到的总分的52%),并且如果利用所有的测试数据代码没有正确地加以执行,则竞赛者得不到分数。在其它的实施例中,部分得分是针对部分正确的代码而给的。例如,在一个实施例中,代码基于测试数据的百分比来接收分数。在另一实施例中,所接收的分数基于利用其代码得以正确执行的测试数据的百分比而被比例缩放。在一些实施例中,如当竞赛是由多轮次组成的锦标赛时,服务器104跟踪每轮次中授予每个竞赛者的分数。服务器104还可计算每个竞赛者的累计,即将在竞赛的每个完成轮次中所授予的分数相加。这个累计可以用来淘汰低分竞赛者。
在一个实施例中,在完成一个或多轮次竞赛之后,服务器104给竞赛者赋予一等级(步骤540)。典型地当竞赛或锦标赛完成时才发生等级的赋予。例如,如上面图4所说明竞赛可由一个轮次组成,或可由多轮次组成,如在锦标赛中。因此,在其中竞赛由问题通信、编码、挑战及测试步骤的一个迭代,或不只一轮次组成时,服务器104在向每个竞赛者授予总分之后给每个竞赛者赋予一个等级。在其中竞赛包括多轮次(例如锦标赛)的一个实施例中,服务器104在竞赛者完成锦标赛之后给每个竞赛者赋予一个等级。
所述等级提供了可以用来绘制程序设计员技能、知识、以及能力图表的量度。正如下面更详细地说明的那样,在一个实施例中服务器104以在竞赛中(例如具有一个或多个轮次)被授予竞赛者的总分数作为竞赛者等级的基础。所述等级可以是分数、级别或任何其它类型的等级技术。
参考图7,在一个实施例中,竞赛者经历作为登记过程一部分的资格检定测试。资格检定测试可以在登记时间或随后的时间进行。在资格检定测试期间,服务器104将一个或多个资格检定测试问题传递到竞赛者(步骤704)。在一个实施例中,竞赛者必须在预先设定的资格检定时间内完成资格检定测试,服务器104将所述时间显示在客户108上。在一个实施例中,预先设定的资格检定时间是整个资格检定测试的时间。作为选择地,预先设定的资格检定时间是一个资格检定测试问题的时间要求。在一个实施例中,如果预先设定的资格检定时间已流逝,则服务器104传递资格检定测试中的下一个问题。在另一个实施例中,服务器104结束资格检定测试。服务器104还可对整个资格检定测试和对每个资格检定测试问题的回答均进行计时。
所述问题可例如是多项选择问题、要求一个字答案的问题、或要求竞赛者写计算机代码的问题。优选地,所述问题是与计算机相关的,并且正确的响应表明技能的基本水平。然而,问题可涉及到任何学科、如例如数学、科学、文学、历史或逻辑。此外,在一个实施例中,资格检定测试问题具有变化的难度。此外,服务器104可向竞赛者显示或不显示这些难度,并且竞赛者在观看资格检定测试问题之前可基于其难度来选择要回答哪个资格检定测试问题。
竞赛者(经由客户108)回答每个资格检定测试问题,且然后将所述答案提交到服务器104。服务器104从客户108接收此答案(步骤708)。在一个实施例中,服务器104评估所接收到的答案(步骤712)。在另一个实施例中,一旦竞赛者回答了测试问题,则客户108(例如网浏览器116或客户软件120)自动地将此答案传递到服务器104并且服务器104提供给客户108下一个资格检定测试问题(步骤704)。
在所接收到的答案的评估期间,服务器104可例如基于预先设定的正确答案集及竞赛者对资格检定测试问题的响应速度来确定所接收答案的价值。基于从前的测定(例如所接收答案的正确性),服务器104可额外地确定授予竞赛者关于资格检定测试问题的答案的分数值,或资格检定测试问题得分。此评估之后,在一个实施例中,服务器104通知竞赛者有关竞赛者答案的评估结果,如例如,竞赛者答案的正确性或资格检定测试问题的得分。在一个实施例中,作为资格检定测试的进程,服务器104经由显示在客户108上的资格检定结果窗通知竞赛者。在另一个实施例中,服务器104仅在资格检定测试评估完成时通知竞赛者资格检定测试的评估结果。
服务器104确定是否资格检定已完成(步骤720)。服务器104确立:基于例如当预先设定的用于资格检定测试的资格检定时间已过、当服务器104接收到最终资格检定测试问题的答案时、或当最终资格检定测试问题的预先设定时间已过时,资格检定测试便完成。如果服务器104确定在接收到竞赛者对当前资格检定测试问题的答案之后资格检定测试未完成,则服务器104紧接着在步骤704中传递下一个资格检定测试问题。然而,如果服务器104确定在接收到竞赛者对当前资格检定测试问题的答案后资格检定测试已完成,则服务器104确定这个竞赛者是否具有编码竞赛的资格。
因此,在确定资格检定测试完成之后,于是服务器可评估由竞赛者所提交的答案(步骤724)。在这个实施例中,于是服务器104可以通知竞赛者评估的结果(步骤728)。这个通知可是关于每个问题的正确性、回答每个问题所花的时间、完成资格检定测试所花的时间、每个测试问题的难度、资格检定测试问题得分、资格检定测试所授予的总分、或资格检定测试得分、以及/或具有编码竞赛资格所需要的最低分数的通知。每个问题被授予的分数可取决于答案是否正确、接收被提交答案所花的时间、以及问题的难度。在一个实施例中,如果参加者想要尽力改善其得分以增加其合格的机会,则参加者具有第二次参加资格检定测试的选择权。
在一个实施例中,在确定资格检定测试完成之后,服务器104允许用户进入编码竞赛。在这个实施例中,资格检定测试对于新竞赛者来说是在编码竞赛开始之前熟悉竞赛环境且进行实践的一个机会。
参考图8,在确定是否竞赛者可以参加编码竞赛时,服务器104要看竞赛者的资格检定测试得分、以及已经参加的竞赛者的数量。
服务器104首先确定资格检定测试得分是否高于预先设定的资格检定测试阈值分数(步骤804)。竞赛者不可以参加编码竞赛(步骤808)。
如果资格检定得分大于预先设定的资格检定测试得分,则服务器104使表示已经取得编码竞赛资格的竞赛者数量的竞赛者计数器递增(步骤812)。然而,如果服务器104确定竞赛者计数器小于或等于预先设定的最大竞赛者计数器(步骤816),则竞赛者被允许竞赛(步骤824)。
在一个实施例中,登记过程包括服务器104将每个竞赛者播种到(SEED)到分区中。在一个这样的实施例中,服务器104分配两个分区,第一分区用于从前已经取得了等级高于预先设定分区等级的竞赛者,且第二分区用于没有获取等级(即此前从未进行过竞赛或没有与竞赛相关的数据)的或者是具有等级低于预先设定分区等级的竞赛者。在一个实施例中,服务器104向第二分区提供相对于向第一分区所提供问题较低难度的编码问题。
例如,服务器104可以使用预先设定的分区等级值1200。因此,服务器104将具有等级小于1200的所有竞赛者按照种子选手分配到第二分区中,且将具有等级高于1200的所有竞赛者分配到第一分区内。此外,在一个实施例中,服务器104在完成竞赛后再次分配所有的竞赛者。因此,在竞赛后,如果从前在第一分区中的竞赛者在竞赛后具有低于1200的等级,则服务器104将此竞赛者放入到第二分区中。此外,根据竞赛者进行竞赛所在的分区,服务器104可以选择竞赛者正在为此竞赛的奖励。
服务器104可进一步将分区划分成一个或多个“房间”或房间组。例如,服务器104可以将第二分区划分成未评定等级的房间以及已经评定等级的房间,所述未评定等级的房间仅拥有从未被赋予等级的竞赛者且已经评定等级的房间拥有已经被赋予等级低于预先设定分区等级的竞赛者。
参考图9,通过对竞赛者进行等级鉴定,在一些或全部竞赛完成之后,服务器104对竞赛者的编码能力进行了量化。在一个实施例中,服务器104基于在竞赛中授予竞赛者的总分数来确定等级。
如上所述,服务器104电子地将编码问题通信给每个竞赛者(步骤904)。然后服务器接收竞赛者响应于所述问题的计算机代码(步骤908)。然后服务器104对所接收的代码进行评估(步骤912)。
基于对代码的这些评估,然后服务器104给竞赛者授予分数(步骤916)。一旦一些或全部竞赛完成(例如一轮次或多轮次),则服务器104便确定每个竞赛者的等级(步骤920)。在一个实施例中,为了确定竞赛者的等级,若竞赛者从前已经被评定等级,则服务器104首先确定竞赛者从前的等级。优选地,服务器104从例如数据库服务器220检索竞赛者的等级。所述等级包括等级值及变动性(volatility)值。变动性值表明竞赛者的等级随时间的一致性。
在一个实施例中,服务器104利用方程式2计算参加竞赛的竞赛者的平均等级:
AveRating = Σ i = 1 NumCoders Ratinggi NumCoders 方程式2
服务器104还利用方程式3计算竞赛系数:
CF = Σ i = 1 NumCoders Volatilityi 2 NumCoders + Σ i = 1 NumCoders ( Ratingi - AveRating ) 2 NumCoders - 1 方程式3
在方程式2和3中,NumCoders是竞赛中的竞赛者数量且Ratingi是竞赛中第i个竞赛者在竞赛之前无变动性的等级。此外,Volatilityi是竞赛中第i个竞赛者在竞赛之前的变动性。
其次,如下面方程式4所示,服务器104确定竞赛者的技能。
Skill = Rating - 1200 1200 方程式4
所述等级是竞赛者在竞赛之前的等级,或从前的等级。在一个实施例中,如果服务器104确定竞赛者从前从未被评定等级,则服务器104并不计算技能。在另一个实施例中,服务器给竞赛者赋予一个预先设定的技能水平(例如1)。服务器利用方程式5计算一竞赛者与其它竞赛者的偏差,其中Volatility(变动性)是在竞赛之前竞赛者的变动性:
Deviation = Volatility 1200 方程式5
然后服务器104估算4相对于竞赛中的其它竞赛者服务器104授予一竞赛者较高得分的概率(对于从1至NumCoders中的i为WPi)。在一个实施例中,通过使用竞赛者在从好到差日子范围内预计的表现等级,服务器104估算这个概率。服务器104将每个竞赛者的表现作为带有平均值(等级)和标准偏差(变动性)的正态分布制成模型。通过使用这个模型,服务器104利用正态分布将竞赛者的表现转化成百分比,这样50%表示所期待的表现且25%表示四天当中三天较好等。然后,为了估算所述竞赛者击败竞赛者i的概率,服务器104将从0%至100%的范围划分成1%的块,并且服务器104选取每个块的中点且计算相应的表现。获胜的概率是其中中点偏向竞赛者i的块的数量。如果两个竞赛者具有相同的块数量(即平局),且其中中点偏向一个竞赛者,则服务器104将所述块在两个竞赛者之间分割。
特别地,估算竞赛者A击败竞赛者B的概率的伪码功能被所示如下,其中f是标准正态函数的倒数:
WinProbability(SkillA,DeviationA,SkillB,DeviationB)

       Set count,a,b to O.Set fa=SkillA+d((a+.5)/100)*DeviationA.

        Set fb=SkillB+f((b+.5)/100)*DeviationB.

        While(a<100):

              If fa<fb:

                      Add 100-b to count,Increment a,

                      Set fa=SkillA+f((a+.5)/100)*DeviationA,    

              If fa=fb:

                      Add 100-b-.5 to count,Increment a,Increment b,

                      Set fa=SkillA+f((a+.5)/100)*DeviationA,

                      Set fb=SkillB+f((b+.5)/100)*DeviationB

              If fa>fb:

                      Increment b

                      Set fb=SkillB+f((b+.5)/100)*DeviationB

        Return count,where count is the win probability.
然后服务器104利用方程式6计算竞赛者所期望的名次:
ERank = Σ i = 1 NumCoders WPi 方程式6
其中Wpi是一编码者赢得每位其它编码者的概率。服务器104还利
用方程式7计算竞赛者预计的表现:
EPerf = - Φ ( ERank - . 5 NumCoders ) 方程式7
在方程式7中,Φ是标准正态函数的倒数。然后服务器确定每个竞赛者的实际表现:
APerf = - Φ ( ARank - . 5 NumCoders ) 方程式8
在方程式8中,ARank是在竞赛中基于得分的竞赛者实际名次(对于第一名为1,对于最后一名为NumCoders)。如果竞赛者的得分等于另一名竞赛者的得分,则名次为由战成平局的竞赛者所覆盖位置的平均。然后服务器利用方程式9计算竞赛者的“表现(performed as)”等级:
PorfAs=OldRating+CF*(APerf-EPerf)               方程式9
服务器104还在方程式10中确定竞赛者的竞赛加权,以及在方程式11中确定竞赛者的“帽(cap)”:
Weight = TimesPlayed + 1 . 7 5 * TimesPlayed + . 4 - 1 方程式10
Cap = 150 + 1500 1 + TimesPlayed 方程式11
在方程式10中,TimesPlayed是竞赛者从前已经被评定等级的次数。在一个实施例中,为了稳定被评定较高等级的竞赛者,其等级在2000和2500之间的竞赛者的加权被减少10%,且等级超出2500的竞赛者的加权被减少20%。然后服务器利用方程式12确定竞赛者新的变动性且利用方程式13确定竞赛者新的等级:
NewVolatility = Volatilit y 2 + Weight * ( CF * ( APerf - EPerf ) ) 2 1 + weight 方程式12
NewRating = Rating + Weigh t * PerfAs 1 + Weight 方程式13
在一个实施例中,如果|NewRating-Rating|>Cap,则服务器104调节NewRating,这样至多Cap不同于Rating。此外,在一些实施例中,服务器104存储任何上述提到的值,如等级、变动性、及从前被评定等级的次数。此外,在一实施例中,新竞赛者在进行编码竞赛之前其等级是暂定的。
因此,在刚刚说明的实施例中,如果竞赛者已经在许多其它编码竞赛中或在编码竞赛的许多其它轮次中加以表现并且被评定等级,则服务器104并不根据编码竞赛中的一次表现急剧地调节竞赛者的等级。服务器104还可确定每个竞赛者的最高等级增加,以有助于稳定竞赛者从一个编码竞赛到另一编码竞赛的等级。在一个实施例中,服务器104在编码竞赛的网址上显示每个竞赛者的等级。然而,在另一实施例中,服务器104仅使已登记的竞赛者和赞助人能够观看竞赛者的等级。
TABLE 1(表1)示例出由服务器104传递到竞赛者的编码问题的三个实例。如在三个实例中所示,编码问题可包括帮助竞赛者写问题解的注释。同样,编码问题可提供一个或多个解答所述问题的计算机代码正确输出的实例。
编码问题 实例
实施一个包含函数timeLeft的财务种类。TimeLeft被传递了3个int值。银行账户的初始值为initialValue。利息以利息率百分比被每月加以计算。每月从帐户中提取每月的美元(紧接着利息被添加之后进行)。TimeLeft必须返回到账户可以支持全月提取的月份数量的int。如果账户将持续超出 (100,0,100)->1(200,1,300)->0(3453,8,200)->1200 250
1200个月,则函数将返回1200。所述方法的签字是“int timeLeft(intinitialValue,int interest,int monthly)。注释:initialValue和monthly为>或=0且<或=100,00。利息为>或=0且<或=1000。
实施一分数种类,其包含方法getXSmallest。所述方法传递两个整数:index(索引)及最大分母。程序应该发现其中b小于或等于最大分母且a/b小于1的所有a/b形式的分数,然后返回这些分数中第index小的分数。所述方法应该将分数返回为双值,其被舍入到3位小数点(使用所提供的formatDouble功能)。注释:如果index值>小于1的分数数量,则所述方法返回1。分数不应该被约分。1/2和2/4是两个唯一的分数,尽管其相等的双值。种类和方法必须被公开加以申明。index必须在1和70(包括在内)之间。最大分母必须在2和12(包括在内)之间。 如果index=3且最大分母-4,则所有为a/b形式的分数是1/4、1/3、1/2、2/4、2/3、3/4,并且所述方法应该将第三最小值作为双数:0.5返回。 500
实施包含pairwisePrimes方法的数字种类。所述方法输入一个int(num)且返回该数字可以被作为三个相异整数之和而被写入的方法数量,所述三个整数成对互为质数;即三个整数中没有一对具有>1的公因子。注释:num>0且<或=40。三个相异整数中的一个可为1;如果数字不共享有大于1的因子,则它们是成对互质数。 Num=8∶8可以被写为1+2+5及1+3+4且所述方法应该返回2。num=18所述方法应该返回14 1000
                        表1
在表1中所示的编码问题具有不同的难度。每个编码问题的这些难度被描绘成不同的分数值。例如,一竞赛者可以选择一个250分的编码问题以在正确解答时赢得最高250分。然而,另一竞赛者可选择相对于250分问题具有较高难度的1000分编码问题,以在正确解答时赢得最高1000分。因此,在一个实施例中,通过选择具有较高分数值(以及因此较高难度)的编码问题,具有较高技能水平的竞赛者可以比具有较低技能水平的竞赛者更快速地积累分数。在一个实施例中,服务器104给积累较高总分数值的竞赛者赋予较高等级。
在一个示范性实施例中,在一个虚拟房间内有多个编码问题可供所有的竞赛者。竞赛者具有解决哪个问题的选择权。一旦竞赛者观看了问题,则对那个问题的计时便开始。当竞赛者完成了响应于一个问题的代码、并将它提交到服务器上时,取决于问题的数量及分配到竞赛编码的时间量,竞赛者可以开始解决第二个问题,以及随后第三个问题等。在一些实施例中,竞赛者并看不到问题,只看到分数值,并且竞赛者仅基于问题的分数值来选择要解决的问题。因此,每个竞赛者在决定首先解决哪个编码问题时对其能力做出判断。
参考图10,服务器104可将等级用于多种目的,包括用于将赞助商吸引到编码竞赛。等级提供了一种有形的、客观的且可量化的方法,用于公司来确定竞赛者的技能水平。如上所述,服务器104执行登记步骤,在此服务器104接收竞赛者信息(步骤1004)。然后服务器运行至少一个编码竞赛(步骤1008)且将等级赋予每个竞赛者(步骤1012)。
然后竞赛管理员可以利用这些竞赛来吸引赞助。特别地,服务器向第一赞助商提供有关一个或多个竞赛者的竞赛者信息,以换来赞助(步骤1016)。赞助可以包括许多东西,但是总体上包括提供对竞赛或以及/或竞赛的管理员的财务支持。例如,在一个实施例中,赞助商将提供奖金,所述奖金授予相对于预先设定的其它竞赛者数量已经得到较高分数值的竞赛者。虽然下面所说明的是对整个编码竞赛进行赞助,但是一个公司还可以赞助竞赛的一部分(例如一轮次编码竞赛)。在一个实施例中,服务器104促成客户在竞赛者的网浏览器116(图1)上或客户软件102(图1)上来显示与编码竞赛的赞助商相关联的徽标及其它推销信息。此外,服务器104可以向赞助商提供经选择的竞赛者信息及等级。
在一个实施例中,竞赛管理员定制有关服务器104提供到赞助商的竞赛者信息。在这个实施例中,服务器104仅传递部分竞赛信息(步骤1020)。在这个实施例中,标准可是雇佣的地理偏爱、工作经验年限、编码语言专长或其它具体的技能、以及竞赛者当前雇佣的状况(例如主动求职、被动求职)。
所述标准还可是赞助商将考虑用于雇佣机会的等级范围。如果竞赛者的等级被评定成低于那个赞助商的最低等级,则服务器104并不将那个竞赛者的信息提供给赞助商。在其它的实施例中,当公司决定赞助编码竞赛时,服务器104从赞助商处接收标准。因此,虽然标准的接受被示于在服务器104向赞助商提供竞赛者信息之后的步骤1020中,但是服务器可另外在信息传递到赞助商之前的步骤1016中接收所述标准。
在服务器104向赞助商传递特定竞赛者的竞赛者信息之后,然后赞助商可联系竞赛者有关雇佣机会。在一个实施例中,赞助商与竞赛管理员通信来获取竞赛者的信息用于潜在的雇佣。此外,就有关所要求的信息及雇佣机会,赞助商与竞赛管理员通信且然后竞赛管理员与竞赛者通信。因此,竞赛管理员为竞赛者充当寻找就业的代理。
在一个实施例中,服务器104向赞助商提供有关一个或多个竞赛者的信息且随后赞助商与竞赛者联系。在一个实施例中,赞助商通过由服务器104所提供的通信服务(例如电子信息传递)与竞赛者联系。通过这个方式,可以向有前景的雇主隐瞒竞赛者的实际身份,并且竞赛者可以确定是否对赞助商所做的询问做出响应。此外,当与有前景的雇主谈判起始工资和或利益时,相对于其它竞赛者具有高等级的竞赛者可使用那个等级来助长竞赛者的谈判力量。
在一个实施例中,竞赛者管理员向每个竞赛者提供一个或多个广告供竞赛期间进行观看。广告可被显示在网浏览器、客户软件、或一些组合上。一个或多个广告商向竞赛管理员提供这些广告。一个广告商可是编码竞赛的赞助商且可进一步是雇佣编码员、开发软件和/或硬件、以及/或涉及到技术的公司或商行。广告商还可是竞赛的管理员。在一个实施例中,服务器104在客户软件120上显示一个或多个广告。广告可包括,但不受局限于徽标、引用语、词、一段文字、图片、或声音或视频剪辑。然后服务器104跟踪每个竞赛者的广告观看时间。例如,服务器可以确定客户软件显示特定广告的时间量。然后服务器104向广告商提供有关观看广告竞赛者的竞赛者信息及广告被跟踪的时间等。
在一个实施例中,服务器104每个竞赛者提供相同的广告。然后服务器104向广告商提供竞赛者的总计信息。竞赛者的信息可包括,例如观看广告的竞赛者的经历、每个竞赛者的等级、以及/或每个竞赛者的地理偏爱。例如,服务器104可提供具有高于或等于2000等级的十个极高技能的竞赛者观看了总共30分钟的广告,具有高于或等于1800但低于2000等级的十二名高技能的程序设计员观看了27分钟的广告,以及二十名具有高于或等于1500但低于1800等级的有技能的程序设计员观看了31分钟的广告。服务器还可提供每个竞赛者观看广告的时间清单。在一些实施例中,服务器提供有关每个上述提到的竞赛者的其它信息,如他们具有对Chicago,Illinois的地理偏爱。
在另一实施例中,服务器基于竞赛者的信息向不同的竞赛者提供不同的广告。例如,如果广告商是仅位于纽约且使用Java编程语言开发软件的计算机机构,则服务器104向具有与上述信息相匹配的竞赛者信息(即,对纽约的地理偏爱、在Java编程语言上的知识)的竞赛者显示这个广告商的广告。在一个实施例中,广告商向竞赛管理员(或服务器104)规定:服务器104应该仅向具有作为其竞赛者信息一部分的特定信息的编码员提供他们的广告。在另一实施例中,基于服务器104所存储的有关特定广告商的信息,服务器增加某些广告观看机会的频率。
参考图11,在一轮次或多轮次锦标赛中相对于其它竞赛者赢得较多分数的竞赛者除了有权得到雇佣机会外,还可被授予一个或多个奖励。如上,服务器104提供编码竞赛(步骤1104)且在竞赛期间(例如每轮次后赢得的分数)以及竞赛以后(例如总分数)给每个竞赛者授予分数(步骤1108)。服务器104确定是否得到特定分数的竞赛者应该接受奖励。服务器104基于所授予的分数是否高于预先设定的奖励分数值(步骤1112)或所述分数是否高于房间内、分区内等其它竞赛者所接收的分数来做出这项决定。
如果竞赛者将接受一项奖励,则服务器104通知竞赛者。在一个实施例中,基于竞赛者被授予的分数及预先设定的奖励分数值之差,向竞赛者授予不同的奖励(步骤1120)。奖励可是有形或无形的物品。例如,奖励可包括,但不局限于奖金、汽车、计算机、度假以及与潜在雇主的面试。在另一个实施例中,奖励以获奖者的名义被授予慈善机构。奖励可以各种方式被递送到竞赛者,如将奖励邮寄到竞赛者或让竞赛者在预先确定的地受奖。在另一个实施例中,编码竞赛管理员为一个或多个奖励提供资金。
在一个示范性实施例中,一单轮次竞赛的奖励分配以分区和房间为基础。基于竞赛者的等级,竞赛者被按种子选手分配到房间内。在较高(即具有小编号)分区和房间内的竞赛者被示于表II中。每个分区及房间内从第一至第三名的奖励金额如下所示:
分区1
房间    竞赛者    1st       2nd     3rd
1        9        635       537      456
2        9        382       323      274
3        9        293       248      211
4        9        249       211      179
5        10       249       211      179
6        10       227       192      163
7        10       211       179      152
8        10       196       166      141
9        10       183       155      132
10       10       172       145      123
11       10       165       140      119
12       10       158       133      113
分区2
房间    竞赛者    1st      2nd     3rd
1        10       91        77       65
2        10       86        73       62
3        10       81        69       58
4        10       73        62       52
5        10       69        58       49
6        10       66        56       48
7        10       63        53       45
8        10       60        51       43
9        11       62        52       45
10       11       59        50       43
11       11       51        43       36
未评定等级的
房间    竞赛者    1st     2nd     3rd
1       10        100      0        0
2       11        0        0        0
3       11        0        0        0
表II
服务器还可以提供“搭便车”竞赛,其中竞赛者可在任何时间与服务器进行通信,且每个竞赛者为进行竞赛支付竞赛费。然后竞赛管理员可以将所收取到总额的一部分(例如,收取的总额减去管理费用)分配给搭便车竞赛的优胜者。
在一些实施例中,一系列编码竞赛被用来识别杰出的编码员。竞赛者参加轮次赛,使每轮次的高分得主参加下一轮次。这使大量竞赛者能够参加初级竞赛,实现从大量竞赛者中识别出杰出编码员的目的。
在一个示范性实施例中,国家锦标赛在美国举行。在这个实施例中,竞赛的早期轮次赛在因特网上举行,使每个竞赛者在家乡参加竞赛。地区轮次赛在那个地区的中心物理位置举行,且国家轮次赛在大型度假类型环境如Ledyard,CT的Foxwoods、Las Vegas,NV或Orlando,FL主办。在较高轮次的竞赛期间,编码竞赛的赞助商通过联系信息、用餐、会议及服务请求/表现(例如编程、宣传等)可得到与竞赛者的亲自接触。
参考图12,在一个实施例中,竞赛者可以从第一淘汰轮次1204向前进展以通过系列竞赛的国家冠军赛1220。基于等级以及/或其它因数,预先设定数量的竞赛者被邀请参加第一淘汰轮次1204。在每轮次中,服务器将竞赛者分组,每组具有预先设定数量的竞赛者。在分组中的每个竞赛者与那个组中的其它竞赛者在虚拟房间内展开竞赛。在另一个实施例中,服务器104将具有相似等级的预先设定数量的竞赛者集中在一个房间。例如,第一虚拟房间可拥有十个具有最高等级的竞赛者,而另一个虚拟房间可拥有从前从未参加过编码竞赛的十个竞赛者。这类房间播种使竞赛者之间能够得到更公平的竞赛。此外,在一个实施例中,奖金被授予每个虚拟房间中例如累积有那个房间中最高分数值的一个或多个竞赛者。在一些实施例中,努力根据其地理位置将竞赛者分配到虚拟房间中,这样他们可以同来自同一地区的其它人参加地区竞赛。
在这个实施例中,随着奖金(例如被授予的奖金额)从第一初级轮次1208到国家轮次1220的增加,竞赛的水平也在增加。每轮次竞赛涉及到编码、挑战以及/或测试。在第一初级轮次1208中的一些竞赛者在第一初级轮次1208期间被淘汰,因此较小数竞赛者参加第二初级轮次1212。同样,随着进程继续到地区轮次1216,仍然是大多数竞赛者被淘汰,其中在一实施例中,客户108和服务器104位于那个地区的一个中心物理位置。最终,在地区轮次1216中具有最高分数的预先设定数量的竞赛者进入国家轮次1220。优选地,国家轮次1220在一个物理位置(例如度假型的环境、或在大型计算机会议处)举行。旨在这个实施例是示范性的,并且其它实施例可包括不同数量的轮次、竞赛者及位置。
参考图13,虚拟“大厅”区域1300实施例的屏幕照片实例被示出。在一个实施例中,大厅1300是在编码竞赛期间显示在客户108上的主网页。大厅1330包括状况面板1304,所述状况面板1304包含例如,竞赛者的登录名称、等级及状况(即,竞赛者是正在编码还是正在挑战)。大厅1300还包括一主菜单1308,所述主菜单提供随时可以被使用的功能,如用来搜索一特定竞赛者的搜索功能。大厅1300进一步包括选项区域1310,其提供选项来定制大厅1300的显示。有效的竞赛区域1312是一个显示当前有效竞赛(例如,实践竞赛、实际竞赛)的区域。大厅1300还包括用于用户检索有关特定项目帮助的帮助区域1316以及显示与编码竞赛有关的相关时间的竞赛计时器显示器1320。例如,竞赛计时器显示器1320可以显示倒计时到下一竞赛开始的起始计时器。图例键1322显示参加下一编码竞赛的竞赛者。大厅1330还包括使虚拟房间中的竞赛者彼此之间能够进行通信的聊天区域1324。大厅1330还使一个竞赛者经由搜索箱1328能够搜索另一竞赛者。此外,竞赛者信息窗1332使竞赛者能够发现有关另一竞赛者的某些信息。
参考图14,在图13的实施例中,在编码竞赛中进行竞赛的竞赛者从服务器104传递到每个客户108的几个编码问题中选择出一个编码问题。示范性的编码问题选择屏幕1400包括一个所有有效进行的虚拟房间的列表1404。所述屏幕1400还包括工具窗1408。编码问题选择屏幕1400额外地包括一个选择窗1412,在此选择窗1412处竞赛者基于所显示的那个编码问题的分数值来选择编码问题。一旦竞赛者选择了编码问题,则服务器104显示编码窗,以使竞赛者能够建立解决编码问题的计算机代码。
参考图15,编码窗1500的示范性实施例包括问题信息窗1504,用于显示有关编码问题的信息,如方法名称、种类名称、返回类型、以及争论类型。编码窗1500还包括用来显示编码问题的问题陈述窗1508。编码窗1500额外地包括编码区域1512,在此编码区域1512处竞赛者写下试图来解决编码问题的计算机代码。此外,编码窗1500包括动作条1516,在此动作条1516使竞赛者能够完成计算机代码的各种动作,如测试计算机代码、保存计算机代码、以及向服务器104提交计算机代码。
参考图16,在一个示范性实施例中,在完成编码阶段之后,服务器104执行挑战阶段且显示挑战窗1600。挑战窗1600包括使竞赛者能够观看其它竞赛者的计算机代码的观看窗1604。挑战窗1600还包括用来使测试数据能够提交的挑战提交窗。
在一个实施例中,服务器104分配用于团队竞赛的团队。这种分配可例如发生在竞赛开始之前、竞赛中预先设定数量的轮次之后、或一个竞赛结束之后且用于未来竞赛。在进一步的实施例中,基于从前的等级、或基于一个或多个竞赛者所接收到的从前分数,服务器104随机地分配团队。在另外的实施例中,竞赛者构成团队。在另外一个其它的实施例中,服务器104选举至少两个竞赛者充当团队长且所述团队长选择即将成为其团队中队员的竞赛者。此外,服务器104可以允许竞赛者从一个团队被交易到另一个团队。一个团队(例如团队长)就一个竞赛者可以进行交易的实例包括,但不局限于另一个团队的队员、分数及奖励。
团队竞赛可以涉及到季节,其中团队在预先设定的时间周期内为赢得最佳记录或总分数而进行竞赛。此外,服务器104可包括团队的单独分区。在这个实施例中,具有平均等级高于预先设定团队等级的团队,例如被放置到一个较高的分区内。服务器104还可基于平均等级优势提供一团队的“不利条件”(handicap)。在一个实施例中,通过在竞赛者开始之前或在竞赛期间而未等竞赛者对编码问题进行回答便赋予团队中的竞赛者不利条件分数,服务器104提供这种不利条件。
在一些实施例中,服务器104使同一团队中竞赛者之间能够合作(collaboration),以便于团队中的每个竞赛者可以观看其它团队员的工作和/或进展。在另一实施例中,服务器104将各种队员的得分进行合计(即不准合作)以得到团队的得分。在一个实施例中,服务器104提供团队竞赛,其中一些或全部团队员必须使用由团队中其它队员所建立的计算机代码来建立用于提交的最终计算机代码。
在另一个实施例中,竞赛者进行有关硬件逻辑设计的竞赛。服务器104提供一编码问题,其要求每个竞赛者设计电子电路且当完成时提供此电路设计的计算机代码。然后利用测试数据作为对电路仿真的输入,所编码的电路可以被加以挑战。那么,代码的执行是对由代码所规定的电路仿真的执行。然后基于,例如电路的有效性(例如部件的数量、所设计的实施成本、最大的输入和响应速度等)、其响应相对于预先设定解的正确性、以及相对于测试数据的成功,服务器104可以给竞赛者授予分数。电路编码问题的简单实例将是利用数字硬件域中规定的逻辑门进行八位乘法电路(即将两个数相乘的电路)的设计、或进行模拟域中低通滤波器的设计。同样,本发明的系统和方法可以被应用到其它计算机和非计算机学科的编码中。如果结果可以被编码,则被执行的或被仿真的代码以及上述所说明的原理是适用的。例如,在土木工程中领域,借助于合适的工具,桥梁设计的一部分(例如支撑构架)可以被加以编码且在仿真期间利用测试应力可以测试被编码的设计。在航空工程领域,飞机机翼升降舵的设计可以被编码且在模拟期间结果经受各种输入(例如机翼的移动、角度等)。因此,利用适合的编码工具、编译器以及执行环境,所说明的方法和系统可以被扩展到各种学科的编码中。
本领域中的那些普通技术人员将想到在此所说明内容的变动、修改及其它实施,而不偏离所提出权利保护的本发明的实质及范围。因而,本发明并不由先前的示例性说明而是由下述权利要求的实质及范围来定义。

Claims (77)

1.一种用于提供编码竞赛的方法包括:
(a)通过通信网络向竞赛者传递编码问题;
(b)接收响应于通过通信网络所传递的编码问题由至少竞赛者之一所开发的计算机代码;
(c)确定所接收的计算机代码对由非所述竞赛者一方提交的测试数据的响应;
(d)评估所确定的计算机代码对测试数据的响应。
2.根据权利要求1的方法,其中步骤(b)进一步包括从多个竞赛者接收计算机代码。
3.根据权利要求1的方法,其中所述的评估步骤(d)包括:
确定参考代码对测试数据的参考响应;以及
将已确定的所接收计算机代码对测试数据的响应与已确定的参考代码对测试数据的参考响应相比较。
4.根据权利要求1的方法,其中评估步骤(d)包括评估至少所确定响应的正确性、所确定响应的精确性、以及所确定响应的速度中的一个。
5.根据权利要求1的方法进一步包括这样的步骤,即基于所述对已确定的计算机代码对测试数据响应的评估给至少竞赛者之一授予分数。
6.根据权利要求5的方法进一步包括:基于授予竞赛者的分数向至少竞赛者之一赋予等级。
7.根据权利要求1的方法进一步包括:在传递计算机编码问题的步骤之前,要求竞赛者参加资格检定测试。
8.根据权利要求7的方法,其中要求完成资格检定测试的步骤包括被确定的竞赛者资格检定测试得分高于预先设定值。
9.根据权利要求8的方法进一步包括:在传递步骤之前,为已经获得了被确定高于预先设定值的资格检定测试得分的每个竞赛者递增竞赛计数器。
10.根据权利要求9的方法进一步包括:当编码竞赛的竞赛计数器到达了预先设定值时,即使其它竞赛者已经获得了高于预先设定值的所确定的资格检定测试得分,也对其它竞赛者关闭编码竞赛。
11.根据权利要求1的方法进一步包括:在传递计算机编码问题的步骤之前,将竞赛者分配到一个分区的这一步骤。
12.根据权利要求11的方法,其中将竞赛者分配到一个分区的步骤进一步包括将竞赛者分配到下述之一:
(i)第一分区,用于从前已经获得等级高于第一预先设定分区等级的竞赛者;以及
(ii)第二分区,用于具有等级基本上等于零或低于第二预先设定分区等级的竞赛者。
13.根据权利要求12的方法,其中所述第一预先设定等级和所述第二预先设定等级是相同的等级。
14.根据权利要求12的方法,所述方法进一步包括:将竞赛者分配到所述第一分区、所述第二分区、以及第三分区中的一个,所述第三分区是针对具有等级高于所述第二预先设定等级但低于所述第一预先设定等级的竞赛者。
15.根据权利要求12的方法,其中所述步骤(a)传递计算机编码问题进一步包括:相对于被分配到所述第一分区的竞赛者,向被分配到所述第二分区的竞赛者传递难度较小的编码问题。
16.根据权利要求1的方法,其中所述步骤(c)确定所接收的计算机代码对由非所述竞赛者的一挑战方提交的测试数据的响应进一步包括:从竞赛者之一接收测试数据。
17.根据权利要求1的方法,其中所述步骤(c)确定所接收的计算机代码对由非所述竞赛者的一挑战方提交的测试数据的响应进一步包括:从观众接收测试数据。
18.根据权利要求1的方法,其中所述步骤(c)确定所接收的计算机代码对由非所述竞赛者的一挑战方提交的测试数据的响应进一步包括:产生测试数据。
19.根据权利要求1的方法,其中所述步骤(c)确定所接收的计算机代码对由非所述竞赛者的一挑战方提交的测试数据的响应进一步包括:确定计算机代码对预先设定的测试数据的响应。
20.根据权利要求1的方法,其中所述通信网络是因特网。
21.根据权利要求1的方法,其中所述通信网络是内联网。
22.根据权利要求1的方法,其中所述通信网络是局域网。
23.根据权利要求1的方法,其中所述通信网络是宽域网。
24.根据权利要求1的方法,其中计算机代码是源代码,且其中所述方法进一步包括:在步骤(c)之前对源代码进行编译由此产生可执行的代码的步骤;以及其中步骤(d)包括确定被编译的可执行代码对测试数据的响应。
25.根据权利要求1的方法,其中步骤(b)进一步包括接收用C++编程语言所写的计算机代码。
26.根据权利要求1的方法,其中步骤(b)进一步包括接收用C#编程语言所写的计算机代码。
27.根据权利要求1的方法,其中步骤(b)包括接收作为模型的计算机代码,所述模型可以被前向工程为机器可读格式用于检测目的,以及其中步骤(c)包括测试所述模型的机器可读格式。
28.根据权利要求1的方法,其中步骤(b)进一步包括接收作为被解释代码的计算机代码。
29.根据权利要求28的方法,其中步骤(b)进一步包括接收以Java编程语言所写的计算机代码。
30.根据权利要求1的方法,其中步骤(b)进一步包括接收包括工程设计的计算机代码,以及其中步骤(c)包括仿真所述工程设计。
31.根据权利要求30的方法,其中所述工程设计包括一电子电路设计。
32.根据权利要求1的方法,所述方法步骤(a)-(d)首先在实际会话内且其次在竞赛中被重复。
33.根据权利要求1的方法,其中
步骤(a)包括:将编码问题传递到至少两个竞赛者团队;
步骤(b)包括:接收由至少所述竞赛者团队之一所开发的计算机代码;以及
步骤(c)包括:确定所接收的计算机代码对从一方所接收到的测试数据的响应,所述方不是开发所述计算机代码的团队的一部分。
34.根据权利要求1的方法,其中传递步骤(a)在两个或多个存在的竞赛者的请求下而发生。
35.根据权利要求1的方法,其中步骤(a)在一预先设定的时间发生。
36.一种用于评估竞赛者技能水平的方法包括:
(a)在竞赛期间电子地将编码问题通信到竞赛者;
(b)在竞赛期间从竞赛者之一电子地接收响应于编码问题的计算机代码;
(c)自动地评估所接收的计算机代码;
(d)基于所接收的计算机代码给竞赛者授予分数;以及
(e)基于授予竞赛者的分数值确定竞赛者的等级。
37.根据权利要求36的方法,其中步骤(e)进一步包括:基于竞赛者从前的等级及接收到编码问题的竞赛者总数量来确定竞赛的平均等级。
38.根据权利要求37的方法,其中步骤(e)进一步包括:基于竞赛者从前的等级、接收到编码问题的竞赛者总数量、以及竞赛者等级的变动性当中至少之一,确定所述竞赛的竞赛因数。
39.根据权利要求38的方法,其中步骤(e)进一步包括:基于竞赛者从前的等级确定竞赛者的技能。
40.根据权利要求39的方法,其中步骤(e)进一步包括:基于竞赛者等级的变动性确定一竞赛者相对于其它竞赛者的偏差值。
41.根据权利要求40的方法,其中步骤(e)进一步包括:估算在竞赛中较其它竞赛者授予一竞赛者较高分数的概率。
42.根据权利要求41的方法,其中步骤(e)进一步包括:计算至少竞赛者的预计性能、预计名次、以及实际表现中的一个。
43.根据权利要求42方法,其中步骤(e)进一步包括:计算至少竞赛者的新变动性及新等级中的一个。
44.根据权利要求43的方法进一步包括:确定竞赛者的最大等级增加。
45.根据权利要求44的方法进一步包括:确定竞赛者的竞赛加权效果。
46.根据权利要求36的方法,其中确定竞赛者等级的这个步骤进一步包括:随着竞赛者已经被评定等级的频率在增加以更小的增量来调节等级。
47.一种用于向潜在雇主提供竞赛者信息的方法包括:从竞赛者接收竞赛者信息用于输入到在线编码竞赛中;
(a)提供竞赛者之间的在线编码竞赛;
(b)基于在在线编码竞赛中的表现给每个竞赛者赋予等级;以及
(c)向竞赛者的潜在雇主提供至少一些竞赛者信息及至少一个竞赛者被赋予的等级。
48.根据权利要求47的方法,其中步骤(c)进一步包括:基于在在线竞赛中的表现给竞赛者授予分数。
49.根据权利要求47的方法,其中竞赛者信息进一步包括:至少竞赛者的家族地址、电话号码、工作地址、电子信箱地址、职业经历、工作历史、及某些人口统计信息中的一个。
50.一种用于向竞赛者授予奖励的方法包括:
(a)提供在竞赛者之间的在线编码竞赛;
(b)基于在在线编码竞赛中的表现给每个竞赛者授予分数值;以及
(c)响应于所授予的分数值向至少一个竞赛者授予至少一个奖励。
51.根据权利要求50的方法,其中所述方法包括:向已经被授予分数值高于预先设定奖励分数值的竞赛者授予奖励,其中所述被授予的奖励取决于相对于预先设定奖励分数值的被授予分数。
52.根据权利要求50的方法,其中所述被授予的奖励是至少金钱奖励、有形的物品、与有前景的雇主的面试、及雇佣开价中的一个。
53.一种用于在编码竞赛中做广告的方法包括:
(a)从竞赛者接收竞赛者信息用于输入到在线编码竞赛中;
(b)提供竞赛者之间的至少一个在线编码竞赛;
(c)在至少一个竞赛中提供给每个竞赛者至少一个用于观看的广告;
(d)跟踪每个竞赛者对至少一个广告的观看时间;以及
(e)向广告商提供至少一些竞赛者信息及至少一个广告的观看时间。
54.根据权利要求53的方法进一步包括这样的步骤,即基于在在线编码竞赛中的表现赋予给每个竞赛者等级。
55.根据权利要求54的方法,其中竞赛者信息提供步骤(e)进一步包括提供竞赛者的等级。
56.根据权利要求53的方法,其中所述竞赛者信息在竞赛者信息提供步骤(e)中以总计形式被提供。
57.根据权利要求53的方法,其中在至少一个竞赛期间给每个竞赛者提供至少一个用于观看的广告的步骤包括:响应于竞赛者信息选择由至少一个竞赛者观看的广告。
58.一种用于提供编码竞赛的装置,所述装置包括:
(a)一个由竞赛者所使用、用于与网浏览器通信的网服务器,以提供有关编码竞赛的信息;
(b)一个由竞赛者所使用、与客户软件通信的客户接口服务器,所述客户接口服务器使编码问题能够传递到客户软件且能够接收到至少客户请求及响应于编码问题的计算机代码中的一个;
(c)一个与网服务器和客户接口服务器通信的应用服务器,以解释至少客户请求、竞赛请求、及计算机代码当中的一个;以及
(d)一个与应用服务器通信的竞赛服务器,以至少进行编译计算机代码、执行计算机代码、测试计算机代码、以及计算竞赛者的等级中的一个。
59.根据权利要求58的装置进一步包括与应用服务器通信的一个数据库服务器,以响应于至少客户请求、竞赛请求、及计算机代码中的一个来检索数据。
60.一种用于确定编码竞赛者的编码技能水平的装置,所述装置包括:
(a)一个用于向竞赛者提供竞赛通信的客户-服务器接口,用于输入到具有多个竞赛者的编码竞赛中;
(b)一个用于从竞赛者接收请求的接收器;以及
(c)一个与所述接收器通信的竞赛服务器层,通过至少证实所述请求和确定所述竞赛者相对于多个竞赛者的等级中的一个来确定竞赛者的编码技能水平。
61.根据权利要求60的装置进一步包括一个与所述接收器通信的应用服务器层,以解释响应。
62.根据权利要求61的装置,其中所述应用服务器层进一步包括一个与所述接收器通信的消息队列处理器,以将请求进行排队用于由竞赛服务器层来操作。
63.根据权利要求62的装置,其中所述消息队列处理器与竞赛服务器层通信,以将请求传递到竞赛服务器层。
64.根据权利要求60的装置,其中所述接收器进一步包括一个网服务器层。
65.根据权利要求60的装置,其中所述接收器进一步包括一个客户接口服务器层。
66.根据权利要求65的装置,其中所述客户接口服务器层进一步包括一个用于向客户-服务器接口提供接口的接口连接。
67.根据权利要求60的装置,其中所述客户-服务器接口进一步包括至少网浏览器和客户软件中的一个。
68.根据权利要求60的装置,其中所述客户接口服务器层进一步包括一个与所述接口连接通信的接口服务器管理器,以管理至少与接口连接通信的分配和操作中的一个。
69.根据权利要求60的装置,其中所述客户接口服务器层进一步包括一个与接口连接通信的接口服务器处理,以提供与应用服务器层的通信。
70.根据权利要求60的装置,其中所述竞赛通信进一步包括一个编码问题。
71.根据权利要求60的装置,其中所述请求进一步包括对所述编码问题的响应。
72.根据权利要求60的装置,其中所述应用服务器层进一步包括一个与网服务器层通信的servlet引擎。
73.根据权利要求72的装置进一步包括一个与应用服务器层通信的数据库服务器层。
74.根据权利要求72的装置,其中所述应用服务器层进一步包括一个数据访问层,以响应于至少所述请求和对所述请求的解释中的一个来访问数据。
75.根据权利要求74的装置,其中所述数据库服务器层与所述数据访问层通信。
76.根据权利要求60的装置,其中所述竞赛服务器层进一步包括至少等级引擎、代码编译引擎、及代码测试引擎中的一个。
77.根据权利要求76的装置,其中所述竞赛服务器层与所述消息队列处理器通信。
CNA028062396A 2001-01-09 2002-01-08 用于编码竞赛的系统和方法 Pending CN1503951A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26061001P 2001-01-09 2001-01-09
US60/260,610 2001-01-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2010101495003A Division CN102024347A (zh) 2001-01-09 2002-01-08 用于编码竞赛的系统和方法

Publications (1)

Publication Number Publication Date
CN1503951A true CN1503951A (zh) 2004-06-09

Family

ID=22989864

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2010101495003A Pending CN102024347A (zh) 2001-01-09 2002-01-08 用于编码竞赛的系统和方法
CNA028062396A Pending CN1503951A (zh) 2001-01-09 2002-01-08 用于编码竞赛的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2010101495003A Pending CN102024347A (zh) 2001-01-09 2002-01-08 用于编码竞赛的系统和方法

Country Status (5)

Country Link
US (10) US6569012B2 (zh)
CN (2) CN102024347A (zh)
AU (1) AU2002245226A1 (zh)
CA (1) CA2434251A1 (zh)
WO (1) WO2002056144A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077227A (zh) * 2014-07-08 2014-10-01 大连海事大学 一种基于b/s架构的程序源代码的评判系统及方法
CN105427695A (zh) * 2015-11-03 2016-03-23 中国农业大学 编程类考题自动测评方法和系统
CN109343912A (zh) * 2018-09-30 2019-02-15 深圳大学 在线竞赛方法、装置及服务器

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3622144B2 (ja) * 2000-05-30 2005-02-23 コナミ株式会社 個人識別情報通信方法及び無線システム
CN102024347A (zh) 2001-01-09 2011-04-20 托普科德公司 用于编码竞赛的系统和方法
US7921033B2 (en) * 2001-01-29 2011-04-05 Microsoft Corporation System and method for high-density interactive voting using a computer network
CA2340562A1 (en) * 2001-02-28 2002-08-28 Midway Amusement Games, Llc Tournament network for linking amusement games
GB2372903A (en) * 2001-02-28 2002-09-04 Telepathix Ltd Methods for registering and notifying wireless devices
US7153211B2 (en) * 2001-07-10 2006-12-26 Bect Power, Inc. Method and system to optimize group achievement employing group members' collective intelligence
US7416488B2 (en) * 2001-07-18 2008-08-26 Duplicate (2007) Inc. System and method for playing a game of skill
US6999083B2 (en) * 2001-08-22 2006-02-14 Microsoft Corporation System and method to provide a spectator experience for networked gaming
US20030070178A1 (en) * 2001-09-09 2003-04-10 Boyd Robert A. Poker tournament system
US20030154117A1 (en) * 2002-02-12 2003-08-14 Willard Mary Joan Method and system for job-placement of disabled workers
US20030171982A1 (en) * 2002-03-06 2003-09-11 Paul Clinton R. Process of finding the best rap musicians
EP1493133A4 (en) * 2002-04-04 2006-09-27 Yahoo Inc ONLINE TEAMS AND TOURNAMENTS SYSTEM
US20060248504A1 (en) * 2002-04-08 2006-11-02 Hughes John M Systems and methods for software development
US7778866B2 (en) * 2002-04-08 2010-08-17 Topcoder, Inc. Systems and methods for software development
US8776042B2 (en) * 2002-04-08 2014-07-08 Topcoder, Inc. Systems and methods for software support
WO2003088119A1 (en) * 2002-04-08 2003-10-23 Topcoder, Inc. System and method for soliciting proposals for software development services
JP3561511B2 (ja) * 2002-05-14 2004-09-02 株式会社スクウェア・エニックス ネットワークゲームシステム、ゲームサーバ装置、ネットワークゲームの進行方法、プログラム及び記録媒体
US20030225610A1 (en) * 2002-05-30 2003-12-04 Doyle Jay Bradley Method for motivating persons in a business field
US7422521B2 (en) * 2002-07-08 2008-09-09 Duplicate (2007) Inc. Method of determining skill level in a tournament setting
WO2004060511A1 (en) * 2002-12-31 2004-07-22 Qp Games Inc. Game and method for electronic interactive media
US7104542B2 (en) * 2003-06-09 2006-09-12 Peterson Randall S E Pull-tab skill tournament poker
US6968243B1 (en) * 2003-06-17 2005-11-22 Je Seon Oh Competition judging system
JP3686415B2 (ja) * 2003-11-10 2005-08-24 コナミ株式会社 ゲーム装置、ゲーム方法、及びゲームプログラム
US20050149401A1 (en) * 2004-01-07 2005-07-07 Ratcliffe Paul L. System and method for an intellectual property collaboration network
EP1716483A4 (en) * 2004-01-15 2008-07-16 Topcoder Inc SYSTEMS AND METHODS FOR SOFTWARE DEVELOPMENT
US20050209717A1 (en) * 2004-03-08 2005-09-22 Flint Michael S Competitor evaluation method and apparatus
US20080268417A1 (en) * 2004-03-30 2008-10-30 Peter Hearn Method and System for On-Line and In-Person Skills Training
US20050267520A1 (en) 2004-05-12 2005-12-01 Modesitt D B Access and closure device and method
US9552599B1 (en) * 2004-09-10 2017-01-24 Deem, Inc. Platform for multi-service procurement
US20060055113A1 (en) * 2004-09-14 2006-03-16 Zone4Play, Inc. Multiplayer card tournaments and methods
WO2006062022A1 (ja) * 2004-12-10 2006-06-15 Konami Digital Entertainment Co., Ltd. ゲーム進行管理方法、及びその装置
US7962461B2 (en) * 2004-12-14 2011-06-14 Google Inc. Method and system for finding and aggregating reviews for a product
US8175726B2 (en) 2005-01-24 2012-05-08 Microsoft Corporation Seeding in a skill scoring framework
US7050868B1 (en) * 2005-01-24 2006-05-23 Microsoft Corporation Bayesian scoring
US7846024B2 (en) * 2005-01-24 2010-12-07 Micorsoft Corporation Team matching
US20070088601A1 (en) * 2005-04-09 2007-04-19 Hirevue On-line interview processing
US20060247060A1 (en) * 2005-04-15 2006-11-02 Larry Hanson Internet professional sports
US8241325B2 (en) * 2005-05-12 2012-08-14 Arstasis, Inc. Access and closure device and method
US8517742B1 (en) * 2005-05-17 2013-08-27 American Express Travel Related Services Company, Inc. Labor resource testing system and method
US20060292540A1 (en) * 2005-06-01 2006-12-28 Ehmann David M Apparatus for forming a select talent group and method of forming the same
JP5078238B2 (ja) * 2005-06-15 2012-11-21 任天堂株式会社 ゲームプログラムおよびゲーム装置
US20070135951A1 (en) * 2005-07-18 2007-06-14 Pinhas Romik Systems and methods for conducting skill-based game tournaments
US7494410B2 (en) * 2005-07-20 2009-02-24 Duplicate (2007) Inc. System and method for skill based games of chance
US20070028272A1 (en) * 2005-08-01 2007-02-01 Airplay Network, Inc. Live television show utilizing real-time input from a viewing audience
US20070077975A1 (en) * 2005-08-15 2007-04-05 Roswitha Warda Software application for conducting online knowledge-based competitions
US7865423B2 (en) * 2005-08-16 2011-01-04 Bridgetech Capital, Inc. Systems and methods for providing investment opportunities
US20070077993A1 (en) * 2005-09-30 2007-04-05 Midgley Timothy M Method and apparatus for collecting user game play data and crediting users in a gaming environment
US20070077992A1 (en) * 2005-09-30 2007-04-05 Midgley Timothy M Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment
JP2009512019A (ja) * 2005-10-06 2009-03-19 ヴェルジェンス エンターテインメント エルエルシー, ア カリフォルニア リミテッド ライアビリティー カンパニー 実質的に同時のアラートと、間欠的なコンテストにおけるその利用
US9117223B1 (en) 2005-12-28 2015-08-25 Deem, Inc. Method and system for resource planning for service provider
US9056251B2 (en) 2006-01-10 2015-06-16 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
US8002618B1 (en) 2006-01-10 2011-08-23 Winview, Inc. Method of and system for conducting multiple contests of skill with a single performance
EP1999662A4 (en) * 2006-01-20 2010-10-13 Topcoder Inc SYSTEM AND METHOD FOR CREATING DESIGNS
EP1862955A1 (en) * 2006-02-10 2007-12-05 Microsoft Corporation Determining relative skills of players
US20070191101A1 (en) * 2006-02-16 2007-08-16 Microsoft Corporation Quickly providing good matchups
US20070220479A1 (en) * 2006-03-14 2007-09-20 Hughes John M Systems and methods for software development
US20070217430A1 (en) * 2006-03-20 2007-09-20 Cisco Technology, Inc. Method and system for initiating communications
US20070250378A1 (en) * 2006-04-24 2007-10-25 Hughes John M Systems and methods for conducting production competitions
US10783458B2 (en) * 2006-05-01 2020-09-22 Topcoder, Inc. Systems and methods for screening submissions in production competitions
US20080052146A1 (en) * 2006-05-01 2008-02-28 David Messinger Project management system
US20070281285A1 (en) * 2006-05-30 2007-12-06 Surya Jayaweera Educational Interactive Video Game and Method for Enhancing Gaming Experience Beyond a Mobile Gaming Device Platform
US7689302B2 (en) * 2006-06-13 2010-03-30 Igt Server based gaming system and method for selectively providing one or more different tournaments
US7762557B2 (en) * 2006-09-06 2010-07-27 Gregory Davidzon Trivia game and method of play
US8713513B2 (en) * 2006-12-13 2014-04-29 Infosys Limited Evaluating programmer efficiency in maintaining software systems
US8676605B2 (en) * 2006-12-20 2014-03-18 Artificial Medical Intelligence, Inc. Delphi method for medical coding
US20080167960A1 (en) * 2007-01-08 2008-07-10 Topcoder, Inc. System and Method for Collective Response Aggregation
US20080196000A1 (en) * 2007-02-14 2008-08-14 Fernandez-Lvern Javier System and method for software development
US20080281616A1 (en) * 2007-02-27 2008-11-13 Cameron Johnson Innovation system
US20080222699A1 (en) * 2007-03-06 2008-09-11 Barry Sohl System and Method for Extensible Lobby Services
US20080222055A1 (en) * 2007-03-07 2008-09-11 Hughes John M System and Method for Creating Musical Works
US20080220872A1 (en) * 2007-03-08 2008-09-11 Timothy Michael Midgley Method and apparatus for issuing a challenge prompt in a gaming environment
US20080220869A1 (en) * 2007-03-08 2008-09-11 Timothy Michael Midgley Method and apparatus for providing game guide data in a gaming environment
US20080220854A1 (en) * 2007-03-08 2008-09-11 Timothy Michael Midgley Method and apparatus for collecting user game play data and crediting users in an online gaming environment
US8073792B2 (en) * 2007-03-13 2011-12-06 Topcoder, Inc. System and method for content development
US7991624B2 (en) * 2007-10-31 2011-08-02 Article One Partners Holdings Method and system for the requesting receipt and exchange of information
US8074205B2 (en) * 2007-04-18 2011-12-06 Microsoft Corporation Binary verification service
US7979145B1 (en) 2007-04-24 2011-07-12 Beck Keith E Method of script selection
IL184224A0 (en) * 2007-06-26 2008-01-20 Charles & Paul Ltd Prize allocation and notification regarding electronic games ranking
WO2009002997A2 (en) * 2007-06-26 2008-12-31 Topcoder, Inc. System and method for distributed software testing
US20090069089A1 (en) * 2007-09-06 2009-03-12 Piccioni Robert L Method and System For Virtual Competition
US8209209B2 (en) * 2007-10-02 2012-06-26 Incontact, Inc. Providing work, training, and incentives to company representatives in contact handling systems
US20090093287A1 (en) * 2007-10-09 2009-04-09 Microsoft Corporation Determining Relative Player Skills and Draw Margins
US20090098937A1 (en) * 2007-10-12 2009-04-16 Microsoft Corporation Adaptive tree visualization for tournament-style brackets
US8813112B1 (en) 2007-10-23 2014-08-19 Winview, Inc. Method of and apparatus for utilizing SMS while running an application on a mobile device controlling a viewer's participation with a broadcast
US20090112704A1 (en) * 2007-10-30 2009-04-30 International Business Machines Corporation Management tool for efficient allocation of skills and resources
US20090192849A1 (en) * 2007-11-09 2009-07-30 Hughes John M System and method for software development
US8897737B2 (en) * 2007-12-17 2014-11-25 Play Megaphone System and method for managing interaction between a user and an interactive system
WO2009089447A1 (en) * 2008-01-11 2009-07-16 Topcoder, Inc. System and method for conducting competitions
US9177485B2 (en) * 2008-01-11 2015-11-03 Infosys Limited Method and system for automatically generating questions for a programming language
WO2009102728A1 (en) * 2008-02-11 2009-08-20 Clearshift Corporation Online work management system
US8244705B1 (en) 2008-02-22 2012-08-14 Adobe Systems Incorporated Rating system and spatial searching therein
US20090217246A1 (en) * 2008-02-27 2009-08-27 Nce Technologies, Inc. Evaluating Software Programming Skills
US8641515B2 (en) * 2008-05-07 2014-02-04 Igt Gaming system and method for providing automated casino-style table tournaments
AU2009274127A1 (en) 2008-07-21 2010-01-28 Arstasis, Inc. Devices, methods, and kits for forming tracts in tissue
US9087308B2 (en) * 2008-07-25 2015-07-21 Appirio, Inc. System and method for conducting competitions
US9002721B2 (en) * 2008-10-08 2015-04-07 Appirio, Inc. System and method for project management and completion
US10603489B2 (en) 2008-10-09 2020-03-31 Virender K. Sharma Methods and apparatuses for stimulating blood vessels in order to control, treat, and/or prevent a hemorrhage
WO2010042686A1 (en) 2008-10-09 2010-04-15 Sharma Virender K Method and apparatus for stimulating the vascular system
US20100174603A1 (en) * 2008-10-14 2010-07-08 Robert Hughes System and Method for Advertising Placement and/or Web Site Optimization
US20100131322A1 (en) * 2008-11-21 2010-05-27 Computer Associates Think, Inc. System and Method for Managing Resources that Affect a Service
WO2010118472A1 (en) * 2009-04-17 2010-10-21 Stsa Australia Pty Ltd System and method for automated skills assessment
US10552849B2 (en) 2009-04-30 2020-02-04 Deem, Inc. System and method for offering, tracking and promoting loyalty rewards
US20100299650A1 (en) * 2009-05-20 2010-11-25 International Business Machines Corporation Team and individual performance in the development and maintenance of software
US20100121650A1 (en) * 2009-06-19 2010-05-13 Hughes John M System and method for content development
US8408912B2 (en) * 2009-07-06 2013-04-02 Jobookit Technologies Ltd. Computerized testing system for evaluating skills of formatted product producers and methods useful in conjunction therewith
US8419546B2 (en) 2009-08-31 2013-04-16 Igt Gaming system and method for selectively providing an elimination tournament that funds an award through expected values of unplayed tournament games of eliminated players
US9770654B1 (en) * 2009-09-30 2017-09-26 Amazon Technologies, Inc. Cross device operation of games
EP2483883A4 (en) * 2009-10-02 2015-11-18 Axonify Inc SYSTEM AND METHOD FOR TRAINING WITH IRRITATION-BASED MICRO-LEARNING
US8265976B2 (en) * 2009-12-31 2012-09-11 International Business Machines Corporation Assessment of skills of a user
US9311056B2 (en) * 2010-08-06 2016-04-12 International Business Machines Corporation Automated analysis of code developer's profile
US20120149458A1 (en) * 2010-08-23 2012-06-14 Holiday Golf International, Inc. Networked sports simulator and method
CN102480407B (zh) * 2010-11-24 2016-04-06 杭州边锋网络技术有限公司 通过“随机数”让用户公平进入队列的方法
US9199172B2 (en) 2011-01-25 2015-12-01 International Business Machines Corporation System for software work events
US7991632B1 (en) 2011-01-28 2011-08-02 Fmr Llc Method and system for allocation of resources in a project portfolio
US11087247B2 (en) 2011-03-23 2021-08-10 Figure Eight Technologies, Inc. Dynamic optimization for data quality control in crowd sourcing tasks to crowd labor
US20120271675A1 (en) * 2011-04-19 2012-10-25 Alpine Access, Inc. Dynamic candidate organization system
US9449288B2 (en) 2011-05-20 2016-09-20 Deem, Inc. Travel services search
US20120303422A1 (en) * 2011-05-27 2012-11-29 Diran Li Computer-Implemented Systems And Methods For Ranking Results Based On Voting And Filtering
US20130065694A1 (en) * 2011-09-13 2013-03-14 Electronics And Telecommunications Research Institute Method for performance test of online game server
US8788627B2 (en) 2011-09-30 2014-07-22 Apple Inc. Interactive web application framework
US9729631B2 (en) 2011-09-30 2017-08-08 Apple Inc. Asynchronous data manipulation
US9542168B2 (en) * 2011-11-10 2017-01-10 Microsoft Technology Licensing Llc Hostable compiler utilizing type information from a host application
US11568334B2 (en) 2012-03-01 2023-01-31 Figure Eight Technologies, Inc. Adaptive workflow definition of crowd sourced tasks and quality control mechanisms for multiple business applications
US8678932B2 (en) * 2012-03-12 2014-03-25 Brian M. Alman Online skill competition system with competitive consumer judging and method
US20130317438A1 (en) 2012-05-25 2013-11-28 Arstasis, Inc. Vascular access configuration
US20130317481A1 (en) 2012-05-25 2013-11-28 Arstasis, Inc. Vascular access configuration
US8875093B2 (en) * 2012-06-13 2014-10-28 International Business Machines Corporation Instantiating a coding competition to develop a program module in a networked computing environment
US10035060B1 (en) * 2012-06-13 2018-07-31 John Swyers Method and system for controlling auto races
US9104995B1 (en) * 2012-09-28 2015-08-11 Emc Corporation Subject and audience oriented instant collaborative development
US20140095399A1 (en) * 2012-10-02 2014-04-03 Matthew J. Smith Competition-based method of ranking job candidates
US20140113257A1 (en) * 2012-10-18 2014-04-24 Alexey N. Spiridonov Automated evaluation of programming code
US20140113259A1 (en) * 2012-10-23 2014-04-24 Trueability, Inc. System and Method for Reliable, Adaptive, and Objective Skills Based Testing
US8788074B1 (en) * 2012-10-23 2014-07-22 Google Inc. Estimating player skill in games
US9595205B2 (en) * 2012-12-18 2017-03-14 Neuron Fuel, Inc. Systems and methods for goal-based programming instruction
US9757656B2 (en) * 2013-02-08 2017-09-12 Mark Tsang Online based system and method of determining one or more winners utilizing a progressive cascade of elimination contests
US8663017B1 (en) * 2013-03-15 2014-03-04 International Awards Group, LLC Matrix judging systems and methods
US20140289697A1 (en) * 2013-03-21 2014-09-25 The Procter & Gamble Company Systems and Methods for Software Development
CN104102649A (zh) * 2013-04-07 2014-10-15 阿里巴巴集团控股有限公司 一种对网站用户进行分级的方法和装置
US20160103754A1 (en) * 2013-06-24 2016-04-14 Aspiring Minds Assessment Private Limited Method and system for grading a computer program
CN104517166A (zh) * 2013-09-29 2015-04-15 顾山林 应聘者技能评估方法、装置及系统
US10522124B2 (en) * 2013-10-30 2019-12-31 Harman Becker Automotive Systems Gmbh Infotainment system
US10307644B2 (en) 2013-11-05 2019-06-04 Halcyonic, LLC Virtual competition environment
US20150126333A1 (en) * 2013-11-05 2015-05-07 Halcyonic, LLC Virtual competition environment
US20180247563A1 (en) * 2014-11-18 2018-08-30 Secure Code Warrior Limited Training systems for secure software code
US9844726B2 (en) * 2014-12-04 2017-12-19 Deltadna Limited Games analytics
US20160158648A1 (en) * 2014-12-05 2016-06-09 Disney Enterprises, Inc. Automated selective scoring of user-generated content
US9916224B2 (en) * 2015-09-15 2018-03-13 Linkedin Corporation Integrating quality analysis with a code review tool
US10032338B2 (en) 2015-09-23 2018-07-24 Igt Gaming system and method providing a gaming tournament having a variable average expected point payout
US10229612B2 (en) * 2015-10-07 2019-03-12 Coursera Inc. Secure computer-implemented execution and evaluation of programming assignments for on demand courses
US10771514B2 (en) 2015-11-12 2020-09-08 Disney Enterprises, Inc. Systems and methods for facilitating the sharing of user-generated content of a virtual space
US10086276B2 (en) 2015-12-03 2018-10-02 Disney Enterprises, Inc. Systems and methods for procedural game content generation via interactive non-player game entities
US11650903B2 (en) * 2016-01-28 2023-05-16 Codesignal, Inc. Computer programming assessment
CN105897732A (zh) * 2016-05-12 2016-08-24 湖南汇博电子技术有限公司 一种通过网络进行竞赛的方法和服务器
US20180077092A1 (en) * 2016-09-09 2018-03-15 Tariq JALIL Method and system for facilitating user collaboration
US11218431B2 (en) 2016-09-09 2022-01-04 Tariq JALIL Method and system for facilitating user collaboration
US10424162B2 (en) 2016-09-23 2019-09-24 Igt Gaming system and method providing a gaming tournament with a dynamic equalizer feature
TWI606349B (zh) 2016-12-21 2017-11-21 財團法人工業技術研究院 線上雲端服務處理系統與線上評測方法及其電腦程式產品
EP3563577A1 (en) * 2016-12-27 2019-11-06 Koninklijke KPN N.V. Identifying user devices for interactive media broadcast participation
US10891326B2 (en) 2017-01-05 2021-01-12 International Business Machines Corporation Representation of a data analysis using a flow graph
US10839304B2 (en) * 2017-01-25 2020-11-17 Pearson Education, Inc. Platform-agnostic Bayes net content aggregation system and method
US10388039B2 (en) 2017-05-31 2019-08-20 International Business Machines Corporation Accelerating data-driven scientific discovery
CN107423526A (zh) * 2017-08-21 2017-12-01 运城学院 一种嵌入式电子产品设计与制作联网实践竞赛平台
CN108876435A (zh) * 2018-05-25 2018-11-23 北京百度网讯科技有限公司 人工智能平台实现方法、装置、计算机设备及存储介质
US11062385B2 (en) * 2018-08-21 2021-07-13 International Business Machines Corporation Providing code offerings inside code
US10733838B2 (en) 2018-11-16 2020-08-04 Igt Gaming system and method providing tournament-style free activation feature
US11551571B2 (en) 2018-11-27 2023-01-10 Future Engineers System and method for managing innovation challenges
US11636778B2 (en) * 2019-04-12 2023-04-25 Holberton, Inc. Correction of software coding projects
US11295059B2 (en) 2019-08-26 2022-04-05 Pluralsight Llc Adaptive processing and content control system
US11102530B2 (en) 2019-08-26 2021-08-24 Pluralsight Llc Adaptive processing and content control system
US11321644B2 (en) * 2020-01-22 2022-05-03 International Business Machines Corporation Software developer assignment utilizing contribution based mastery metrics
CN111346387A (zh) * 2020-03-30 2020-06-30 上海应用技术大学 高校电竞赛事监控方法
US11395954B2 (en) 2020-05-08 2022-07-26 Cheer Match Media, LLC Methods and apparatus for emulating live performance routine competition conditions without live competition staging
US11782819B2 (en) * 2020-07-15 2023-10-10 Microsoft Technology Licensing, Llc Program execution monitoring using deep memory tracing
EP4211672A1 (en) 2020-09-11 2023-07-19 Robotify Labs Limited A system, computer implemented method and computer program product for providing a virtual robotics programming competition
US11138007B1 (en) * 2020-12-16 2021-10-05 Mocha Technologies Inc. Pseudo coding platform
CN112783790B (zh) * 2021-02-04 2022-04-05 腾讯科技(深圳)有限公司 一种应用程序测试方法和装置
US11580824B2 (en) * 2021-03-29 2023-02-14 West Flagler Associates, Ltd. Multi-sport challenge systems and methods
US11935367B2 (en) * 2021-03-29 2024-03-19 West Flagler Associates, Ltd. Multi-sport challenge systems and methods

Family Cites Families (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525599A (en) 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
US5697844A (en) 1986-03-10 1997-12-16 Response Reward Systems, L.C. System and method for playing games and rewarding successful players
US5799320A (en) * 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5195033A (en) * 1990-06-08 1993-03-16 Assessment Systems, Inc. Testing system including removable storage means for transfer of test related data and means for issuing a certification upon successful completion of the test
US5963916A (en) * 1990-09-13 1999-10-05 Intouch Group, Inc. Network apparatus and method for preview of music products and compilation of market data
US5987149A (en) * 1992-07-08 1999-11-16 Uniscore Incorporated Method for scoring and control of scoring open-ended assessments using scorers in diverse locations
US5565316A (en) 1992-10-09 1996-10-15 Educational Testing Service System and method for computer based testing
US5794207A (en) 1996-09-04 1998-08-11 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers
CA2149660C (en) * 1993-09-30 1996-12-03 Roger C. Kershaw A centralized system and method for administering computer based tests
US6085978A (en) 1994-08-17 2000-07-11 Metrologic Instruments, Inc. Holographic laser scanners of modular construction and method and apparatus for designing and manufacturing the same
US5779549A (en) * 1996-04-22 1998-07-14 Walker Assest Management Limited Parnership Database driven online distributed tournament system
US6193610B1 (en) * 1996-01-05 2001-02-27 William Junkin Trust Interactive television system and methodology
US6264560B1 (en) 1996-01-19 2001-07-24 Sheldon F. Goldberg Method and system for playing games on a network
US5823879A (en) * 1996-01-19 1998-10-20 Sheldon F. Goldberg Network gaming system
US5835896A (en) 1996-03-29 1998-11-10 Onsale, Inc. Method and system for processing and transmitting electronic auction information
US5947747A (en) 1996-05-09 1999-09-07 Walker Asset Management Limited Partnership Method and apparatus for computer-based educational testing
US5995951A (en) 1996-06-04 1999-11-30 Recipio Network collaboration method and apparatus
US5862223A (en) * 1996-07-24 1999-01-19 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically-assisted commercial network system designed to facilitate and support expert-based commerce
US5933811A (en) * 1996-08-20 1999-08-03 Paul D. Angles System and method for delivering customized advertisements within interactive communication systems
US6293865B1 (en) 1996-11-14 2001-09-25 Arcade Planet, Inc. System, method and article of manufacture for tournament play in a network gaming system
CA2284912C (en) 1997-03-21 2009-02-24 Educational Testing Service System and method for on-line essay evaluation
US6012984A (en) * 1997-04-11 2000-01-11 Gamesville.Com,Inc. Systems for providing large arena games over computer networks
US6163805A (en) 1997-10-07 2000-12-19 Hewlett-Packard Company Distributed automated testing system
US5970475A (en) 1997-10-10 1999-10-19 Intelisys Electronic Commerce, Llc Electronic procurement system and method for trading partners
US6112049A (en) 1997-10-21 2000-08-29 The Riverside Publishing Company Computer network based testing system
US6088679A (en) 1997-12-01 2000-07-11 The United States Of America As Represented By The Secretary Of Commerce Workflow management employing role-based access control
US6267601B1 (en) 1997-12-05 2001-07-31 The Psychological Corporation Computerized system and method for teaching and assessing the holistic scoring of open-ended questions
US6010403A (en) 1997-12-05 2000-01-04 Lbe Technologies, Inc. System and method for displaying an interactive event
US6233332B1 (en) * 1998-06-03 2001-05-15 Avaya Technology Corp. System for context based media independent communications processing
US6397197B1 (en) 1998-08-26 2002-05-28 E-Lynxx Corporation Apparatus and method for obtaining lowest bid from information product vendors
US6636892B1 (en) 1998-09-11 2003-10-21 Lv Partners, L.P. Method for conducting a contest using a network
US6791588B1 (en) * 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for conducting a contest using a network
US6631404B1 (en) 1998-09-11 2003-10-07 Lv Partners, L.P. Method and system for conducting a contest using a network
US6230146B1 (en) 1998-09-18 2001-05-08 Freemarkets, Inc. Method and system for controlling closing times of electronic auctions involving multiple lots
US6301574B1 (en) 1998-11-06 2001-10-09 Efirms.Com, Inc. System for providing business information
US6055511A (en) * 1998-11-30 2000-04-25 Breault Research Organization, Inc. Computerized incentive compensation
US6513042B1 (en) 1999-02-11 2003-01-28 Test.Com Internet test-making method
US20020026321A1 (en) * 1999-02-26 2002-02-28 Sadeg M. Faris Internet-based system and method for fairly and securely enabling timed-constrained competition using globally time-sychronized client subsystems and information servers having microsecond client-event resolution
US6295513B1 (en) * 1999-03-16 2001-09-25 Eagle Engineering Of America, Inc. Network-based system for the manufacture of parts with a virtual collaborative environment for design, developement, and fabricator selection
US6963850B1 (en) 1999-04-09 2005-11-08 Amazon.Com, Inc. Computer services for assisting users in locating and evaluating items in an electronic catalog based on actions performed by members of specific user communities
US6434738B1 (en) 1999-04-22 2002-08-13 David Arnow System and method for testing computer software
US6174237B1 (en) 1999-05-21 2001-01-16 John H. Stephenson Method for a game of skill tournament
US6718535B1 (en) 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US6662194B1 (en) 1999-07-31 2003-12-09 Raymond Anthony Joao Apparatus and method for providing recruitment information
US6431875B1 (en) * 1999-08-12 2002-08-13 Test And Evaluation Software Technologies Method for developing and administering tests over a network
US6356909B1 (en) 1999-08-23 2002-03-12 Proposal Technologies Network, Inc. Web based system for managing request for proposal and responses
US20010032170A1 (en) 1999-08-24 2001-10-18 Sheth Beerud D. Method and system for an on-line private marketplace
US6345239B1 (en) 1999-08-31 2002-02-05 Accenture Llp Remote demonstration of business capabilities in an e-commerce environment
US6427132B1 (en) 1999-08-31 2002-07-30 Accenture Llp System, method and article of manufacture for demonstrating E-commerce capabilities via a simulation on a network
US7139999B2 (en) 1999-08-31 2006-11-21 Accenture Llp Development architecture framework
US6606615B1 (en) * 1999-09-08 2003-08-12 C4Cast.Com, Inc. Forecasting contest
US6532448B1 (en) 1999-11-19 2003-03-11 Insightful Corporation Contest server
US6341212B1 (en) * 1999-12-17 2002-01-22 Virginia Foundation For Independent Colleges System and method for certifying information technology skill through internet distribution examination
AU3076801A (en) 1999-12-27 2001-07-09 Pitchware, Inc. Method and apparatus for a cryptographically assisted commercial network system designed to facilitate purchase and licensing
WO2001052162A1 (en) 2000-01-07 2001-07-19 The Hoffman Group, Ltd. System and process for requesting a quotation
US20020046091A1 (en) 2000-01-11 2002-04-18 Robert Mooers Interactive incentive marketing system
US6578008B1 (en) 2000-01-12 2003-06-10 Aaron R. Chacker Method and system for an online talent business
US20010034631A1 (en) 2000-01-21 2001-10-25 Kiselik Daniel R. Method and apparatus for the automatic selection of parties to an arrangement between a requestor and a satisfier of selected requirements
US20010049648A1 (en) 2000-02-15 2001-12-06 Richard Naylor Electronic marketplace for auctioning non-exclusive rights in intangible property
US20010049615A1 (en) 2000-03-27 2001-12-06 Wong Christopher L. Method and apparatus for dynamic business management
US7082474B1 (en) 2000-03-30 2006-07-25 United Devices, Inc. Data sharing and file distribution method and associated distributed processing system
US20010037281A1 (en) 2000-04-13 2001-11-01 Jason French Request for quote (RFQ) system and method
JP2001357232A (ja) * 2000-06-12 2001-12-26 Fujino Jimusho:Kk アーティスト支援仲介システム
US6658642B1 (en) 2000-06-21 2003-12-02 International Business Machines Corporation System, method and program product for software development
US20020077902A1 (en) 2000-06-30 2002-06-20 Dwight Marcus Method and apparatus for verifying review and comprehension of information
US20020019844A1 (en) 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
US20020120501A1 (en) * 2000-07-19 2002-08-29 Bell Christopher Nathan Systems and processes for measuring, evaluating and reporting audience response to audio, video, and other content
US6915266B1 (en) 2000-07-31 2005-07-05 Aysha Saeed Method and system for providing evaluation data from tracked, formatted administrative data of a service provider
US6604997B2 (en) 2000-08-17 2003-08-12 Worldwinner.Com, Inc. Minimizing the effects of chance
US20020038221A1 (en) * 2000-08-31 2002-03-28 Tiwary Vivek John Competitive reward commerce model
US6952678B2 (en) 2000-09-01 2005-10-04 Askme Corporation Method, apparatus, and manufacture for facilitating a self-organizing workforce
US20020107972A1 (en) * 2000-09-19 2002-08-08 Keane Kerry C. System and method for distributing media content
US6895382B1 (en) 2000-10-04 2005-05-17 International Business Machines Corporation Method for arriving at an optimal decision to migrate the development, conversion, support and maintenance of software applications to off shore/off site locations
US7162433B1 (en) 2000-10-24 2007-01-09 Opusone Corp. System and method for interactive contests
US7027997B1 (en) * 2000-11-02 2006-04-11 Verizon Laboratories Inc. Flexible web-based interface for workflow management systems
US20030233278A1 (en) 2000-11-27 2003-12-18 Marshall T. Thaddeus Method and system for tracking and providing incentives for tasks and activities and other behavioral influences related to money, individuals, technology and other assets
CN102024347A (zh) * 2001-01-09 2011-04-20 托普科德公司 用于编码竞赛的系统和方法
US7331034B2 (en) 2001-01-09 2008-02-12 Anderson Thomas G Distributed software development tool
WO2002056530A2 (en) * 2001-01-12 2002-07-18 T Thaddeus Marshall Method and system for tracking and providing incentives for time and attention of persons and for timing of performance of tasks
US20030018559A1 (en) * 2001-01-24 2003-01-23 Chung Scott Lee Method of producing and selling popular works of art through the internet
US7672897B2 (en) 2001-01-24 2010-03-02 Scott Chung Method of community purchasing through the internet
US20020156668A1 (en) 2001-02-16 2002-10-24 Morrow Martin E. Remote project development method and system
US7234131B1 (en) * 2001-02-21 2007-06-19 Raytheon Company Peer review evaluation tool
US7899721B2 (en) * 2001-02-27 2011-03-01 Accenture Global Services Gmbh E-commerce system, method and computer program product
US20020124048A1 (en) * 2001-03-05 2002-09-05 Qin Zhou Web based interactive multimedia story authoring system and method
USH2201H1 (en) 2001-03-19 2007-09-04 The United States Of America As Represented By The Secretary Of The Air Force Software architecture and design for facilitating prototyping in distributed virtual environments
US20020161696A1 (en) * 2001-04-09 2002-10-31 Gebert Carol A. Corporate market
US20030009740A1 (en) * 2001-06-11 2003-01-09 Esoftbank (Beijing) Software Systems Co., Ltd. Dual & parallel software development model
US6993496B2 (en) 2001-06-22 2006-01-31 Boombacker, Inc. Method and system for determining market demand based on consumer contributions
US7416488B2 (en) 2001-07-18 2008-08-26 Duplicate (2007) Inc. System and method for playing a game of skill
LU90817B1 (fr) 2001-08-20 2003-02-21 Memba S A R L Outil de modélisation et de gestion de projets
US7735080B2 (en) 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
WO2003032178A1 (en) * 2001-09-10 2003-04-17 My2Centences, Llc. Method and system for creating a collaborative work over a digital network
US6859523B1 (en) 2001-11-14 2005-02-22 Qgenisys, Inc. Universal task management system, method and product for automatically managing remote workers, including assessing the work product and workers
US7155400B1 (en) 2001-11-14 2006-12-26 Qgenisys, Inc. Universal task management system, method and product for automatically managing remote workers, including automatically recruiting workers
US6938048B1 (en) 2001-11-14 2005-08-30 Qgenisys, Inc. Universal task management system, method and product for automatically managing remote workers, including automatically training the workers
US7386831B2 (en) * 2002-01-09 2008-06-10 Siemens Communications, Inc. Interactive collaborative facility for inspection and review of software products
US7162198B2 (en) 2002-01-23 2007-01-09 Educational Testing Service Consolidated Online Assessment System
US7131071B2 (en) 2002-03-29 2006-10-31 Siebel Systems, Inc. Defining an approval process for requests for approval
WO2003088119A1 (en) 2002-04-08 2003-10-23 Topcoder, Inc. System and method for soliciting proposals for software development services
US8776042B2 (en) * 2002-04-08 2014-07-08 Topcoder, Inc. Systems and methods for software support
US20060248504A1 (en) 2002-04-08 2006-11-02 Hughes John M Systems and methods for software development
US7778866B2 (en) * 2002-04-08 2010-08-17 Topcoder, Inc. Systems and methods for software development
US20040167796A1 (en) 2003-02-21 2004-08-26 Arteis, Inc. Systems and methods for network-based design review
US20050114829A1 (en) 2003-10-30 2005-05-26 Microsoft Corporation Facilitating the process of designing and developing a project
US8024705B2 (en) 2003-11-12 2011-09-20 Siemens Product Lifecycle Management Software Inc. System, method, and computer program product for distributed testing of program code
US7207568B2 (en) 2004-04-07 2007-04-24 Nascar, Inc. Method of conducting a racing series
US7870014B2 (en) 2004-10-08 2011-01-11 Accenture Global Services Gmbh Performance management system
EP1999662A4 (en) * 2006-01-20 2010-10-13 Topcoder Inc SYSTEM AND METHOD FOR CREATING DESIGNS
WO2007098105A2 (en) * 2006-02-21 2007-08-30 Topcoder, Inc. Internet contest
US20070220479A1 (en) * 2006-03-14 2007-09-20 Hughes John M Systems and methods for software development
US8224696B2 (en) 2006-04-17 2012-07-17 Yahoo! Inc. Automated reward management for network-based contests
US20080052146A1 (en) 2006-05-01 2008-02-28 David Messinger Project management system
US10783458B2 (en) 2006-05-01 2020-09-22 Topcoder, Inc. Systems and methods for screening submissions in production competitions
US20080027783A1 (en) * 2006-06-02 2008-01-31 Hughes John M System and method for staffing and rating
US20080167960A1 (en) * 2007-01-08 2008-07-10 Topcoder, Inc. System and Method for Collective Response Aggregation
US20080196000A1 (en) 2007-02-14 2008-08-14 Fernandez-Lvern Javier System and method for software development
US20080281616A1 (en) 2007-02-27 2008-11-13 Cameron Johnson Innovation system
US8073792B2 (en) 2007-03-13 2011-12-06 Topcoder, Inc. System and method for content development
US7840413B2 (en) 2007-05-09 2010-11-23 Salesforce.Com, Inc. Method and system for integrating idea and on-demand services
WO2009002997A2 (en) * 2007-06-26 2008-12-31 Topcoder, Inc. System and method for distributed software testing
US20090203413A1 (en) * 2008-02-13 2009-08-13 Anthony Jefts System and method for conducting competitions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077227A (zh) * 2014-07-08 2014-10-01 大连海事大学 一种基于b/s架构的程序源代码的评判系统及方法
CN104077227B (zh) * 2014-07-08 2017-01-04 大连海事大学 一种基于b/s架构的程序源代码的评判系统及方法
CN105427695A (zh) * 2015-11-03 2016-03-23 中国农业大学 编程类考题自动测评方法和系统
CN105427695B (zh) * 2015-11-03 2018-11-02 中国农业大学 编程类考题自动测评方法和系统
CN109343912A (zh) * 2018-09-30 2019-02-15 深圳大学 在线竞赛方法、装置及服务器
CN109343912B (zh) * 2018-09-30 2022-04-26 深圳大学 在线竞赛方法、装置及服务器

Also Published As

Publication number Publication date
WO2002056144A3 (en) 2003-05-22
US7311595B2 (en) 2007-12-25
US20090104957A1 (en) 2009-04-23
CN102024347A (zh) 2011-04-20
US9218746B2 (en) 2015-12-22
US6824462B2 (en) 2004-11-30
US20120214563A1 (en) 2012-08-23
AU2002245226A1 (en) 2002-07-24
US8021221B2 (en) 2011-09-20
US6569012B2 (en) 2003-05-27
US20030171141A1 (en) 2003-09-11
US6984177B2 (en) 2006-01-10
US20060052886A1 (en) 2006-03-09
WO2002056144A2 (en) 2002-07-18
US20020132656A1 (en) 2002-09-19
US7300346B2 (en) 2007-11-27
US20070281771A1 (en) 2007-12-06
US8475251B2 (en) 2013-07-02
US20030153386A1 (en) 2003-08-14
US20030130021A1 (en) 2003-07-10
US8137172B2 (en) 2012-03-20
US20060252479A1 (en) 2006-11-09
US20090112669A1 (en) 2009-04-30
US6761631B2 (en) 2004-07-13
CA2434251A1 (en) 2002-07-18

Similar Documents

Publication Publication Date Title
CN1503951A (zh) 用于编码竞赛的系统和方法
Gregory Public relations and evaluation: does the reality match the rhetoric?
Bellemare et al. On representative trust
Illahi et al. An empirical study on competitive crowdsource software development: Motivating and inhibiting factors
Archambault Measuring service performance, student satisfaction and its impact on student retention in private, post-secondary institutions
Yorke Outside benchmark expectations? Variation in non-completion rates in English higher education
US20140095399A1 (en) Competition-based method of ranking job candidates
US8055531B2 (en) Method and computer program product for assessing a process of an organization
US20080040130A1 (en) Method of distributing recognition and reinforcing organization focus
Erkal et al. By Chance Or By Choice? Biased Attribution of Others' Outcomes
Brown et al. Mixing modes in longitudinal surveys: an overview
Strong et al. The influence of agent/client homophily on adult perceptions about Extension’s quality of service
Vandenplas The Impact of Time and Timing on the Survey Process and Data Quality.
Minkil et al. A case study on service quality perceptions and member retention towards Taekwondo participants in North America.
McFadden et al. Measuring perceptions and behavior in household surveys
Rickard Mentors Online: e-Mentoring for self-employed professionals
Messerer From Major Decision to Successfully Graduating A Motivational Perspective on the Process of Study Success
Ben Dhia Essays on job search and retraining
JACOB Influence of performance appraisal on employee motivation at county government of Kisumu, Kenya
Breidenbaugh Budget planning and performance measures for virtual reference services
Manthei Pay-But Don't Pay Too Much: An Experimental Study on the Impact of Incentives
Manthei Pay–But Don’t Pay Too Much
Archambault Research Online
CHENG AN EVALUATION OF THE SOLAR AWARD IN TAIWAN: USING A SURVEY METHOD
Himbeault Taylor et al. Accountability Planning as a Strategic Tool for Change

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20040609