Programming learning support program, information processing apparatus, and programming learning support method

The programming learning support system addresses the challenge of error identification in beginner codes by providing targeted bug feedback, improving user skills through guided error correction and tailored learning.

JP7704351B2Active Publication Date: 2025-07-08THE PUBLIC UNIV THE UNIV OF AIZU
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021121263
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-07-26
Publication Date
2025-07-08
Estimated Expiration
2041-07-26

AI Technical Summary

Technical Problem

Beginners in programming struggle to create correct program codes and identify the causes of errors, hindering their ability to improve programming skills effectively.

Method used

A programming learning support system that identifies specific bugs in user-generated codes, providing information about frequently occurring bugs, and highlighting ranges within the code where errors are located, guiding users step-by-step to correct them.

Benefits of technology

Enhances programming ability by offering targeted feedback that helps users identify and correct errors efficiently, reducing the burden on educators and tailoring learning to individual skill levels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007704351000001
    Figure 0007704351000001
  • Figure 0007704351000002
    Figure 0007704351000002
  • Figure 0007704351000003
    Figure 0007704351000003
Patent Text Reader

Abstract

To provide a programming learning support program, an information processing apparatus, and a programming learning support method capable of easily increasing a programming ability.SOLUTION: Among a plurality of bugs detected in a plurality of program codes generated by each of a plurality of users for a specific problem, a specific bug in which a detection state satisfies a predetermined condition is specifies, a new bug included in a new program code is detected when accepting the new program code generated by a specific user included in the plurality of users for the specific problem, information indicating a first scope including some parts that correspond to the new bug in the new program code and information indicating a second scope including some parts that correspond to the first scope in the new program code are generated, and the information indicating the specific bug, the information indicating the first scope, and the information indicating the second scope are transmitted to a transmission destination corresponding to the specific user.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a programming learning support program, an information processing apparatus, and a programming learning support method.

Background Art

[0002] In recent years, as a tool for supporting programming education for users, an evaluation apparatus capable of automatically evaluating program codes has been widely used.

[0003] For example, when such an evaluation apparatus receives a submission of a program code to be evaluated, it evaluates the program code by compiling and executing the received program code. Then, the evaluation apparatus feeds back, for example, the evaluation result of the received program code to the user (for example, the creator of the received program code).

[0004] Thereby, the user can, for example, improve their programming ability by referring to the feedback from the evaluation apparatus (see Patent Documents 1 to 2 and Non-Patent Documents 1 to 3).

Prior Art Documents

Patent Documents

[0005]

Patent Document 1

Patent Document 2

Non-Patent Documents

[0006]

Non-Patent Document 1

Non-Patent Document 2

Non-Patent Document 3

Summary of the Invention

Problems to be Solved by the Invention

[0007] Here, when the above evaluation device receives a submission of a program code to be evaluated, for example, it feeds back information about the correctness information of the received program code and the amount of resources used in the execution of the program code (for example, CPU usage, memory usage, etc.) as an evaluation result.

[0008] However, for example, when the user who created the program code to be evaluated is a beginner in programming, the user cannot easily create a program code that is determined to be correct (hereinafter, also referred to as the correct program code), and further, cannot easily identify the cause of the program code being determined to be incorrect. Therefore, even when the user refers to the content of the evaluation result transmitted from the evaluation device, the user may not be able to easily improve the programming ability.

[0009] Therefore, an object of the present invention is to provide a programming learning support program, an information processing apparatus, and a programming learning support method that enable easy improvement of programming ability.

Means for Solving the Problems

[0010] The programming learning support program according to the present invention for achieving the above object identifies a specific bug among a plurality of bugs detected in a plurality of program codes created by each of a plurality of users for a specific problem, and when a new program code generated by a specific user included in the plurality of users for the specific problem is received, detects a new bug included in the new program code, generates information indicating a first range partially including a location corresponding to the new bug in the new program code, and information indicating a second range partially including the first range in the new program code, and transmits the information indicating the specific bug identified, the information indicating the first range, and the information indicating the second range to a transmission destination corresponding to the specific user.

Effects of the Invention

[0011] According to the programming learning support program, the information processing apparatus, and the programming learning support method of the present invention, it becomes possible to easily improve the programming ability.

Brief Description of the Drawings

[0012]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Best Mode for Carrying Out the Invention

[0013] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, such example embodiments do not limit the technical scope of the present invention.

[0014] [Configuration of Information Processing System 10] First, a configuration example of the information processing system 10 in the first embodiment will be described. FIG. 1 is a diagram showing a configuration example of the information processing system 10 in the first embodiment.

[0015] The information processing system 10 includes, for example, a distribution device 1, a notification device 2, evaluation devices 3a, 3b, and 3c, and user terminals 5a, 5b, and 5c. Hereinafter, the evaluation devices 3a, 3b, and 3c are also collectively referred to as the evaluation device 3, and the user terminals 5a, 5b, and 5c are also collectively referred to as the user terminal 5. Also, hereinafter, the case where the information processing system 10 has three evaluation devices 3 and three user terminals 5 will be described, but the information processing system 10 may have other numbers of evaluation devices 3 and user terminals 5.

[0016] The user terminal 5 is, for example, a mobile terminal such as a PC (Personal Computer) or a smartphone owned by each user. And the user transmits, for example, program code created for a pre-specified problem (hereinafter, also simply referred to as a problem or a specific problem) to the distribution device 1 via the user terminal 5.

[0017] The distribution device 1 determines, for example, an evaluation device 3 to which the program code transmitted from the user terminal 5 is to be distributed. And the distribution device 1 transmits the program code to the determined evaluation device 3, for example. Specifically, the distribution device 1 transmits the program code to a queue (not shown) corresponding to the determined evaluation device 3, for example.

[0018] The evaluation device 3, for example, acquires the program codes stored in the queue (the program codes allocated by the allocator 1) in the order of storage, and evaluates the acquired program codes. Specifically, the evaluation device 3 evaluates the acquired program codes, for example, by compiling and executing the acquired program codes. After that, the evaluation device 3 transmits, for example, the evaluation result of the acquired program code to the user terminal 5 that transmitted the acquired program code. The evaluation result of the program code is, for example, information about the correct / error information of the program code and the amount of resources used during the execution of the program code (for example, CPU usage, memory usage, etc.). Further, as will be described later, the evaluation result of the program code is, for example, information about bugs included in the program code transmitted from the user terminal 5.

[0019] The notification device 2 notifies the user who created each program code of information including the remaining time required until the evaluation of each program code stored in the queue is completed (hereinafter also referred to as waiting time). Specifically, the notification device 2 transmits, for example, information including the waiting time for the evaluation of each program code stored in the queue to the user terminal 5 that transmitted each program code. Further, the notification device 2 transmits, for example, the evaluation result of each program code evaluated by the evaluation device 3 to the user terminal 5 that transmitted each program code.

[0020] [Hardware Configuration of Evaluation Device 3] Next, a hardware configuration example of the evaluation device 3 in the first embodiment will be described. FIG. 2 is a diagram showing a hardware configuration example of the evaluation device 3 in the first embodiment.

[0021] The evaluation device 3 is a computer device, for example, a general-purpose PC (Personal Computer) or a server device. And the evaluation device 3 performs various processes including, for example, a process of feeding back the evaluation result of the program code transmitted from the user terminal 5 (hereinafter also referred to as the feedback process).

[0022] The evaluation device 3 has the hardware configuration of a general-purpose computer device. For example, as shown in FIG. 2, it has a CPU 301 which is a processor, a memory 302, a communication interface 303, and a storage medium 304. Each part is connected to each other via a bus 305.

[0023] The storage medium 304 has, for example, a program storage area (not shown) for storing a program (not shown) for performing the feedback process.

[0024] Also, the storage medium 304 has, for example, a storage unit 310 (hereinafter also referred to as the storage area 310) for storing information used when performing the feedback process. Note that the storage medium 304 may be, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).

[0025] The CPU 301 executes the program loaded from the storage medium 304 into the memory 302 to perform the feedback process.

[0026] The communication interface 303 communicates with, for example, the distribution device 1 and the notification device 2.

[0027] [Hardware Configuration of Distribution Device 1] Next, an example of the hardware configuration of the distribution device 1 in the first embodiment will be described. FIG. 3 is a diagram showing an example of the hardware configuration of the distribution device 1 in the first embodiment.

[0028] The distribution device 1 is a computer device, such as a general-purpose PC or server device. The distribution device 1 has the hardware configuration of a general-purpose computer device. For example, as shown in FIG. 3, it has a CPU 101 as a processor, a memory 102, a communication interface 103, and a storage medium 104. Each part is connected to each other via a bus 105.

[0029] The storage medium 104 has, for example, a program storage area (not shown) for storing a program (not shown) for performing various processes.

[0030] Further, the storage medium 104 has, for example, a storage unit 110 (hereinafter also referred to as a storage area 110) for storing information used when performing various processes. The storage medium 104 may be, for example, an HDD or an SSD.

[0031] The CPU 101 executes a program loaded from the storage medium 104 into the memory 102 to perform various processes.

[0032] The communication interface 103 communicates with, for example, the notification device 2 and the evaluation device 3. Further, the communication interface 103 communicates with the user terminal 5 via a network NW such as the Internet.

[0033] [Hardware Configuration of Notification Device 2] Next, a hardware configuration example of the notification device 2 in the first embodiment will be described. FIG. 4 is a diagram showing a hardware configuration example of the notification device 2 in the first embodiment.

[0034] The notification device 2 is a computer device, such as a general-purpose PC or server device. The notification device 2 has the hardware configuration of a general-purpose computer device. For example, as shown in FIG. 4, it has a CPU 201 as a processor, a memory 202, a communication interface 203, and a storage medium 204. Each part is connected to each other via a bus 205.

[0035] The storage medium 204 has, for example, a program storage area (not shown) that stores a program (not shown) for performing various processes.

[0036] Further, the storage medium 204 has, for example, a storage unit 210 (hereinafter also referred to as the storage area 210) that stores information used when performing various processes. Note that the storage medium 204 may be, for example, an HDD or an SSD.

[0037] The CPU 201 executes a program loaded from the storage medium 204 into the memory 202 to perform various processes.

[0038] The communication interface 203 communicates with, for example, the distribution device 1 and the evaluation device 3. Further, the communication interface 203 communicates with the user terminal 5 via a network NW such as the Internet network.

[0039] [Outline of the First Embodiment] FIG. 5 is a diagram for explaining the outline of the feedback process in the first embodiment.

[0040] As shown in FIG. 5, the bug identification unit 311 of the evaluation device 3 identifies, for example, bugs that frequently occurred in a plurality of program codes (a plurality of program codes evaluated by the evaluation device 3 in the past) detected in a plurality of program codes transmitted from the user terminal 5 in the past for a specific problem (hereinafter also referred to as typical bugs).

[0041] The code reception unit 312 of the evaluation device 3 receives, for example, a program code (hereinafter also referred to as a new program code) transmitted from the user terminal 5.

[0042] The bug detection unit 313 of the evaluation device 3 identifies, for example, bugs (hereinafter also referred to as new bugs) included in the program code received by the code reception unit 312.

[0043] The information generation unit 314 of the evaluation device 3 generates information indicating a predetermined range (hereinafter also referred to as the first range) that partially includes a location corresponding to a bug detected by the bug detection unit 313 among the program codes received by the code reception unit 312. Further, the information generation unit 314 generates information indicating a predetermined range (hereinafter also referred to as the second range) that partially includes the generated first range among the program codes received by the code reception unit 312.

[0044] The information transmission unit 315 of the evaluation device 3 transmits, for example, information indicating a bug identified by the bug identification unit 311 (hereinafter also referred to as typical bug information), information indicating the first range (hereinafter also referred to as first range information) generated by the information generation unit 314, and information indicating the second range (hereinafter also referred to as second range information) generated by the information generation unit 314 to a transmission destination corresponding to the user who created the program code received by the code reception unit 312 (for example, the user terminal 5).

[0045] Note that each of the typical bug information, the first range information, and the second range information may be transmitted to the transmission destination by, for example, the notification device 2.

[0046] That is, the evaluation device 3 in the present embodiment transmits, as an evaluation result for the program code created by the user, information indicating a typical bug frequently detected in a plurality of program codes created in the past for the same problem as that program code. Further, the evaluation device 3 in the present embodiment transmits, as an evaluation result for the program code created by the user, information indicating a plurality of ranges that partially include bugs detected in that program code and that have different sizes from each other.

[0047] Thereby, the evaluation device 3 in the present embodiment can transmit, as an evaluation result, information that can be used as a clue when identifying bugs included in the program created by the user.

[0048] Specifically, when the user identifies bugs included in a program created by the user, for example, among the information transmitted as an evaluation result from the evaluation device 3, the user first refers to typical bug information, which is information about bugs not directly related to the bugs included in the program code created by the user. Then, for example, when the user is unable to identify the bugs even by referring to the typical bug information, the user refers to second range information, which is information about the bugs included in the program code created by the user, among the information transmitted as an evaluation result from the evaluation device 3. Further, for example, when the user is unable to identify the bugs even by referring to the second range information, the user refers to first range information, which is information indicating a range smaller than the second range information for the range in which the bugs are included, among the information transmitted as an evaluation result from the evaluation device 3.

[0049] That is, when identifying the bugs included in the program code created by the user, the user gradually refers to a plurality of pieces of information included in the evaluation result transmitted from the evaluation device 3, and proceeds with the identification of the bugs while obtaining necessary clues little by little.

[0050] As a result, the evaluation device 3 in the present embodiment can give the user clues step by step, give the user time to think from limited clues, and guide the user so that the bugs can be discovered and corrected spontaneously. Therefore, the evaluation device 3 can more efficiently improve the user's programming ability than when directly and immediately assisting in, for example, identifying the location of bugs included in the program code.

[0051] In addition, the evaluation device 3 in the present embodiment can reduce the burden on an educator who conducts programming education for the user by enabling efficient improvement of the user's programming ability. Specifically, the evaluation device 3 can, for example, suppress the frequency with which the educator supports the user, and reduce the burden on the educator associated with the education of the user.

[0052] In addition, for example, if a bug can be identified by referring to typical bug information, the user may not refer to the first range information and the second range information.

[0053] That is, when the user identifies a bug included in the program code created by the user himself / herself, it is not necessary to refer to all the information included in the evaluation result transmitted from the evaluation device 3, and the user may proceed with the work of identifying the bug while appropriately selecting the information suitable for his / her programming ability.

[0054] Thereby, the evaluation device 3 in the present embodiment can cause each user to perform learning suitable for each user's programming ability, and can more efficiently improve the user's programming ability.

[0055] [Details of the First Embodiment] Next, the details of the feedback process in the first embodiment will be described. FIGS. 6 and 7 are flowchart diagrams for explaining the details of the feedback process in the first embodiment. Also, FIGS. 8 to 15 are diagrams for explaining the details of the feedback process in the first embodiment.

[0056] First, the process for generating typical bug information will be described. FIG. 6 is a flowchart diagram for explaining the process for generating typical bug information.

[0057] As shown in FIG. 6, the bug identification unit 311 waits, for example, until the bug identification timing (NO in S11). The bug identification timing may be, for example, the timing specified by the administrator (not shown) of the evaluation device 3.

[0058] When the bug identification timing is reached (YES in S11), the bug identification unit 311, for example, among the plurality of bugs detected in the plurality of program codes created by each of the plurality of users for a specific problem, identifies as typical bugs the bugs whose detection status satisfies a predetermined condition (S12).

[0059] Specifically, in the process of S12, for example, for each of the plurality of program codes created by each user for a specific problem, the bug identification unit 311 identifies the difference (hereinafter also referred to as difference information) between each program code and the corrected program code corresponding to each program code. The corrected program code is, for example, a program code in which bugs are eliminated by correcting the bugs included in each program code.

[0060] Then, in the process of S12, for example, the bug identification unit 311 classifies the plurality of program codes created by each user for a specific problem into a plurality of groups by using the identified difference information. In this case, the bug identification unit 311 may classify each program code into a plurality of groups by using, for example, the k-means method using the difference information as a feature amount.

[0061] Furthermore, in the process of S12, for example, for each of the plurality of classified groups, among the bugs detected in the plurality of program codes classified into each group, the bug whose detection frequency is higher than that of other bugs is identified as a typical bug whose detection status satisfies a predetermined condition.

[0062] That is, the bug identification unit 311 identifies the bugs frequently detected in the plurality of program codes created by each user for a specific problem as typical bugs.

[0063] Thereafter, the information generation unit 314 generates typical bug information indicating the typical bugs identified in the process of S12 (S13). Hereinafter, specific examples of the typical bug information will be described.

[0064] [Typical Bug Information BG] FIG. 8 is a diagram for explaining a specific example showing the typical bug information BG.

[0065] The typical bug information BG shown in FIG. 8 includes information such as "omission of initialization", "array size", and "type mistake".

[0066] That is, the typical bug information BG shown in FIG. 8 indicates that the typical bugs identified in the process of S12 are "omission of initialization", "array size", "type mistake", etc.

[0067] Next, the process of transmitting the evaluation result for the new program code will be described. FIG. 7 is a flowchart for explaining the process of transmitting the evaluation result for the new program code.

[0068] As shown in FIG. 7, the code reception unit 312 waits until it receives a new program code transmitted from the user terminal 5 (NO in S21).

[0069] When a new program code is received (YES in S21), the bug detection unit 313 detects a new bug included in the received new program code, for example (S22).

[0070] Specifically, the bug detection unit 313 may detect a new bug included in the new program code by using, for example, a machine learning model generated in advance.

[0071] Subsequently, the information generation unit 314 generates first range information indicating a first range that partially includes the location corresponding to the bug detected in the process of S22 among the new program code received in the process of S21, for example (S23).

[0072] In addition, the information generation unit 314 generates second range information indicating a second range that partially includes the first range among the new program code received in the process of S21, for example (S24).

[0073] After that, for example, the information transmission unit 315 transmits the typical bug information generated in the process of S13 performed immediately before, the first range information generated in the process of S23, and the second range information generated in the process of S24 to the transmission destination corresponding to the user who created the program code received in the process of S21 (for example, the user terminal 5) (S25).

[0074] Note that the information transmission unit 315 may transmit the first range information generated in the process of S23 and the second range information generated in the process of S24 step by step.

[0075] Specifically, for example, the information transmission unit 315 may first transmit the typical bug information generated in the process of S13 performed immediately before and the second range information generated in the process of S24. Then, for example, when the user requests the transmission of further information via the user terminal 5 or the like, the information transmission unit 315 may transmit the first range information generated in the process of S23.

[0076] In addition to the first range information and the second range information, the information generation unit 314 may further generate information (hereinafter referred to as the third range information) indicating a range (hereinafter also referred to as the third range) that includes a part of the second range among the new program codes received in the process of S21. That is, for example, the information generation unit 314 may also generate the third range information indicating the third range, which is a range larger than the second range. Similarly, the information generation unit 314 may further generate information (hereinafter referred to as the fourth range information) indicating a range (hereinafter also referred to as the fourth range) that includes a part of the third range, and information (hereinafter referred to as the fifth range information) indicating a range (hereinafter also referred to as the fifth range) that includes a part of the fourth range. Then, for example, the information transmission unit 315 may transmit the typical bug information, the first range information, the second range information, and the third range information and the like together.

[0077] Thereby, the user can more efficiently improve the programming ability by referring to each piece of information including the first range information, the second range information, and the third range information step by step.

[0078] Furthermore, the information generation unit 314 may also create a corrected program code by, for example, correcting bugs included in the new program code received in the process of S21. Then, the information transmission unit 315 may, for example, transmit the corrected program code together.

[0079] Thereby, the user can check whether the bugs actually included in the new program match the bugs identified by the user by referring to the corrected program.

[0080] [Specific examples of evaluation results] Next, specific examples of the evaluation results for the program code created by the user will be described. FIGS. 9 to 15 are diagrams for explaining specific examples of the evaluation results for the program code created by the user. Specifically, FIGS. 9 to 15 are diagrams for explaining the case where the program code created by the user and the evaluation results are displayed on an output device (not shown).

[0081] First, the program code created by the user (program code including bugs) and the corrected program code (program code not including bugs) will be described. FIG. 9 is a diagram for explaining a specific example of the program code PG1 created by the user. FIG. 10 is a diagram for explaining a specific example of the corrected program code PG2.

[0082] In the program code PG1 shown in FIG. 9, at the 3rd line, "int A[N];" is described, at the 8th line, "for(int j=1;j<n;j++){" is described, and at the 11th line, "while(i>0 && A[i]>=key){" is described. On the other hand, in the program code PG2 shown in FIG. 10, at the 3rd line, "int A[N+1];" is described, at the 8th line, "for(int j=2;j<=n;j++){" is described, and at the 11th line, "while(i>0 && A[i]>key){" is described. That is, the program code PG1 shown in FIG. 9 contains bugs at the 3rd, 8th, and 11th lines respectively.

[0083] Next, a specific example of the evaluation result for the program code created by the user will be described. FIGS. 11 to 15 are diagrams for explaining a specific example of the program code PG1 with the evaluation result added. Specifically, each of FIGS. 11 to 15 is a diagram for explaining a specific example of the program code PG1 with the evaluation result E1 corresponding to the first range information, the evaluation result E2 corresponding to the second range information, the evaluation result E3 corresponding to the third range information, the evaluation result E4 corresponding to the fourth range information, and the evaluation result E5 corresponding to the fifth range information added respectively. Note that the first range information in the following example is information indicating only the location of the bug included in the program code created by the user.

[0084] The evaluation result E1 including the token T11 indicating the location of the bug included in the 3rd line, the tokens T12 and T13 indicating the location of the bug included in the 8th line, and the token T14 indicating the location of the bug included in the 11th line is added to the program code PG1 shown in FIG. 11.

[0085] And in the example shown in FIG. 11, a symbol M1 (hereinafter also referred to as type information M1) indicating that the necessary descriptions are insufficient is added to tokens T11 and T13, a symbol M3 (hereinafter also referred to as type information M3) indicating that there are incorrect descriptions is added to token T12, and a symbol M2 (hereinafter also referred to as type information M2) indicating that there are unnecessary descriptions is added to token T14.

[0086] Also, an evaluation result E2 including a line L11 indicating that there is a bug in the third line, a line L12 indicating that there is a bug in the eighth line, and a line L13 indicating that there is a bug in the eleventh line is added to the program code PG1 shown in FIG. 12.

[0087] And in the example shown in FIG. 12, the symbol M1 is added to line L11, the symbols M1 and M3 are added to line L12, and the symbol M2 is added to line L13.

[0088] Also, an evaluation result E3 including a block B11 indicating that there is a bug from the second line to the fourth line, a block B12 indicating that there is a bug from the eighth line to the seventeenth line, and a block B13 indicating that there is a bug from the eleventh line to the fourteenth line is added to the program code PG1 shown in FIG. 13.

[0089] And in the example shown in FIG. 13, the symbol M1 is added to block B11, the symbols M1 and M3 are added to block B12, and the symbol M2 is added to block B13.

[0090] Also, an evaluation result E4 including a block B21 indicating that there is a bug from the second line to the fifth line and a block B22 indicating that there is a bug from the eighth line to the seventeenth line is added to the program code PG1 shown in FIG. 14.

[0091] And in the example shown in FIG. 14, symbol M1 is added to block B21, and symbols M1, M2, and M3 are added to block L22.

[0092] In addition, evaluation result E5 including block B31 indicating that there is a bug from the second line to the seventeenth line is added to program code PG1 shown in FIG. 15.

[0093] And in the example shown in FIG. 15, symbols M1, M2, and M3 are added to block B31.

[0094] That is, the user who has received evaluation results E1, E2, E3, E4, and E5 transmitted from evaluation device 3 can, for example, sequentially refer to evaluation result E5, evaluation result E4, evaluation result E3, evaluation result E2, and evaluation result E1 to gradually narrow down the position of the bug and identify it. Thereby, each user can perform learning according to the level of each user's programming ability, and it becomes possible to efficiently improve the programming ability.

[0095] Note that evaluation device 3 (information transmission unit 315) may transmit only a part of evaluation results E1, E2, E3, E4, and E5 according to, for example, the level of each user's programming ability.

[0096] Specifically, for example, when it is determined based on the evaluation results of the program codes created in the past that the programming ability of the user who created the program code PG1 is high, the information transmission unit 315 may transmit the program code PG1 with only the evaluation result E5 added among the evaluation results E1, E2, E3, E4, and E5. Further, for example, when it is determined based on the evaluation results of the program codes created in the past that the programming ability of the user who created the program code PG1 is not high, the information transmission unit 315 may transmit the program code PG1 with only the evaluation results E1 and E2 added among the evaluation results E1, E2, E3, E4, and E5.

[0097] In the example shown in FIGS. 11 to 15, the case of adding the symbols M1, M2, and M3 to the range including bugs has been described. However, for example, instead of adding each symbol, a character string explaining the content of each symbol may be added, or a highlight display may be performed on the character string corresponding to the range including bugs.

[0098] Each of the evaluation results E1, E2, E3, E4, and E5 displayed on the user terminal 5 or the like may be switched, for example, in accordance with information input from the user with respect to the mouse or keyboard, or may be switched every time a certain period of time elapses.

[0099] Further, the evaluation device 3 may add each piece of information to the program code PG1 so that the evaluation results E1, etc. described in FIG. 11, etc. and the typical bug information BG described in FIG. 8, etc. are displayed together.

[0100] Furthermore, each of "initialization omission", "array size", "type mistake", etc. included in the typical bug information BG shown in FIG. 8 may be added to the corresponding range (range including the bug) in the program code PG1 in a symbolized state, similar to symbols M1, M2, M3, etc. shown in FIG. 11 and the like.

[0101] As described above, the evaluation device 3 in the present embodiment specifies a specific bug among a plurality of bugs detected in a plurality of program codes generated by each of a plurality of users for a specific problem, where the detection status satisfies a predetermined condition. Then, when the evaluation device 3 receives a new program code created by a specific user among a plurality of users for a specific problem, the evaluation device 3 detects new bugs included in the new program code.

[0102] Furthermore, the evaluation device 3 generates information indicating a first range that partially includes a location corresponding to a new bug in the new program code, and information indicating a second range that partially includes the first range in the new program code. Then, the evaluation device 3 transmits information indicating the specified specific bug, information indicating the first range, and information indicating the second range to a transmission destination corresponding to the specific user.

[0103] Thereby, the evaluation device 3 in the present embodiment can transmit, as an evaluation result, information that can be used as a clue when specifying bugs included in a program created by a user. Therefore, the evaluation device 3 in the present embodiment can efficiently improve the programming ability of the user.

Explanation of Reference Numerals

[0104] 1: Distribution device 2: Notification device 3: Evaluation device 5: User terminal 10: Information processing system 101: CPU 102: Memory 103: Communication interface 104: Memory medium 105: Bus 201: CPU 202: Memory 203: Communication interface 204: Memory medium 205: Bus 301: CPU 302: Memory 303: Communication interface 304: Memory medium 305: Bus 311: Bug identification unit 312: Code reception unit 313: Bug detection unit 314: Information generation unit 315: Information transmission unit

Claims

1. Among a plurality of bugs detected in a plurality of program codes generated by each of a plurality of users for a specific problem, identify a specific bug whose detection status meets a predetermined condition, When receiving new program code created by a specific user among the plurality of users for the specific problem, detect new bugs included in the new program code, Generate information indicating a first range that partially includes a location corresponding to the new bug in the new program code, and information indicating a second range that partially includes the first range in the new program code, Transmit information indicating the identified specific bug, information indicating the generated first range, and information indicating the generated second range to a destination corresponding to the specific user, A programming learning support program characterized by causing a computer to execute the process.

2. In Claim 1, In the transmitting process, transmit the new program code to which information indicating the identified specific bug, information indicating the first range, and information indicating the second range are added to the destination, A programming learning support program characterized by this.

3. In Claim 1, In the transmitting process, transmit information indicating a location corresponding to the new bug in the new program code to the destination, A programming learning support program characterized by this.

4. In Claim 1, In the transmitting process, after transmitting the information indicating the second range to the destination, in response to receiving information requesting transmission of the information indicating the first range, transmit the information indicating the first range to the destination, A programming learning support program characterized by this.

5. In Claim 1, In the generating process, generate a corrected program code in which the plurality of bugs are no longer included by correcting the new program code, In the transmitting process, transmit the generated corrected program code to the destination, A programming learning support program characterized by this.

6. In Claim 1, In the identifying process, For each of the plurality of program codes, identify information indicating a difference between each program code and a corrected program code in which the plurality of bugs are no longer included by correcting each program code, By using the information indicating the differences for each of the specified plurality of program codes, the plurality of program codes are classified into a plurality of groups, For each of the classified plurality of groups, among the plurality of bugs detected in the plurality of program codes classified into each group, a bug with a detection count higher than other bugs is specified as the specific bug whose detection status satisfies the predetermined condition, A programming learning support program characterized by the above.

7. In claim 1, The information indicating the first range includes first type information indicating at least one of the type of the specific bug corresponding to the first range and the type of the new bug, The information indicating the second range includes second type information indicating at least one of the type of the specific bug corresponding to the second range and the type of the new bug, A programming learning support program characterized by the above.

8. In claim 7, The first type information is information that enables the information indicating at least one of the type of the specific bug corresponding to the first range and the type of the new bug to be displayed at the transmission destination, The second type information is information that enables the information indicating at least one of the type of the specific bug corresponding to the second range and the type of the new bug to be displayed at the transmission destination, A programming learning support program characterized by the above.

9. Among the plurality of bugs detected in the plurality of program codes generated by each of a plurality of users for a specific problem, a bug specifying unit that specifies a specific bug whose detection status satisfies a predetermined condition; When a new program code created by a specific user included in the plurality of users for the specific problem is received, a bug detection unit that detects a new bug included in the new program code; An information generation unit that generates information indicating a first range that partially includes a location corresponding to the new bug in the new program code and information indicating a second range that partially includes the first range in the new program code; An information transmission unit that transmits the information indicating the specified specific bug, the information indicating the generated first range, and the information indicating the generated second range to a transmission destination corresponding to the specific user. An information processing apparatus characterized by the above.

10. Among a plurality of bugs detected in a plurality of program codes generated by each of a plurality of users for a specific problem, identify a specific bug whose detection status satisfies a predetermined condition, When receiving new program code created by a specific user among the plurality of users for the specific problem, detect new bugs included in the new program code, Generate information indicating a first range that partially includes a location corresponding to the new bug in the new program code, and information indicating a second range that partially includes the first range in the new program code, Transmit information indicating the identified specific bug, information indicating the generated first range, and information indicating the generated second range to a transmission destination corresponding to the specific user, A programming learning support method characterized by causing a computer to execute the processing.

Citation Information

Patent Citations

  • A highly concurrent algorithm contest program online evaluation system

    CN109508293A

  • Source code evaluating system

    JP2006059276A

  • Identification method of defect location on software program

    JP2020102209A

  • Automated evaluation of computer programming

    US10303517B1

  • Targeted Regression Testing

    US20080209276A1