Automated evaluation of computer programming
First Claim
1. A computer-implemented method comprising:
- receiving one or more source codes submitted for a programming task in a programming session with a client computer system of a particular user;
executing the one or more source codes to generate result data for the programming task;
evaluating the result data using one or more metrics of the programming task;
based on complexity data of the programming task and based on evaluating the result data using the one or more metrics, determining whether to update a programming rating for the particular user;
wherein the programming rating for the particular user is associated with a graph of nodes that comprises a plurality of nodes and a plurality of edges, wherein each node in the plurality of nodes represents a respective programming subject and comprises a subject complexity rating for the particular user for the respective programming subject, said each node is connected to one or more neighbor nodes using one or more edges of the plurality of edges, wherein the one or more neighbor nodes represent one or more related programming subjects to the respective programming subject;
causing a display of the result data for the particular user on the client computer system of the particular user.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are described for analysis and evaluation of different computer programs developed by different users to accomplish programming tasks. A computer programming evaluation system provides users with one or more programming tasks and ability to input source code to solve the programming tasks. In an embodiment, using a client computer system, a user initiates a computer programming session with a programming system. As a result of the session, the client computer system is provided with user interface elements allowing the user to view one or more programming tasks and submit to the programming system source code for the one or more programming tasks. In an embodiment, different modes are used by the programming system to evaluate quality of the computer programming performed by a user in terms of accomplishing the programming task. By collecting result metrics from evaluations and comparing with complexity data of the programming tasks, the programming system generates a graph-based quantified knowledge map of computer programming for a user. Non-limiting examples of modes for evaluation of the computer programming include a practice mode, an arcade mode, versus mode, a bot mode and a bot training mode. In an embodiment, to execute source codes in parallel, a programming system may include multiple programming servers. Each programming server is a separate computer system that, in some embodiments, is a cloud computer system allocated from cloud services. Executing different instances of source code on different programming servers improves both the security and scalability of the programming system.
31 Citations
18 Claims
-
1. A computer-implemented method comprising:
-
receiving one or more source codes submitted for a programming task in a programming session with a client computer system of a particular user; executing the one or more source codes to generate result data for the programming task; evaluating the result data using one or more metrics of the programming task; based on complexity data of the programming task and based on evaluating the result data using the one or more metrics, determining whether to update a programming rating for the particular user; wherein the programming rating for the particular user is associated with a graph of nodes that comprises a plurality of nodes and a plurality of edges, wherein each node in the plurality of nodes represents a respective programming subject and comprises a subject complexity rating for the particular user for the respective programming subject, said each node is connected to one or more neighbor nodes using one or more edges of the plurality of edges, wherein the one or more neighbor nodes represent one or more related programming subjects to the respective programming subject; causing a display of the result data for the particular user on the client computer system of the particular user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A server computer system comprising:
-
one or more processors; one or more storage media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising instructions for; receiving one or more source codes submitted for a programming task in a programming session with a client computer system of a particular user; executing the one or more source codes to generate result data for the programming task; evaluating the result data using one or more metrics of the programming task; based on complexity data of the programming task and based on evaluating the result data using the one or more metrics, determining whether to update a programming rating for the particular user; wherein the programming rating for the particular user is associated with a graph of nodes that comprises a plurality of nodes and a plurality of edges, wherein each node in the plurality of nodes represents a respective programming subject and comprises a subject complexity rating for the particular user for the respective programming subject, said each node is connected to one or more neighbor nodes using one or more edges of the plurality of edges, wherein the one or more neighbor nodes represent one or more related programming subjects to the respective programming subject; causing a display of the result data for the particular user on the client computer system of the particular user. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification