WO2021246742A1 - Artificial-intelligence-based program code evaluation system and method - Google Patents

Artificial-intelligence-based program code evaluation system and method Download PDF

Info

Publication number
WO2021246742A1
WO2021246742A1 PCT/KR2021/006763 KR2021006763W WO2021246742A1 WO 2021246742 A1 WO2021246742 A1 WO 2021246742A1 KR 2021006763 W KR2021006763 W KR 2021006763W WO 2021246742 A1 WO2021246742 A1 WO 2021246742A1
Authority
WO
WIPO (PCT)
Prior art keywords
features
program code
evaluation
quality
learning
Prior art date
Application number
PCT/KR2021/006763
Other languages
French (fr)
Korean (ko)
Inventor
한경식
김우정
임소영
이상민
이환희
Original Assignee
주식회사 코딩로봇연구소
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 주식회사 코딩로봇연구소 filed Critical 주식회사 코딩로봇연구소
Publication of WO2021246742A1 publication Critical patent/WO2021246742A1/en

Links

Images

Classifications

    • 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
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming

Definitions

  • the present invention relates to a system and method for evaluating a program code based on artificial intelligence (AI), and more particularly, to a system and method for evaluating the level of a computer program code by evaluating a computer program code based on artificial intelligence will be.
  • AI artificial intelligence
  • An object of the present invention to solve the above problems is an artificial intelligence-based program that can evaluate the program code in multiple ways and maintain the consistency of the evaluation by evaluating the computer program code based on artificial intelligence (AI).
  • AI artificial intelligence
  • a plurality of execution features related to the execution of the program code and the generating a programming level estimation model for estimating a level of the program code using a plurality of quality features related to the quality of the program code, the plurality of execution features and the plurality of quality features for evaluating program code determine a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to The level of the evaluation program code is determined.
  • an artificial intelligence-based program code evaluation system includes a first preprocessor, a second preprocessor, and a first machine learning module.
  • the first preprocessor includes a plurality of execution features related to execution of the program code and a plurality of qualities related to the quality of the program code for each of a plurality of learning program codes written by a plurality of learners for a plurality of program problems. Determine the features.
  • the second preprocessor determines a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to the plurality of execution features and the plurality of quality features with respect to the evaluation program code.
  • the first machine learning module performs learning to classify the plurality of execution features and the plurality of quality features of each of the plurality of learning program codes into one of first to n-th levels to generate a programming level estimation model and classifying the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code into one of the first to n-th levels using the programming level estimation model to determine the classified level as the evaluation program It is determined by the level of the code.
  • the artificial intelligence (AI)-based program code evaluation system and the artificial intelligence-based program code evaluation method according to embodiments of the present invention evaluate the program code using machine learning, so that the program code can be evaluated in multiple ways. It can improve the speed of evaluation and maintain consistency of evaluation.
  • AI artificial intelligence
  • FIG. 2 is a flowchart illustrating an AI-based program code evaluation method according to an embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating an example of a step of generating the programming level estimation model of FIG. 2 .
  • FIG. 4 is a diagram illustrating an example of a first artificial neural network included in the first machine learning module of FIG. 1 .
  • FIG. 5 is a flowchart illustrating another example of a step of generating the programming level estimation model of FIG. 2 .
  • FIG. 6 is a diagram illustrating an AI-based program code evaluation system according to another embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating an AI-based program code evaluation method according to another embodiment of the present invention.
  • FIG. 8 is a flowchart illustrating an example of a step of generating an abnormal code detection model of FIG. 7 .
  • AI artificial intelligence
  • the artificial intelligence-based program code evaluation system 10 shown in FIG. 1 analyzes various characteristics of the program code to determine a plurality of features, and uses the plurality of features through machine learning to determine the program code
  • a program evaluation model is created by performing learning to evaluate the level of
  • the artificial intelligence-based program code evaluation system 10 analyzes the program code to be evaluated, determines the plurality of features, and inputs the plurality of features to the program evaluation model.
  • the program evaluation model outputs an evaluation result of the program code based on the plurality of input features.
  • the artificial intelligence-based program code evaluation system 10 can evaluate the program code in multiple ways based on various characteristics of the program code.
  • the artificial intelligence-based program code evaluation system 10 evaluates program codes using an evaluation model learned through machine learning, it is possible to maintain the consistency of evaluation.
  • FIG. 2 is a flowchart illustrating an AI-based program code evaluation method according to an embodiment of the present invention.
  • a plurality of execution features related to the execution of the program code determined by analyzing the program code (features) and generating a programming level estimation model for estimating the level of the program code using a plurality of quality features related to the quality of the program code (step S100).
  • step S200 the same analysis as that performed on the program code is performed on the evaluation program code to be evaluated, so that the plurality of execution features and the plurality of quality features respectively corresponding to the plurality of quality features are performed.
  • Determine the performance evaluation features and the plurality of quality evaluation features step S200).
  • the level of the evaluation program code is determined based on the programming level estimation model and the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code (step S300).
  • the AI-based program code evaluation method shown in FIG. 2 may generate the programming level estimation model by additionally using a plurality of readability features related to the readability of the program code (step S100).
  • the artificial intelligence-based program code evaluation method uses the plurality of execution features, the plurality of readability features, and the plurality of quality features of the program code comprehensively.
  • the programming level estimation model for estimating the level of the program code may be generated.
  • step S200 the same analysis as performed on the program code to generate the programming level estimation model may be performed on the evaluation program code to additionally determine a plurality of readability evaluation features corresponding to the plurality of readability features. There is (step S200).
  • the level of the evaluation program code may be determined based on the programming level estimation model and the plurality of execution evaluation features, the plurality of readability evaluation features, and the plurality of quality evaluation features of the evaluation program code. (Step S300).
  • the AI-based program code evaluation method shown in FIG. 2 may be performed through the AI-based program code evaluation system 10 of FIG. 1 .
  • the artificial intelligence-based program code evaluation system 10 is a learning data database (TRAINING DATA DB) 100, a first preprocessor (PREPROCESSOR1) 200, a first machine learning module (MACHINE LEARNING MODULE1) ) 300 , and a second preprocessor (PREPROCESSOR2) 400 may be included.
  • TRAINING DATA DB a learning data database
  • PREPROCESSOR1 a first preprocessor
  • MACHINE LEARNING MODULE1 first machine learning module
  • PREPROCESSOR2 second preprocessor
  • the learning data database 100 may store a plurality of learning program codes T_CDs written by a plurality of learners for a plurality of program problems.
  • At least some of the plurality of program problems are provided to each of the plurality of learners, and program codes written for the program problems provided by each of the plurality of learners are a plurality of learning program codes (T_CDs) as may be stored in the learning data database 100 .
  • T_CDs learning program codes
  • FIG. 3 is a flowchart illustrating an example of generating the programming level estimation model of FIG. 2 ( S100 ).
  • the first preprocessing unit 200 sequentially reads a plurality of learning program codes T_CDs stored in the learning data database 100 and reads the characteristics of the read learning program codes T_CD.
  • a plurality of quality features Q_Fs related to the quality of the program code T_CD may be determined (step S110 ).
  • the first preprocessor 200 may determine the plurality of execution features E_Fs by analyzing the execution result of the corresponding learning program code T_CD.
  • the plurality of execution features (E_Fs) is a score feature determined based on the number of correct answers among a plurality of output values output by executing the corresponding learning program code (T_CD) for a plurality of test cases may include
  • the plurality of test cases and a correct answer for each of the plurality of test cases may be predetermined for each of the plurality of program problems.
  • the plurality of test cases predetermined for each of the plurality of program problems and the correct answer for each of the plurality of test cases may be stored in the learning data database 100 .
  • the first preprocessor 200 reads the plurality of test cases of the program problem corresponding to the corresponding learning program code T_CD and the correct answers to the plurality of test cases from the learning data database 100 . and executing the corresponding learning program code (T_CD) for the plurality of test cases, and counting the number that matches the correct answer among the plurality of output values output from the corresponding learning program code (T_CD) to count the score feature can be decided
  • the score feature may represent a measure of the correctness of the corresponding learning program code (T_CD).
  • the first preprocessor 200 determines the score feature by executing the corresponding learning program code T_CD for the plurality of test cases, but the present invention is not limited thereto.
  • the score feature determined by executing each of the plurality of learning program codes (T_CDs) for the corresponding plurality of test cases is associated with each of the plurality of learning program codes (T_CDs) in the learning data database 100 ) can be stored in advance.
  • the first preprocessor 200 may read and obtain the score feature of the corresponding learning program code T_CD from the learning data database 100 .
  • the plurality of execution features (E_Fs) are determined based on a time taken for a corresponding learning program code (T_CD) to be executed for the plurality of test cases and output the plurality of output values. It may further include a runtime feature that is
  • the first preprocessor 200 calculates an average of the times required for the corresponding training program code T_CD to be executed for the plurality of test cases and output the plurality of output values as the execution time feature. can be decided with
  • the runtime feature may represent a measure of the effectiveness of the corresponding learning program code (T_CD).
  • a plurality of execution features are statistics about the score features of learning program codes (T_CDs) written for the same program problem as the program problem corresponding to the corresponding learning program code (T_CD) It may further include a difficulty feature determined based on the value.
  • the first preprocessing unit 200 calculates the average value of the score features for the learning program codes T_CDs written for the same program problem and the difficulty level of the learning program codes T_CDs corresponding to the same program problem. can be determined by the feature.
  • the difficulty feature may indicate the difficulty of the program problem corresponding to the corresponding learning program code T_CD.
  • the first preprocessor 200 is the text included in the corresponding learning program code (T_CD), regardless of the programming language such as C, JAVA, PYTHON, etc. used in the corresponding learning program code (T_CD)
  • a plurality of readability features (R_Fs) may be determined by analyzing the readability of .
  • the plurality of readability features R_Fs may include a first readability feature determined based on the average number of words per line and the average number of syllables per word of the corresponding learning program code T_CD.
  • the plurality of readability features R_Fs may include a second readability feature determined based on a ratio of words with three or more syllables among words included in the corresponding learning program code T_CD.
  • the plurality of readability features R_Fs is a third readability feature determined based on a ratio of words not included in a predetermined standard word list among words included in the corresponding learning program code T_CD. may include
  • the first preprocessing unit 200 includes Flesch Reading Ease, Flesch-Kincaid Grade Level, Coleman-Liau Index, Gunning Fog Index, It is also possible to determine the plurality of readability features (R_Fs) by calculating the SMOG Index or the like.
  • the plurality of readability features R_Fs may represent a measure of how comfortable the corresponding learning program code T_CD is to be written.
  • the first preprocessor 200 may determine the plurality of quality features Q_Fs by analyzing the complexity and potential error potential of the corresponding training program code T_CD.
  • the plurality of quality features Q_Fs may include a first quality feature determined based on the number of conditional branch points included in functions implemented in the corresponding learning program code T_CD.
  • conditional branching points may include statements such as if, while, and for.
  • the plurality of quality features Q_Fs may include a second quality feature determined based on the number of lines included in the corresponding learning program code T_CD.
  • the plurality of quality features may include a third quality feature determined based on the standard deviation of the number of spaces inserted at specific predetermined positions in the corresponding learning program code (T_CD).
  • the specific positions are the start point of each line, the end point of each line, immediately after the parentheses indicating the start of the function, immediately before the parentheses indicating the end of the function, immediately after the parentheses indicating the start of the structure, and the end of the structure It may include at least one of the immediately preceding parentheses.
  • the plurality of quality features may include a fourth quality feature determined based on the number of annotations included in the corresponding learning program code (T_CD) and the number of characters in each of the annotations. have.
  • the plurality of quality features include the number of empty conditional statements included in the corresponding learning program code (T_CD), the number of unused variables, the overlapping code, and the number of overlapping condition operators.
  • a fifth quality feature determined based on at least one of
  • the first preprocessing unit 200 calculates cyclomatic complexity, Halstead'metrics, etc., which are generally used as a complexity index of the program code, for the corresponding learning program code (T_CD) to obtain a plurality of quality features (Q_Fs). ) can also be determined.
  • the first preprocessor 200 analyzes the corresponding learning program code (T_CD) using the OCLint tool, which is generally used to analyze the potential error of the program code, and returns an index calculated. It may be determined with a plurality of quality features (Q_Fs). Since the OCLint tool is a well-known tool, detailed descriptions of the operation of the OCLint tool and indicators calculated from the OCLint tool will be omitted.
  • the first preprocessing unit 200 includes a plurality of execution features (E_Fs) of each of a plurality of learning program codes (T_CDs), a plurality of readability features (R_Fs), and a plurality of qualities Provides the features (Q_Fs) to the first machine learning module 300, the first machine learning module 300 is a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs), a plurality of readability
  • the programming level estimation model is determined by performing learning to classify the features R_Fs and the plurality of quality features Q_Fs into one of the first to nth (n is a positive integer) levels LV1 to LVn. It can be done (step S140).
  • the learning data database 100 may store in advance the programming career period CR of the learner who wrote each of the plurality of learning program codes T_CDs in association with the corresponding learning program code T_CD.
  • the first preprocessor 200 performs a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs).
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • the plurality of learning program codes (T_CDs) of the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs) of each of the first to n-th levels (LV1 ⁇ LVn) may be performed to determine the programming level estimation model.
  • the first machine learning module 300 may include a first artificial neural network.
  • FIG. 4 is a diagram illustrating an example of a first artificial neural network included in the first machine learning module of FIG. 1 .
  • the first artificial neural network may generate result data encoded by a one-hot encoding method.
  • the first artificial neural network has the same number of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs). It may include an input layer including input nodes (INPUT LAYER), at least one hidden layer (HIDDEN LAYER) including a plurality of nodes, and an output layer (OUTPUT LAYER) including n output nodes.
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • It may include an input layer including input nodes (INPUT LAYER), at least one hidden layer (HIDDEN LAYER) including a plurality of nodes, and an output layer (OUTPUT LAYER) including n output nodes.
  • the first artificial neural network may indicate one of first to n-th levels LV1 to LVn through values output from the output nodes included in the output layer.
  • the first artificial neural network includes one hidden layer, but the present invention is not limited thereto, and according to an embodiment, the first artificial neural network may include a plurality of hidden layers.
  • the first artificial neural network writes a training program code corresponding to a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs). Based on the learner's programming career period (CR), the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs) are set to the first to n-th levels LV1 to LVn. ), the first artificial neural network may be trained to classify as one of.
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • the programming career period of the plurality of learners is divided into first to n-th sections at intervals of one year or more, and the programming career period (CR) of the learner who wrote the corresponding learning program code is i(i) is a positive integer less than or equal to n) when included in the interval
  • the first machine learning module 300 includes a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) is provided to the input nodes included in the input layer of the first artificial neural network, the i-th output node included in the output layer of the first artificial neural network outputs 1 and the remaining output nodes output 0
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • the first machine learning module 300 uses a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) corresponding to the plurality of learning program codes (T_CDs).
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • T_CDs learning program codes
  • FIG. 5 is a flowchart illustrating another example of generating the programming level estimation model of FIG. 2 ( S100 ).
  • a base code is provided to the plurality of learners for each of the plurality of program problems, and the plurality of learners use the base code Based on , a plurality of learning program codes T_CDs may be written.
  • the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs) generated by the first preprocessor 200 include the influence of the base code.
  • the first preprocessor 200 performs a plurality of execution features (E_Fs) for each of the plurality of learning program codes (T_CDs) in the same manner as the method described above with reference to FIG. 3 .
  • a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) are determined (step S110), and then a plurality of readability features ( R_Fs) and an operation of correcting the plurality of quality features Q_Fs may be further performed (steps S120 and S130 ).
  • the first preprocessor 200 determines a plurality of readability features (R_Fs) and a plurality of quality features (Q_Fs) of the base code provided to the plurality of learners for each of the plurality of program problems, and (Step S120), the base code corresponding to each of the plurality of learning program codes (T_CDs) in the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs)
  • a plurality of readability features (R_Fs) and a plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs) are obtained by subtracting the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of It can be corrected (step S130).
  • the corrected plurality of readability features R_Fs and the plurality of quality features Q_Fs may more clearly reflect the characteristics of the corresponding learning program code T_CD.
  • the first preprocessor 200 performs a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs), a plurality of corrected readability features (R_Fs), and a plurality of corrected quality features ( Q_Fs) to the first machine learning module 300 , and the first machine learning module 300 includes a plurality of execution features (E_Fs) of each of a plurality of learning program codes (T_CDs), a plurality of corrected readability features
  • the programming level estimation model may be determined by performing learning to classify the R_Fs and the corrected plurality of quality features Q_Fs into one of the first to n-th levels LV1 to LVn (step S140 ). .
  • the preprocessor 400 may receive the evaluation program code E_CD corresponding to the evaluation target.
  • the second preprocessor 400 analyzes the characteristics of the evaluation program code E_CD, and includes a plurality of execution evaluation features EE_Fs, a plurality of readability evaluation features RE_Fs, and a plurality of evaluation program codes E_CD. It is possible to determine the quality evaluation features (QE_Fs) (step S200).
  • the second preprocessor 400 performs the same operation as that of the first preprocessor 200 described above with reference to FIG. 3 to obtain a plurality of execution evaluation features for the evaluation program code E_CD. (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features (QE_Fs) may be determined.
  • E_Fs execution evaluation features for the evaluation program code
  • RE_Fs readability evaluation features
  • QE_Fs quality evaluation features
  • the plurality of execution evaluation features (EE_Fs), the plurality of readability evaluation features (RE_Fs), and the plurality of quality evaluation features (QE_Fs) for the evaluation program code (E_CD) are the plurality of evaluation features for the learning program code (T_CD). It may correspond to each of the execution features E_Fs, the plurality of readability features R_Fs, and the plurality of quality features Q_Fs.
  • the second preprocessor 400 compares a plurality of test cases for a program problem corresponding to the evaluation program code (E_CD) and a correct answer to the plurality of test cases with the evaluation program code (E_CD) and It can be received from outside together.
  • the second preprocessor 400 executes the evaluation program code E_CD for the plurality of test cases to determine the score feature and the runtime feature included in the plurality of execution evaluation features EE_Fs.
  • the second preprocessor 400 may receive the score feature and the runtime feature for the evaluation program code E_CD from the outside.
  • the second preprocessor 400 may further receive the difficulty level DIFF_L of the program problem corresponding to the evaluation program code E_CD.
  • the second preprocessor 400 may determine the difficulty level DIFF_L received from the outside as the difficulty feature included in the plurality of execution evaluation features EE_Fs.
  • the second pre-processing unit 400 first converts the plurality of execution evaluation features (EE_Fs), the plurality of readability evaluation features (RE_Fs), and the plurality of quality evaluation features (QE_Fs) determined for the evaluation program code (E_CD) to the first It may be provided to the machine learning module 300 .
  • the first machine learning module 300 includes a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features ( QE_Fs), it is possible to determine the level of the evaluation program code E_CD (step S300).
  • E_Fs execution evaluation features
  • RE_Fs readability evaluation features
  • QE_Fs quality evaluation features
  • the first machine learning module 300 uses the programming level estimation model to include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs) of the evaluation program code (E_CD), and classifying the plurality of quality evaluation features QE_Fs into one of first to n-th levels LV1 to LVn, and determining the classified level as the level of the evaluation program code E_CD.
  • E_Fs execution evaluation features
  • RE_Fs readability evaluation features
  • QE_Fs quality evaluation features
  • the first machine learning module 300 may include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features (QE_Fs) of the evaluation program code (E_CD).
  • E_Fs execution evaluation features
  • RE_Fs readability evaluation features
  • QE_Fs quality evaluation features
  • E_CD evaluation program code
  • the artificial intelligence-based program code evaluation system 10 and the artificial intelligence-based program code evaluation method analyze the program code in various ways to provide the program code determine a plurality of execution features (E_Fs) related to the execution of , a plurality of readability features (R_Fs) related to the readability of the program code, and a plurality of quality features (Q_Fs) related to the quality of the program code; Since the level of the program code is determined based on the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs), the program code can be evaluated in multiple ways.
  • E_Fs execution features
  • R_Fs readability features
  • Q_Fs quality features
  • the artificial intelligence-based program code evaluation system 10 and the artificial intelligence-based program code evaluation method according to embodiments of the present invention use the programming level estimation model learned through the first machine learning module 300 . to evaluate the program code, it is possible to improve the speed of evaluation while maintaining the consistency of evaluation.
  • FIG. 6 is a diagram illustrating an AI-based program code evaluation system according to another embodiment of the present invention.
  • the artificial intelligence-based program code evaluation system 20 includes a training data database 100 , a first preprocessor PREPROCESSOR1 200 , and a first machine learning module MACHINE LEARNING MODULE1 ) (300), a second preprocessor (PREPROCESSOR2) (400), a third preprocessor (PREPROCESSOR3) (500), a second machine learning module (MACHINE LEARNING MODULE2) (600), and a fourth preprocessor (PREPROCESSOR4) ( 700) may be included.
  • the artificial intelligence-based program code evaluation system 20 shown in FIG. 6 is a third preprocessor 500 and a second machine learning module 600 in the artificial intelligence-based program code evaluation system 10 shown in FIG. 1 .
  • a fourth pre-processing unit 700 may be further included.
  • FIG. 7 is a flowchart illustrating an AI-based program code evaluation method according to another embodiment of the present invention.
  • the artificial intelligence-based program code evaluation method shown in FIG. 7 may further include some steps ( S400 , S500 , S600 ) in the artificial intelligence-based program code evaluation method shown in FIG. 2 .
  • the AI-based program code evaluation method shown in FIG. 7 may be performed through the AI-based program code evaluation system 20 of FIG. 6 .
  • the configuration and operation are the learning data database 100, the first preprocessor 200, the first machine learning module 300, and the second preprocessor 400 included in the artificial intelligence-based program code evaluation system 10. Its configuration and operation are the same.
  • Steps S100, S200, S300 have been described above with reference to FIGS.
  • the learning data database 100 included in the artificial intelligence-based program code evaluation system 20 the first preprocessor 200,
  • the redundant description of the configuration and operation (steps S100, S200, S300) of the first machine learning module 300 and the second preprocessor 400 is omitted, and the artificial intelligence-based program code evaluation system 20 Only the configuration and operations (steps S400, S500, and S600) of the included third preprocessor 500, the second machine learning module 600, and the fourth preprocessor 700 will be described in detail.
  • the AI-based program code evaluation system 20 shown in FIG. 6 and the AI-based program code evaluation method shown in FIG. 7 are program codes written by different learners for a program problem having the same complexity of a specific program code. It may be determined whether the specific program code is a normal code or an abnormal code based on whether it is significantly higher than the average complexity of the programs.
  • the third preprocessing unit 500 includes a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs) from the first preprocessing unit 200 , a plurality of readability Receive features R_Fs, and a plurality of quality features Q_Fs.
  • E_Fs execution features
  • T_CDs learning program codes
  • R_Fs readability Receive features
  • Q_Fs quality features
  • the third preprocessor 500 converts the learning program codes T_CDs having the maximum value of the score feature included in the plurality of execution features E_Fs among the plurality of learning program codes T_CDs to a perfect learning program Codes can be extracted (step S400).
  • the third preprocessor 500 and the second machine learning module 600 perform a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features of each of the perfect learning program codes.
  • An abnormal code detection model for estimating whether the program code is abnormal may be generated using the Q_Fs (step S500).
  • FIG. 8 is a flowchart illustrating an example of a step S500 of generating an abnormal code detection model of FIG. 7 .
  • the third preprocessor 500 converts the remaining quality features except for the quality features related to code complexity among the plurality of quality features Q_Fs of each of the perfect learning program codes into a plurality of modified quality features. It can be determined by the values (MQ_Fs) (step S510).
  • the third preprocessor 500 converts the remaining quality features to a plurality of quality features except for quality features corresponding to Cyclomatic complexity and Halstead'metrics among a plurality of quality features (Q_Fs) of each of the perfect learning program codes. It can be determined by the features (MQ_Fs).
  • the third preprocessing unit 500 may determine the average of the excluded quality features corresponding to the perfect learning program codes written for the same program problem among the perfect learning program codes as the average complexity of the same program problem. (Step S520).
  • the third preprocessing unit 500 sets the value of the excluded quality feature of the corresponding perfect learning program code and the average of the program problem corresponding to the corresponding perfect learning program code. Comparing the complexity, it is possible to determine the abnormal flag (ANF) of the corresponding perfect score learning program code (step S530).
  • the corresponding perfect learning program code determines an abnormality flag (ANF) of the corresponding perfect score learning program code as a first value to classify it as an abnormal code, and the value of the excluded quality feature of the corresponding perfect score learning program code is the corresponding perfect score learning program code If it is not greater than the average complexity of the program problem corresponding to , an abnormal flag (ANF) of the corresponding perfect learning program code is determined as a second value in order to classify the corresponding perfect learning program code as a normal code.
  • an abnormal flag (ANF) of the corresponding perfect learning program code is determined as a second value in order to classify the corresponding perfect learning program code as a normal code.
  • the third preprocessing unit 500 performs a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), a plurality of correction quality features (MQ_Fs), and an abnormal flag (E_Fs) of each of the perfect learning program codes.
  • E_Fs execution features
  • R_Fs readability features
  • MQ_Fs correction quality features
  • E_Fs abnormal flag
  • the second machine learning module 600 may include a second artificial neural network.
  • the second machine learning module 600 determines that the second artificial neural network performs a plurality of execution features (E_Fs) of each of the perfect learning program codes based on the abnormal flag (ANF) of each of the perfect learning program codes.
  • the second artificial neural network may be trained to classify the plurality of readability features (R_Fs), and the plurality of modified quality features (MQ_Fs) into one of a normal code (NM) and an abnormal code (ANM) (step S540).
  • the second artificial neural network when the anomalous flag ANF is the first value, the second artificial neural network includes a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and Classifies a plurality of modified quality features (MQ_Fs) as an anomalous code (ANM), and when the anomaly flag (ANF) is the second value, the second artificial neural network includes a plurality of execution features (E_Fs), a plurality of readability features
  • the second artificial neural network may be trained to classify the R_Fs and the plurality of modified quality features MQ_Fs into the normal code NM.
  • the second machine learning module 600 is configured to use a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of modification quality features (MQ_Fs) corresponding to the perfect learning program codes, After completing the learning, the second artificial neural network on which the learning has been completed may be determined as the abnormal code detection model (step S550).
  • E_Fs execution features
  • R_Fs readability features
  • MQ_Fs modification quality features
  • the fourth preprocessor 700 includes a plurality of execution evaluation features (EE_Fs) for the evaluation program code (E_CD) from the second preprocessor 400, a plurality of readability evaluation features ( RE_Fs), and a plurality of quality evaluation features (QE_Fs).
  • E_Fs execution evaluation features
  • RE_Fs readability evaluation features
  • QE_Fs quality evaluation features
  • the fourth preprocessor 700 and the second machine learning module 600 perform a plurality of execution evaluation features (EE_Fs) and a plurality of readability evaluation features (RE_Fs) of the abnormal code detection model and the evaluation program code (E_CD). ), and whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on the plurality of quality evaluation features QE_Fs may be determined (step S600 ).
  • the fourth preprocessor 700 selects a quality feature related to code complexity among a plurality of quality evaluation features QE_Fs of the evaluation program code E_CD received from the second preprocessor 400 .
  • the remaining quality features may be determined as a plurality of modified quality evaluation features (MQE_Fs).
  • the fourth preprocessor 700 converts the remaining quality features from among the plurality of quality evaluation features (QE_Fs) of the evaluation program code (E_CD) to the quality features corresponding to Cyclomatic complexity and Halstead'metrics in a plurality of correction qualities. It can be determined by evaluation features (MQE_Fs).
  • the fourth preprocessor 700 generates a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of correction quality evaluation features (MQE_Fs) of the evaluation program code (E_CD). 2 may be provided to the machine learning module 600 .
  • the second machine learning module 600 includes a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of modification quality evaluation features of the abnormal code detection model and evaluation program code (E_CD). It may be determined whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on (MQE_Fs).
  • the second machine learning module 600 may include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of modification quality evaluation features (MQE_Fs) of the evaluation program code (E_CD). ) is input to the abnormal code detection model, and it may be determined whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on a result output from the abnormal code detection model.
  • E_Fs execution evaluation features
  • RE_Fs readability evaluation features
  • MQE_Fs modification quality evaluation features
  • the artificial intelligence-based program code evaluation system 20 and the artificial intelligence-based program code evaluation method according to embodiments of the present invention are machine learning-based program codes in various ways.
  • the specific program code is considered normal code based on whether the complexity of the program code is significantly higher than the average complexity of program codes written by other learners for the same program problem. You can also provide whether or not it is an abnormal code written for the purpose of answering only the correct answer without considering cognition or efficiency and reusability.
  • the AI-based program code evaluation system 20 and the AI-based program code evaluation method according to embodiments of the present invention can provide more accurate and detailed evaluation results for program codes.
  • the present invention can be usefully used to improve the speed of evaluation and maintain consistency of evaluation while evaluating computer program codes in multiple ways.

Abstract

An artificial-intelligence-based program code evaluation method generates a program level estimation model for estimating the level of a program code by using a plurality of execution features related to the execution of the program code and a plurality of quality features related to the quality of the program code, determines a plurality of execution evaluation features and a plurality of quality evaluation features corresponding to the plurality of execution features and the plurality of quality features with respect to an evaluation program code, respectively, and determines the level of the evaluation program code on the basis of the program level estimation model and the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code.

Description

인공지능 기반의 프로그램 코드 평가 시스템 및 방법AI-based program code evaluation system and method
본 발명은 인공지능(Artificial Intelligence; AI) 기반의 프로그램 코드 평가 시스템 및 방법에 관한 것으로, 보다 상세하게는 인공지능 기반으로 컴퓨터 프로그램 코드를 평가하여 컴퓨터 프로그램 코드의 수준을 평가하는 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for evaluating a program code based on artificial intelligence (AI), and more particularly, to a system and method for evaluating the level of a computer program code by evaluating a computer program code based on artificial intelligence will be.
4차 산업이 발전함에 따라 현대 사회는 하드웨어 중심 사회에서 소프트웨어 중심 사회로 빠르게 변화하고 있다. 따라서 초등학교에서부터 소프트웨어 교육 과정이 개설되는 등 소프트웨어 교육의 중요성이 매우 커지고 있다.With the development of the 4th industry, the modern society is rapidly changing from a hardware-oriented society to a software-oriented society. Therefore, the importance of software education is growing very much, with software education courses being opened from elementary school.
이로 인해 클라우드 기반으로 컴퓨터 프로그래밍 교육을 제공하는 시스템에 대한 연구가 활발히 이루어지고 있다.For this reason, research on a system that provides computer programming education based on cloud is being actively conducted.
그러나 기존의 클라우드 기반 컴퓨터 프로그래밍 교육 시스템은 작성된 프로그램 코드를 미리 정해놓은 답안과 단순 비교하여 프로그램 코드를 평가하므로, 학습자들마다 다양하게 작성된 프로그램 코드를 제대로 평가하기 어렵다는 문제점이 있다.However, since the existing cloud-based computer programming education system evaluates the program code by simply comparing the written program code with a predetermined answer, there is a problem in that it is difficult to properly evaluate the program code written in various ways for each learner.
한편, 학습자들마다 다양한 형태로 작성된 프로그램 코드를 정확하게 평가하기 위해 사람이 직접 프로그램 코드를 평가하는 경우도 있으나, 사람이 직접 프로그램 코드를 평가하는 경우 프로그램 코드를 평가하는 데에 소요되는 시간이 매우 증가한다는 문제점이 있다. 또한, 평가하는 사람들마다 평가의 기준이 상이하기 때문에 프로그램 코드 평가의 일관성이 유지되기 어렵다는 문제점이 있다.On the other hand, there are cases in which a person directly evaluates the program code to accurately evaluate the program code written in various forms for each learner. However, when a person directly evaluates the program code, the time required to evaluate the program code increases significantly There is a problem that In addition, there is a problem in that it is difficult to maintain the consistency of program code evaluation because evaluation criteria are different for each evaluator.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 인공지능(Artificial Intelligence; AI) 기반으로 컴퓨터 프로그램 코드를 평가함으로써 프로그램 코드를 다면적으로 평가할 수 있고 평가의 일관성도 유지할 수 있는 인공지능 기반의 프로그램 코드 평가 시스템 및 방법을 제공하는 것이다.An object of the present invention to solve the above problems is an artificial intelligence-based program that can evaluate the program code in multiple ways and maintain the consistency of the evaluation by evaluating the computer program code based on artificial intelligence (AI). To provide a code evaluation system and method.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법에서, 프로그램 코드의 실행(execution)과 관련되는 복수의 실행 피처들(features) 및 상기 프로그램 코드의 품질(quality)과 관련되는 복수의 품질 피처들을 사용하여 상기 프로그램 코드의 레벨을 추정하는 프로그래밍 레벨 추정 모델을 생성하고, 평가 프로그램 코드에 대해 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들에 각각 대응되는 복수의 실행 평가 피처들 및 복수의 품질 평가 피처들을 결정하고, 상기 프로그래밍 레벨 추정 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 레벨을 결정한다.In order to achieve the above object of the present invention, in an artificial intelligence-based program code evaluation method according to an embodiment of the present invention, a plurality of execution features related to the execution of the program code and the generating a programming level estimation model for estimating a level of the program code using a plurality of quality features related to the quality of the program code, the plurality of execution features and the plurality of quality features for evaluating program code determine a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to The level of the evaluation program code is determined.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 시스템은 제1 전처리부, 제2 전처리부, 및 제1 머신 러닝 모듈을 포함한다. 상기 제1 전처리부는 복수의 학습자들이 복수의 프로그램 문제들에 대해 작성한 복수의 학습 프로그램 코드들 각각에 대해 프로그램 코드의 실행과 관련되는 복수의 실행 피처들 및 상기 프로그램 코드의 품질과 관련되는 복수의 품질 피처들을 결정한다. 상기 제2 전처리부는 평가 프로그램 코드에 대해 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들에 각각 대응되는 복수의 실행 평가 피처들 및 복수의 품질 평가 피처들을 결정한다. 상기 제1 머신 러닝 모듈은 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들을 제1 내지 제n 레벨들 중의 하나로 분류하는 학습을 수행하여 프로그래밍 레벨 추정 모델을 생성하고, 상기 프로그래밍 레벨 추정 모델을 사용하여 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들 및 상기 복수의 품질 평가 피처들을 상기 제1 내지 제n 레벨들 중의 하나로 분류하여 상기 분류된 레벨을 상기 평가 프로그램 코드의 레벨로 결정한다.In order to achieve the above object of the present invention, an artificial intelligence-based program code evaluation system according to an embodiment of the present invention includes a first preprocessor, a second preprocessor, and a first machine learning module. The first preprocessor includes a plurality of execution features related to execution of the program code and a plurality of qualities related to the quality of the program code for each of a plurality of learning program codes written by a plurality of learners for a plurality of program problems. Determine the features. The second preprocessor determines a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to the plurality of execution features and the plurality of quality features with respect to the evaluation program code. The first machine learning module performs learning to classify the plurality of execution features and the plurality of quality features of each of the plurality of learning program codes into one of first to n-th levels to generate a programming level estimation model and classifying the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code into one of the first to n-th levels using the programming level estimation model to determine the classified level as the evaluation program It is determined by the level of the code.
본 발명의 실시예들에 따른 인공지능(Artificial Intelligence; AI) 기반의 프로그램 코드 평가 시스템 및 인공지능 기반의 프로그램 코드 평가 방법은 머신 러닝을 사용하여 프로그램 코드를 평가하므로, 프로그램 코드를 다면적으로 평가할 수 있고, 평가의 속도를 향상시킬 수 있으며, 평가의 일관성을 유지할 수 있다.The artificial intelligence (AI)-based program code evaluation system and the artificial intelligence-based program code evaluation method according to embodiments of the present invention evaluate the program code using machine learning, so that the program code can be evaluated in multiple ways. It can improve the speed of evaluation and maintain consistency of evaluation.
도 1은 본 발명의 일 실시예에 따른 인공지능(Artificial Intelligence; AI) 기반의 프로그램 코드 평가 시스템을 나타내는 도면이다.1 is a diagram illustrating an artificial intelligence (AI)-based program code evaluation system according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법을 나타내는 순서도이다.2 is a flowchart illustrating an AI-based program code evaluation method according to an embodiment of the present invention.
도 3은 도 2의 프로그래밍 레벨 추정 모델을 생성하는 단계의 일 예를 나타내는 순서도이다.3 is a flowchart illustrating an example of a step of generating the programming level estimation model of FIG. 2 .
도 4는 도 1의 제1 머신 러닝 모듈에 포함되는 제1 인공 신경망의 일 예를 나타내는 도면이다.4 is a diagram illustrating an example of a first artificial neural network included in the first machine learning module of FIG. 1 .
도 5는 도 2의 프로그래밍 레벨 추정 모델을 생성하는 단계의 다른 예를 나타내는 순서도이다.5 is a flowchart illustrating another example of a step of generating the programming level estimation model of FIG. 2 .
도 6은 본 발명의 다른 실시예에 따른 인공지능 기반의 프로그램 코드 평가 시스템을 나타내는 도면이다.6 is a diagram illustrating an AI-based program code evaluation system according to another embodiment of the present invention.
도 7은 본 발명의 다른 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법을 나타내는 순서도이다.7 is a flowchart illustrating an AI-based program code evaluation method according to another embodiment of the present invention.
도 8은 도 7의 비정상 코드 탐지 모델을 생성하는 단계의 일 예를 나타내는 순서도이다.8 is a flowchart illustrating an example of a step of generating an abnormal code detection model of FIG. 7 .
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numerals are used for the same components in the drawings, and repeated descriptions of the same components are omitted.
도 1은 본 발명의 일 실시예에 따른 인공지능(Artificial Intelligence; AI) 기반의 프로그램 코드 평가 시스템을 나타내는 도면이다.1 is a diagram illustrating an artificial intelligence (AI)-based program code evaluation system according to an embodiment of the present invention.
도 1에 도시된 인공지능 기반의 프로그램 코드 평가 시스템(10)은 프로그램 코드의 다양한 특징들을 분석하여 복수의 피처들을 결정하고, 머신 러닝(machine learning)을 통해 상기 복수의 피처들을 사용하여 상기 프로그램 코드의 수준을 평가하는 학습을 수행하여 프로그램 평가 모델을 생성한다.The artificial intelligence-based program code evaluation system 10 shown in FIG. 1 analyzes various characteristics of the program code to determine a plurality of features, and uses the plurality of features through machine learning to determine the program code A program evaluation model is created by performing learning to evaluate the level of
이후, 인공지능 기반의 프로그램 코드 평가 시스템(10)은 평가를 하고자 하는 프로그램 코드를 분석하여 상기 복수의 피처들을 결정하고, 상기 복수의 피처들을 상기 프로그램 평가 모델에 입력한다.Thereafter, the artificial intelligence-based program code evaluation system 10 analyzes the program code to be evaluated, determines the plurality of features, and inputs the plurality of features to the program evaluation model.
상기 프로그램 평가 모델은 상기 입력된 복수의 피처들에 기초하여 상기 프로그램 코드의 평가 결과를 출력한다.The program evaluation model outputs an evaluation result of the program code based on the plurality of input features.
따라서 본 발명의 실시예들에 따른 인공지능 기반의 프로그램 코드 평가 시스템(10)은 프로그램 코드의 다양한 특징들에 기초하여 상기 프로그램 코드를 다면적으로 평가할 수 있다.Accordingly, the artificial intelligence-based program code evaluation system 10 according to embodiments of the present invention can evaluate the program code in multiple ways based on various characteristics of the program code.
또한, 인공지능 기반의 프로그램 코드 평가 시스템(10)은 머신 러닝을 통해 학습된 평가 모델을 사용하여 프로그램 코드들을 평가하므로, 평가의 일관성도 유지할 수 있다.In addition, since the artificial intelligence-based program code evaluation system 10 evaluates program codes using an evaluation model learned through machine learning, it is possible to maintain the consistency of evaluation.
도 2는 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법을 나타내는 순서도이다.2 is a flowchart illustrating an AI-based program code evaluation method according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법에서, 프로그램 코드를 분석하여 결정되는 상기 프로그램 코드의 실행(execution)과 관련되는 복수의 실행 피처들(features) 및 상기 프로그램 코드의 품질(quality)과 관련되는 복수의 품질 피처들을 사용하여 상기 프로그램 코드의 레벨을 추정하는 프로그래밍 레벨 추정 모델을 생성한다(단계 S100).Referring to FIG. 2 , in an artificial intelligence-based program code evaluation method according to an embodiment of the present invention, a plurality of execution features related to the execution of the program code determined by analyzing the program code (features) and generating a programming level estimation model for estimating the level of the program code using a plurality of quality features related to the quality of the program code (step S100).
한편, 상기 프로그래밍 레벨 추정 모델을 생성하기 위해 상기 프로그램 코드에 대해 수행했던 분석과 동일한 분석을 평가 대상인 평가 프로그램 코드에 대해 수행하여 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들에 각각 대응되는 복수의 실행 평가 피처들 및 복수의 품질 평가 피처들을 결정한다(단계 S200).Meanwhile, in order to generate the programming level estimation model, the same analysis as that performed on the program code is performed on the evaluation program code to be evaluated, so that the plurality of execution features and the plurality of quality features respectively corresponding to the plurality of quality features are performed. Determine the performance evaluation features and the plurality of quality evaluation features (step S200).
이후, 상기 프로그래밍 레벨 추정 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 레벨을 결정한다(단계 S300).Thereafter, the level of the evaluation program code is determined based on the programming level estimation model and the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code (step S300).
일 실시예에 있어서, 도 2에 도시된 인공지능 기반의 프로그램 코드 평가 방법은 상기 프로그램 코드의 가독성(readability)과 관련되는 복수의 가독성 피처들을 추가적으로 사용하여 상기 프로그래밍 레벨 추정 모델을 생성할 수 있다(단계 S100).In one embodiment, the AI-based program code evaluation method shown in FIG. 2 may generate the programming level estimation model by additionally using a plurality of readability features related to the readability of the program code ( step S100).
예를 들어, 본 발명의 일 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법은 상기 프로그램 코드의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 종합적으로 사용하여 상기 프로그램 코드의 레벨을 추정하는 상기 프로그래밍 레벨 추정 모델을 생성할 수 있다.For example, the artificial intelligence-based program code evaluation method according to an embodiment of the present invention uses the plurality of execution features, the plurality of readability features, and the plurality of quality features of the program code comprehensively. The programming level estimation model for estimating the level of the program code may be generated.
이 경우, 상기 프로그래밍 레벨 추정 모델을 생성하기 위해 상기 프로그램 코드에 대해 수행했던 분석과 동일한 분석을 상기 평가 프로그램 코드에 대해 수행하여 상기 복수의 가독성 피처들에 대응되는 복수의 가독성 평가 피처들을 추가적으로 결정할 수 있다(단계 S200).In this case, the same analysis as performed on the program code to generate the programming level estimation model may be performed on the evaluation program code to additionally determine a plurality of readability evaluation features corresponding to the plurality of readability features. There is (step S200).
이후, 상기 프로그래밍 레벨 추정 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들, 상기 복수의 가독성 평가 피처들, 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 레벨을 결정할 수 있다(단계 S300).Thereafter, the level of the evaluation program code may be determined based on the programming level estimation model and the plurality of execution evaluation features, the plurality of readability evaluation features, and the plurality of quality evaluation features of the evaluation program code. (Step S300).
도 2에 도시된 인공지능 기반의 프로그램 코드 평가 방법은 도 1의 인공지능 기반의 프로그램 코드 평가 시스템(10)을 통해 수행될 수 있다.The AI-based program code evaluation method shown in FIG. 2 may be performed through the AI-based program code evaluation system 10 of FIG. 1 .
이하, 도 1 및 2를 참조하여 인공지능 기반의 프로그램 코드 평가 시스템(10)의 구성 및 동작과 인공지능 기반의 프로그램 코드 평가 시스템(10)에 의해 수행되는 인공지능 기반의 프로그램 코드 평가 방법에 대해 상세히 설명한다.Hereinafter, with reference to FIGS. 1 and 2 , the configuration and operation of the artificial intelligence-based program code evaluation system 10 and the artificial intelligence-based program code evaluation method performed by the artificial intelligence-based program code evaluation system 10 will be described. It will be described in detail.
도 1을 참조하면, 인공지능 기반의 프로그램 코드 평가 시스템(10)은 학습 데이터 데이터베이스(TRAINING DATA DB)(100), 제1 전처리부(PREPROCESSOR1)(200), 제1 머신 러닝 모듈(MACHINE LEARNING MODULE1)(300), 및 제2 전처리부(PREPROCESSOR2)(400)를 포함할 수 있다.1, the artificial intelligence-based program code evaluation system 10 is a learning data database (TRAINING DATA DB) 100, a first preprocessor (PREPROCESSOR1) 200, a first machine learning module (MACHINE LEARNING MODULE1) ) 300 , and a second preprocessor (PREPROCESSOR2) 400 may be included.
학습 데이터 데이터베이스(100)는 복수의 학습자들이 복수의 프로그램 문제들에 대해 작성한 복수의 학습 프로그램 코드들(T_CDs)을 저장할 수 있다.The learning data database 100 may store a plurality of learning program codes T_CDs written by a plurality of learners for a plurality of program problems.
예를 들어, 상기 복수의 프로그램 문제들 중의 적어도 일부가 상기 복수의 학습자들 각각에게 제공되고, 상기 복수의 학습자들 각각이 제공된 프로그램 문제들에 대해 작성한 프로그램 코드들은 복수의 학습 프로그램 코드들(T_CDs)로서 학습 데이터 데이터베이스(100)에 저장될 수 있다.For example, at least some of the plurality of program problems are provided to each of the plurality of learners, and program codes written for the program problems provided by each of the plurality of learners are a plurality of learning program codes (T_CDs) as may be stored in the learning data database 100 .
도 3은 도 2의 프로그래밍 레벨 추정 모델을 생성하는 단계(S100)의 일 예를 나타내는 순서도이다.FIG. 3 is a flowchart illustrating an example of generating the programming level estimation model of FIG. 2 ( S100 ).
도 1 내지 3을 참조하면, 제1 전처리부(200)는 학습 데이터 데이터베이스(100)에 저장된 복수의 학습 프로그램 코드들(T_CDs)을 순차적으로 독출하고, 독출된 학습 프로그램 코드(T_CD)의 특징들을 분석하여 독출된 학습 프로그램 코드(T_CD)의 실행과 관련되는 복수의 실행 피처들(E_Fs), 독출된 학습 프로그램 코드(T_CD)의 가독성과 관련되는 복수의 가독성 피처들(R_Fs), 및 독출된 학습 프로그램 코드(T_CD)의 품질과 관련되는 복수의 품질 피처들(Q_Fs)을 결정할 수 있다(단계 S110).1 to 3 , the first preprocessing unit 200 sequentially reads a plurality of learning program codes T_CDs stored in the learning data database 100 and reads the characteristics of the read learning program codes T_CD. A plurality of execution features (E_Fs) related to the execution of the analyzed and read learning program code (T_CD), a plurality of readability features (R_Fs) related to the readability of the read learning program code (T_CD), and read learning A plurality of quality features Q_Fs related to the quality of the program code T_CD may be determined (step S110 ).
일 실시예에 있어서, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)의 실행 결과를 분석하여 복수의 실행 피처들(E_Fs)을 결정할 수 있다.In an embodiment, the first preprocessor 200 may determine the plurality of execution features E_Fs by analyzing the execution result of the corresponding learning program code T_CD.
일 실시예에 있어서, 복수의 실행 피처들(E_Fs)은 상응하는 학습 프로그램 코드(T_CD)가 복수의 테스트 케이스들에 대해 실행되어 출력되는 복수의 출력값들 중에서 정답의 개수에 기초하여 결정되는 점수 피처를 포함할 수 있다.In one embodiment, the plurality of execution features (E_Fs) is a score feature determined based on the number of correct answers among a plurality of output values output by executing the corresponding learning program code (T_CD) for a plurality of test cases may include
예를 들어, 상기 복수의 프로그램 문제들 별로 상기 복수의 테스트 케이스들 및 상기 복수의 테스트 케이스들 각각에 대한 정답이 미리 정해질 수 있다.For example, the plurality of test cases and a correct answer for each of the plurality of test cases may be predetermined for each of the plurality of program problems.
일 실시예에 있어서, 상기 복수의 프로그램 문제들 별로 미리 정해진 상기 복수의 테스트 케이스들 및 상기 복수의 테스트 케이스들 각각에 대한 정답은 학습 데이터 데이터베이스(100)에 저장될 수 있다.In an embodiment, the plurality of test cases predetermined for each of the plurality of program problems and the correct answer for each of the plurality of test cases may be stored in the learning data database 100 .
이 경우, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)에 대응되는 프로그램 문제의 상기 복수의 테스트 케이스들 및 상기 복수의 테스트 케이스들에 대한 정답을 학습 데이터 데이터베이스(100)로부터 독출하고, 상응하는 학습 프로그램 코드(T_CD)를 상기 복수의 테스트 케이스들에 대해 실행시켜 상응하는 학습 프로그램 코드(T_CD)로부터 출력되는 상기 복수의 출력값들 중에서 상기 정답과 일치하는 개수를 카운트하여 상기 점수 피처를 결정할 수 있다.In this case, the first preprocessor 200 reads the plurality of test cases of the program problem corresponding to the corresponding learning program code T_CD and the correct answers to the plurality of test cases from the learning data database 100 . and executing the corresponding learning program code (T_CD) for the plurality of test cases, and counting the number that matches the correct answer among the plurality of output values output from the corresponding learning program code (T_CD) to count the score feature can be decided
따라서 상기 점수 피처는 상응하는 학습 프로그램 코드(T_CD)의 정확성에 대한 척도를 나타낼 수 있다.Thus, the score feature may represent a measure of the correctness of the corresponding learning program code (T_CD).
이상, 제1 전처리부(200)가 상응하는 학습 프로그램 코드(T_CD)를 상기 복수의 테스트 케이스들에 대해 실행시켜 상기 점수 피처를 결정하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다.In the above, it has been described that the first preprocessor 200 determines the score feature by executing the corresponding learning program code T_CD for the plurality of test cases, but the present invention is not limited thereto.
실시예에 따라서 복수의 학습 프로그램 코드들(T_CDs) 각각을 상응하는 복수의 테스트 케이스들에 대해 실행시켜 결정되는 상기 점수 피처는 복수의 학습 프로그램 코드들(T_CDs) 각각과 연관되어 학습 데이터 데이터베이스(100)에 미리 저장될 수 있다. 이 경우, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)의 상기 점수 피처를 학습 데이터 데이터베이스(100)로부터 독출하여 획득할 수 있다.According to an embodiment, the score feature determined by executing each of the plurality of learning program codes (T_CDs) for the corresponding plurality of test cases is associated with each of the plurality of learning program codes (T_CDs) in the learning data database 100 ) can be stored in advance. In this case, the first preprocessor 200 may read and obtain the score feature of the corresponding learning program code T_CD from the learning data database 100 .
일 실시예에 있어서, 복수의 실행 피처들(E_Fs)은 상응하는 학습 프로그램 코드(T_CD)가 상기 복수의 테스트 케이스들에 대해 실행되어 상기 복수의 출력값들을 출력하는 데에 소요되는 시간에 기초하여 결정되는 실행시간 피처를 더 포함할 수 있다.In one embodiment, the plurality of execution features (E_Fs) are determined based on a time taken for a corresponding learning program code (T_CD) to be executed for the plurality of test cases and output the plurality of output values. It may further include a runtime feature that is
예를 들어, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)가 상기 복수의 테스트 케이스들에 대해 실행되어 상기 복수의 출력값들을 출력하는 데에 소요되는 시간들의 평균을 상기 실행시간 피처로 결정할 수 있다.For example, the first preprocessor 200 calculates an average of the times required for the corresponding training program code T_CD to be executed for the plurality of test cases and output the plurality of output values as the execution time feature. can be decided with
따라서 상기 실행시간 피처는 상응하는 학습 프로그램 코드(T_CD)의 효율성에 대한 척도를 나타낼 수 있다.Thus, the runtime feature may represent a measure of the effectiveness of the corresponding learning program code (T_CD).
일 실시예에 있어서, 복수의 실행 피처들(E_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 대응되는 프로그램 문제와 동일한 프로그램 문제에 대해 작성된 학습 프로그램 코드들(T_CDs)의 상기 점수 피처들에 대한 통계값에 기초하여 결정되는 난이도 피처를 더 포함할 수 있다.In one embodiment, a plurality of execution features (E_Fs) are statistics about the score features of learning program codes (T_CDs) written for the same program problem as the program problem corresponding to the corresponding learning program code (T_CD) It may further include a difficulty feature determined based on the value.
예를 들어, 제1 전처리부(200)는 동일한 프로그램 문제에 대해 작성된 학습 프로그램 코드들(T_CDs)에 대한 상기 점수 피처들의 평균값을 상기 동일한 프로그램 문제에 상응하는 학습 프로그램 코드들(T_CDs)의 상기 난이도 피처로 결정할 수 있다.For example, the first preprocessing unit 200 calculates the average value of the score features for the learning program codes T_CDs written for the same program problem and the difficulty level of the learning program codes T_CDs corresponding to the same program problem. can be determined by the feature.
따라서 상기 난이도 피처는 상응하는 학습 프로그램 코드(T_CD)에 대응되는 프로그램 문제의 난이도를 나타낼 수 있다.Accordingly, the difficulty feature may indicate the difficulty of the program problem corresponding to the corresponding learning program code T_CD.
일 실시예에 있어서, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)에 사용된 C, JAVA, PYTHON 등과 같은 프로그래밍 언어에 무관하게, 상응하는 학습 프로그램 코드(T_CD)에 포함되는 텍스트의 가독성을 분석하여 복수의 가독성 피처들(R_Fs)을 결정할 수 있다.In one embodiment, the first preprocessor 200 is the text included in the corresponding learning program code (T_CD), regardless of the programming language such as C, JAVA, PYTHON, etc. used in the corresponding learning program code (T_CD) A plurality of readability features (R_Fs) may be determined by analyzing the readability of .
일 실시예에 있어서, 복수의 가독성 피처들(R_Fs)은 상응하는 학습 프로그램 코드(T_CD)의 라인 당 평균 단어 수 및 단어 당 평균 음절 수에 기초하여 결정되는 제1 가독성 피처를 포함할 수 있다.In one embodiment, the plurality of readability features R_Fs may include a first readability feature determined based on the average number of words per line and the average number of syllables per word of the corresponding learning program code T_CD.
일 실시예에 있어서, 복수의 가독성 피처들(R_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 포함되는 단어들 중에서 3음절 이상 단어의 비율에 기초하여 결정되는 제2 가독성 피처를 포함할 수 있다.In an embodiment, the plurality of readability features R_Fs may include a second readability feature determined based on a ratio of words with three or more syllables among words included in the corresponding learning program code T_CD.
일 실시예에 있어서, 복수의 가독성 피처들(R_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 포함되는 단어들 중에서 미리 정해진 표준 단어 리스트에 포함되지 않는 단어들의 비율에 기초하여 결정되는 제3 가독성 피처를 포함할 수 있다.In one embodiment, the plurality of readability features R_Fs is a third readability feature determined based on a ratio of words not included in a predetermined standard word list among words included in the corresponding learning program code T_CD. may include
실시예에 따라서, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)에 대해 일반적인 텍스트의 가독성 지표로 사용되는 Flesch Reading Ease, Flesch-Kincaid Grade Level, Coleman-Liau Index, Gunning Fog Index, SMOG Index 등을 계산하여 복수의 가독성 피처들(R_Fs)로 결정할 수도 있다.According to an embodiment, the first preprocessing unit 200 includes Flesch Reading Ease, Flesch-Kincaid Grade Level, Coleman-Liau Index, Gunning Fog Index, It is also possible to determine the plurality of readability features (R_Fs) by calculating the SMOG Index or the like.
따라서 복수의 가독성 피처들(R_Fs)은 상응하는 학습 프로그램 코드(T_CD)가 얼마나 읽기에 편안하게 작성되어 있는지에 대한 척도를 나타낼 수 있다.Accordingly, the plurality of readability features R_Fs may represent a measure of how comfortable the corresponding learning program code T_CD is to be written.
일 실시예에 있어서, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)의 복잡도 및 잠재적인 오류 가능성을 분석하여 복수의 품질 피처들(Q_Fs)을 결정할 수 있다.In an embodiment, the first preprocessor 200 may determine the plurality of quality features Q_Fs by analyzing the complexity and potential error potential of the corresponding training program code T_CD.
일 실시예에 있어서, 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 구현된 함수들에 포함되는 조건 분기점들의 개수에 기초하여 결정되는 제1 품질 피처를 포함할 수 있다.In an embodiment, the plurality of quality features Q_Fs may include a first quality feature determined based on the number of conditional branch points included in functions implemented in the corresponding learning program code T_CD.
여기서, 상기 조건 분기점들은 if, while, for 등과 같은 구문들을 포함할 수 있다.Here, the conditional branching points may include statements such as if, while, and for.
일 실시예에 있어서, 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 포함되는 라인들의 개수에 기초하여 결정되는 제2 품질 피처를 포함할 수 있다.In one embodiment, the plurality of quality features Q_Fs may include a second quality feature determined based on the number of lines included in the corresponding learning program code T_CD.
일 실시예에 있어서, 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)에서 미리 정해진 특정 위치들에 삽입된 스페이스의 개수의 표준 편차에 기초하여 결정되는 제3 품질 피처를 포함할 수 있다.In one embodiment, the plurality of quality features (Q_Fs) may include a third quality feature determined based on the standard deviation of the number of spaces inserted at specific predetermined positions in the corresponding learning program code (T_CD). can
여기서, 상기 특정 위치들은 각 라인의 시작 지점, 각 라인의 종료 지점, 함수의 시작을 나타내는 괄호의 직후, 함수의 종료를 나타내는 괄호의 직전, 구조체의 시작을 나타내는 괄호의 직후, 및 구조체의 종료를 나타내는 괄호의 직전 중의 적어도 하나를 포함할 수 있다.Here, the specific positions are the start point of each line, the end point of each line, immediately after the parentheses indicating the start of the function, immediately before the parentheses indicating the end of the function, immediately after the parentheses indicating the start of the structure, and the end of the structure It may include at least one of the immediately preceding parentheses.
일 실시예에 있어서, 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 포함되는 주석들의 개수 및 상기 주석들 각각의 문자 개수에 기초하여 결정되는 제4 품질 피처를 포함할 수 있다.In one embodiment, the plurality of quality features (Q_Fs) may include a fourth quality feature determined based on the number of annotations included in the corresponding learning program code (T_CD) and the number of characters in each of the annotations. have.
일 실시예에 있어서, 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)에 포함되는 비어 있는 조건문의 개수, 사용되지 않는 변수의 개수, 중복되는 코드, 및 중복되는 조건 연산자의 개수 중의 적어도 하나에 기초하여 결정되는 제5 품질 피처를 포함할 수 있다.In one embodiment, the plurality of quality features (Q_Fs) include the number of empty conditional statements included in the corresponding learning program code (T_CD), the number of unused variables, the overlapping code, and the number of overlapping condition operators. a fifth quality feature determined based on at least one of
실시예에 따라서, 제1 전처리부(200)는 상응하는 학습 프로그램 코드(T_CD)에 대해 일반적으로 프로그램 코드의 복잡성 지표로 사용되는 Cyclomatic complexity, Halstead’metrics 등을 계산하여 복수의 품질 피처들(Q_Fs)로 결정할 수도 있다.According to the embodiment, the first preprocessing unit 200 calculates cyclomatic complexity, Halstead'metrics, etc., which are generally used as a complexity index of the program code, for the corresponding learning program code (T_CD) to obtain a plurality of quality features (Q_Fs). ) can also be determined.
다른 실시예에 따라서, 제1 전처리부(200)는 일반적으로 프로그램 코드의 잠재적인 오류 가능성을 분석하는 데에 사용되는 OCLint 툴을 사용하여 상응하는 학습 프로그램 코드(T_CD)를 분석하여 산출되는 지표를 복수의 품질 피처들(Q_Fs)로 결정할 수도 있다. OCLint 툴은 널리 공지된 툴이므로, OCLint 툴의 동작 및 OCLint 툴로부터 산출되는 지표에 대한 상세한 설명은 생략한다.According to another embodiment, the first preprocessor 200 analyzes the corresponding learning program code (T_CD) using the OCLint tool, which is generally used to analyze the potential error of the program code, and returns an index calculated. It may be determined with a plurality of quality features (Q_Fs). Since the OCLint tool is a well-known tool, detailed descriptions of the operation of the OCLint tool and indicators calculated from the OCLint tool will be omitted.
다시 도 1 및 3을 참조하면, 제1 전처리부(200)는 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 제1 머신 러닝 모듈(300)에 제공하고, 제1 머신 러닝 모듈(300)은 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 제1 내지 제n(n은 양의 정수) 레벨들(LV1~LVn) 중의 하나로 분류하는 학습을 수행하여 상기 프로그래밍 레벨 추정 모델을 결정할 수 있다(단계 S140).Referring back to FIGS. 1 and 3 , the first preprocessing unit 200 includes a plurality of execution features (E_Fs) of each of a plurality of learning program codes (T_CDs), a plurality of readability features (R_Fs), and a plurality of qualities Provides the features (Q_Fs) to the first machine learning module 300, the first machine learning module 300 is a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs), a plurality of readability The programming level estimation model is determined by performing learning to classify the features R_Fs and the plurality of quality features Q_Fs into one of the first to nth (n is a positive integer) levels LV1 to LVn. It can be done (step S140).
일 실시예에 있어서, 학습 데이터 데이터베이스(100)는 복수의 학습 프로그램 코드들(T_CDs) 각각을 작성한 학습자의 프로그래밍 경력 기간(CR)을 상응하는 학습 프로그램 코드(T_CD)와 연관시켜 미리 저장할 수 있다.In an embodiment, the learning data database 100 may store in advance the programming career period CR of the learner who wrote each of the plurality of learning program codes T_CDs in association with the corresponding learning program code T_CD.
이 경우, 제1 전처리부(200)는 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 상응하는 프로그래밍 경력 기간(CR)과 함께 제1 머신 러닝 모듈(300)에 제공하고, 제1 머신 러닝 모듈(300)은 복수의 학습 프로그램 코드들(T_CDs) 각각의 프로그래밍 경력 기간(CR)에 기초하여 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 제1 내지 제n 레벨들(LV1~LVn) 중의 하나로 분류하는 학습을 수행하여 상기 프로그래밍 레벨 추정 모델을 결정할 수 있다.In this case, the first preprocessor 200 performs a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs). provide to the first machine learning module 300 together with a corresponding programming career duration (CR), wherein the first machine learning module 300 is based on the programming career duration (CR) of each of the plurality of learning program codes (T_CDs) The plurality of learning program codes (T_CDs) of the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs) of each of the first to n-th levels (LV1 ~ LVn) may be performed to determine the programming level estimation model.
일 실시예에 있어서, 제1 머신 러닝 모듈(300)은 제1 인공 신경망(artificial neural network)을 포함할 수 있다.In an embodiment, the first machine learning module 300 may include a first artificial neural network.
도 4는 도 1의 제1 머신 러닝 모듈에 포함되는 제1 인공 신경망의 일 예를 나타내는 도면이다.4 is a diagram illustrating an example of a first artificial neural network included in the first machine learning module of FIG. 1 .
일 실시예에 있어서, 상기 제1 인공 신경망은 one-hot 인코딩 방식으로 인코딩된 결과 데이터를 생성할 수 있다.In an embodiment, the first artificial neural network may generate result data encoded by a one-hot encoding method.
이 경우, 도 4에 도시된 바와 같이, 상기 제1 인공 신경망은 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)의 개수와 동일한 개수의 입력 노드들을 포함하는 입력층(INPUT LAYER), 복수의 노드들을 포함하는 적어도 하나의 은닉층(HIDDEN LAYER), 및 n개의 출력 노드들을 포함하는 출력층(OUTPUT LAYER)을 포함할 수 있다.In this case, as shown in FIG. 4 , the first artificial neural network has the same number of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs). It may include an input layer including input nodes (INPUT LAYER), at least one hidden layer (HIDDEN LAYER) including a plurality of nodes, and an output layer (OUTPUT LAYER) including n output nodes.
복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs) 각각은 상기 제1 인공 신경망의 상기 입력층에 포함되는 상기 입력 노드들 각각에 입력되고, 상기 제1 인공 신경망은 상기 출력층에 포함되는 상기 출력 노드들로부터 출력되는 값을 통해 제1 내지 제n 레벨들(LV1~LVn) 중의 하나를 나타낼 수 있다.Each of a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) is input to each of the input nodes included in the input layer of the first artificial neural network, The first artificial neural network may indicate one of first to n-th levels LV1 to LVn through values output from the output nodes included in the output layer.
도 4에는 예시적으로 상기 제1 인공 신경망이 하나의 은닉층을 포함하는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 실시예에 따라서 상기 제1 인공 신경망은 복수의 은닉층들을 포함할 수도 있다.4 exemplarily shows that the first artificial neural network includes one hidden layer, but the present invention is not limited thereto, and according to an embodiment, the first artificial neural network may include a plurality of hidden layers.
제1 머신 러닝 모듈(300)은 상기 제1 인공 신경망이 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)에 상응하는 학습 프로그램 코드를 작성한 학습자의 프로그래밍 경력 기간(CR)에 기초하여 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 제1 내지 제n 레벨들(LV1~LVn) 중의 하나로 분류하도록 상기 제1 인공 신경망을 학습시킬 수 있다.In the first machine learning module 300, the first artificial neural network writes a training program code corresponding to a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs). Based on the learner's programming career period (CR), the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs) are set to the first to n-th levels LV1 to LVn. ), the first artificial neural network may be trained to classify as one of.
예를 들어, 상기 복수의 학습자들의 프로그래밍 경력 기간을 1년 이상의 간격으로 제1 내지 제n 구간들로 구분하고, 상기 상응하는 학습 프로그램 코드를 작성한 학습자의 프로그래밍 경력 기간(CR)이 제i(i는 n 이하의 양의 정수) 구간에 포함되는 경우, 제1 머신 러닝 모듈(300)은 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 상기 제1 인공 신경망의 상기 입력층에 포함되는 상기 입력 노드들에 제공한 상태에서, 상기 제1 인공 신경망의 상기 출력층에 포함되는 i번째 출력 노드는 1을 출력하고 나머지 출력 노드들은 0을 출력함으로써 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 제i 레벨로 분류하도록 상기 제1 인공 신경망을 학습시킬 수 있다.For example, the programming career period of the plurality of learners is divided into first to n-th sections at intervals of one year or more, and the programming career period (CR) of the learner who wrote the corresponding learning program code is i(i) is a positive integer less than or equal to n) when included in the interval, the first machine learning module 300 includes a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) is provided to the input nodes included in the input layer of the first artificial neural network, the i-th output node included in the output layer of the first artificial neural network outputs 1 and the remaining output nodes output 0 By doing so, it is possible to train the first artificial neural network to classify the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs) into the i-th level.
제1 머신 러닝 모듈(300)은 복수의 학습 프로그램 코드들(T_CDs)에 상응하는 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 사용하여 상기 학습을 완료한 후, 상기 학습이 완료된 제1 인공 신경망을 상기 프로그래밍 레벨 추정 모델로 결정할 수 있다.The first machine learning module 300 uses a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) corresponding to the plurality of learning program codes (T_CDs). Thus, after completing the learning, the first artificial neural network on which the learning is completed may be determined as the programming level estimation model.
도 5는 도 2의 프로그래밍 레벨 추정 모델을 생성하는 단계(S100)의 다른 예를 나타내는 순서도이다.5 is a flowchart illustrating another example of generating the programming level estimation model of FIG. 2 ( S100 ).
일 실시예에 있어서, 상기 복수의 학습자들이 복수의 학습 프로그램 코드들(T_CDs)을 작성할 때 상기 복수의 프로그램 문제들 별로 베이스 코드가 상기 복수의 학습자들에게 제공되고, 상기 복수의 학습자들은 상기 베이스 코드에 기초하여 복수의 학습 프로그램 코드들(T_CDs)을 작성할 수 있다.In an embodiment, when the plurality of learners write the plurality of learning program codes (T_CDs), a base code is provided to the plurality of learners for each of the plurality of program problems, and the plurality of learners use the base code Based on , a plurality of learning program codes T_CDs may be written.
이 경우, 제1 전처리부(200)로부터 생성되는 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)에는 상기 베이스 코드에 의한 영향이 포함될 수 있다.In this case, the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs) generated by the first preprocessor 200 include the influence of the base code. can
따라서, 도 5에 도시된 바와 같이, 제1 전처리부(200)는 도 3을 참조하여 상술한 방법과 동일한 방법으로 복수의 학습 프로그램 코드들(T_CDs) 각각에 대한 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 결정한 후(단계 S110), 복수의 학습 프로그램 코드들(T_CDs) 각각의 상기 베이스 코드에 기초하여 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)을 보정하는 동작을 더 수행할 수 있다(단계 S120 및 단계 S130).Accordingly, as shown in FIG. 5 , the first preprocessor 200 performs a plurality of execution features (E_Fs) for each of the plurality of learning program codes (T_CDs) in the same manner as the method described above with reference to FIG. 3 . , a plurality of readability features (R_Fs), and a plurality of quality features (Q_Fs) are determined (step S110), and then a plurality of readability features ( R_Fs) and an operation of correcting the plurality of quality features Q_Fs may be further performed (steps S120 and S130 ).
구체적으로, 제1 전처리부(200)는 상기 복수의 프로그램 문제들 별로 상기 복수의 학습자들에게 제공된 상기 베이스 코드에 대한 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)을 결정하고(단계 S120), 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)에서 복수의 학습 프로그램 코드들(T_CDs) 각각에 상응하는 상기 베이스 코드의 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)을 차감하여 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)을 보정할 수 있다(단계 S130).Specifically, the first preprocessor 200 determines a plurality of readability features (R_Fs) and a plurality of quality features (Q_Fs) of the base code provided to the plurality of learners for each of the plurality of program problems, and (Step S120), the base code corresponding to each of the plurality of learning program codes (T_CDs) in the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs) A plurality of readability features (R_Fs) and a plurality of quality features (Q_Fs) of each of the plurality of learning program codes (T_CDs) are obtained by subtracting the plurality of readability features (R_Fs) and the plurality of quality features (Q_Fs) of It can be corrected (step S130).
따라서 보정된 복수의 가독성 피처들(R_Fs) 및 복수의 품질 피처들(Q_Fs)은 상응하는 학습 프로그램 코드(T_CD)의 특징을 더욱 명확하게 반영할 수 있다.Accordingly, the corrected plurality of readability features R_Fs and the plurality of quality features Q_Fs may more clearly reflect the characteristics of the corresponding learning program code T_CD.
이후, 제1 전처리부(200)는 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 보정된 복수의 가독성 피처들(R_Fs), 및 보정된 복수의 품질 피처들(Q_Fs)을 제1 머신 러닝 모듈(300)에 제공하고, 제1 머신 러닝 모듈(300)은 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 보정된 복수의 가독성 피처들(R_Fs), 및 보정된 복수의 품질 피처들(Q_Fs)을 제1 내지 제n 레벨들(LV1~LVn) 중의 하나로 분류하는 학습을 수행하여 상기 프로그래밍 레벨 추정 모델을 결정할 수 있다(단계 S140).Thereafter, the first preprocessor 200 performs a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs), a plurality of corrected readability features (R_Fs), and a plurality of corrected quality features ( Q_Fs) to the first machine learning module 300 , and the first machine learning module 300 includes a plurality of execution features (E_Fs) of each of a plurality of learning program codes (T_CDs), a plurality of corrected readability features The programming level estimation model may be determined by performing learning to classify the R_Fs and the corrected plurality of quality features Q_Fs into one of the first to n-th levels LV1 to LVn (step S140 ). .
다시 도 1 및 2를 참조하면, 인공지능 기반의 프로그램 코드 평가 시스템(10)이 제1 전처리부(200) 및 제1 머신 러닝 모듈(300)을 통해 상기 프로그래밍 레벨 추정 모델을 생성한 후, 제2 전처리부(400)는 평가 대상에 상응하는 평가 프로그램 코드(E_CD)를 수신할 수 있다.Referring back to FIGS. 1 and 2 , after the artificial intelligence-based program code evaluation system 10 generates the programming level estimation model through the first preprocessor 200 and the first machine learning module 300 , the second 2 The preprocessor 400 may receive the evaluation program code E_CD corresponding to the evaluation target.
제2 전처리부(400)는 평가 프로그램 코드(E_CD)의 특징들을 분석하여 평가 프로그램 코드(E_CD)에 대한 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 결정할 수 있다(단계 S200).The second preprocessor 400 analyzes the characteristics of the evaluation program code E_CD, and includes a plurality of execution evaluation features EE_Fs, a plurality of readability evaluation features RE_Fs, and a plurality of evaluation program codes E_CD. It is possible to determine the quality evaluation features (QE_Fs) (step S200).
일 실시예에 있어서, 제2 전처리부(400)는 도 3을 참조하여 상술한 제1 전처리부(200)의 동작과 동일한 동작을 수행하여 평가 프로그램 코드(E_CD)에 대한 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 결정할 수 있다.In an embodiment, the second preprocessor 400 performs the same operation as that of the first preprocessor 200 described above with reference to FIG. 3 to obtain a plurality of execution evaluation features for the evaluation program code E_CD. (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features (QE_Fs) may be determined.
따라서 평가 프로그램 코드(E_CD)에 대한 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)은 학습 프로그램 코드(T_CD)에 대한 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)에 각각 대응될 수 있다.Accordingly, the plurality of execution evaluation features (EE_Fs), the plurality of readability evaluation features (RE_Fs), and the plurality of quality evaluation features (QE_Fs) for the evaluation program code (E_CD) are the plurality of evaluation features for the learning program code (T_CD). It may correspond to each of the execution features E_Fs, the plurality of readability features R_Fs, and the plurality of quality features Q_Fs.
일 실시예에 있어서, 제2 전처리부(400)는 평가 프로그램 코드(E_CD)에 대응되는 프로그램 문제에 대한 복수의 테스트 케이스들 및 상기 복수의 테스트 케이스들에 대한 정답을 평가 프로그램 코드(E_CD)와 함께 외부로부터 수신할 수 있다.In an embodiment, the second preprocessor 400 compares a plurality of test cases for a program problem corresponding to the evaluation program code (E_CD) and a correct answer to the plurality of test cases with the evaluation program code (E_CD) and It can be received from outside together.
이 경우, 제2 전처리부(400)는 평가 프로그램 코드(E_CD)를 상기 복수의 테스트 케이스들에 대해 실행시켜 복수의 실행 평가 피처들(EE_Fs)에 포함되는 상기 점수 피처 및 상기 실행시간 피처를 결정할 수 있다.In this case, the second preprocessor 400 executes the evaluation program code E_CD for the plurality of test cases to determine the score feature and the runtime feature included in the plurality of execution evaluation features EE_Fs. can
다른 실시예에 있어서, 제2 전처리부(400)는 평가 프로그램 코드(E_CD)에 대한 상기 점수 피처 및 상기 실행시간 피처를 외부로부터 수신할 수도 있다.In another embodiment, the second preprocessor 400 may receive the score feature and the runtime feature for the evaluation program code E_CD from the outside.
한편, 실시예에 따라서, 제2 전처리부(400)는 평가 프로그램 코드(E_CD)에 상응하는 프로그램 문제의 난이도 레벨(DIFF_L)을 더 수신할 수도 있다.Meanwhile, according to an embodiment, the second preprocessor 400 may further receive the difficulty level DIFF_L of the program problem corresponding to the evaluation program code E_CD.
이 경우, 제2 전처리부(400)는 외부로부터 수신되는 난이도 레벨(DIFF_L)을 복수의 실행 평가 피처들(EE_Fs)에 포함되는 상기 난이도 피처로 결정할 수 있다.In this case, the second preprocessor 400 may determine the difficulty level DIFF_L received from the outside as the difficulty feature included in the plurality of execution evaluation features EE_Fs.
제2 전처리부(400)는 평가 프로그램 코드(E_CD)에 대해 결정된 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 제1 머신 러닝 모듈(300)에 제공할 수 있다.The second pre-processing unit 400 first converts the plurality of execution evaluation features (EE_Fs), the plurality of readability evaluation features (RE_Fs), and the plurality of quality evaluation features (QE_Fs) determined for the evaluation program code (E_CD) to the first It may be provided to the machine learning module 300 .
제1 머신 러닝 모듈(300)은 상기 프로그래밍 레벨 추정 모델과 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)에 기초하여 평가 프로그램 코드(E_CD)의 레벨을 결정할 수 있다(단계 S300).The first machine learning module 300 includes a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features ( QE_Fs), it is possible to determine the level of the evaluation program code E_CD (step S300).
일 실시예에 있어서, 제1 머신 러닝 모듈(300)은 상기 프로그래밍 레벨 추정 모델을 사용하여 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 제1 내지 제n 레벨들(LV1~LVn) 중의 하나로 분류하여 상기 분류된 레벨을 평가 프로그램 코드(E_CD)의 레벨로 결정할 수 있다.In one embodiment, the first machine learning module 300 uses the programming level estimation model to include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs) of the evaluation program code (E_CD), and classifying the plurality of quality evaluation features QE_Fs into one of first to n-th levels LV1 to LVn, and determining the classified level as the level of the evaluation program code E_CD.
예를 들어, 제1 머신 러닝 모듈(300)은 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 상기 프로그래밍 레벨 추정 모델에 입력한 후, 상기 프로그래밍 레벨 추정 모델로부터 출력되는 결과에 기초하여 평가 프로그램 코드(E_CD)의 레벨을 제1 내지 제n 레벨들(LV1~LVn) 중의 하나로 결정할 수 있다.For example, the first machine learning module 300 may include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of quality evaluation features (QE_Fs) of the evaluation program code (E_CD). is input to the programming level estimation model, the level of the evaluation program code E_CD may be determined as one of the first to nth levels LV1 to LVn based on a result output from the programming level estimation model.
도 1 내지 5를 참조하여 상술한 바와 같이, 본 발명의 실시예들에 따른 인공지능 기반의 프로그램 코드 평가 시스템(10) 및 인공지능 기반의 프로그램 코드 평가 방법은 프로그램 코드를 다방면으로 분석하여 프로그램 코드의 실행과 관련되는 복수의 실행 피처들(E_Fs), 프로그램 코드의 가독성과 관련되는 복수의 가독성 피처들(R_Fs), 및 프로그램 코드의 품질과 관련되는 복수의 품질 피처들(Q_Fs)을 결정하고, 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)에 기초하여 프로그램 코드의 레벨을 결정하므로, 프로그램 코드를 다면적으로 평가할 수 있다.As described above with reference to FIGS. 1 to 5 , the artificial intelligence-based program code evaluation system 10 and the artificial intelligence-based program code evaluation method according to embodiments of the present invention analyze the program code in various ways to provide the program code determine a plurality of execution features (E_Fs) related to the execution of , a plurality of readability features (R_Fs) related to the readability of the program code, and a plurality of quality features (Q_Fs) related to the quality of the program code; Since the level of the program code is determined based on the plurality of execution features (E_Fs), the plurality of readability features (R_Fs), and the plurality of quality features (Q_Fs), the program code can be evaluated in multiple ways.
또한, 본 발명의 실시예들에 따른 인공지능 기반의 프로그램 코드 평가 시스템(10) 및 인공지능 기반의 프로그램 코드 평가 방법은 제1 머신 러닝 모듈(300)을 통해 학습된 상기 프로그래밍 레벨 추정 모델을 사용하여 프로그램 코드를 평가하므로, 평가의 속도를 향상시키면서도 평가의 일관성을 유지할 수 있다.In addition, the artificial intelligence-based program code evaluation system 10 and the artificial intelligence-based program code evaluation method according to embodiments of the present invention use the programming level estimation model learned through the first machine learning module 300 . to evaluate the program code, it is possible to improve the speed of evaluation while maintaining the consistency of evaluation.
도 6은 본 발명의 다른 실시예에 따른 인공지능 기반의 프로그램 코드 평가 시스템을 나타내는 도면이다.6 is a diagram illustrating an AI-based program code evaluation system according to another embodiment of the present invention.
도 6을 참조하면, 인공지능 기반의 프로그램 코드 평가 시스템(20)은 학습 데이터 데이터베이스(TRAINING DATA DB)(100), 제1 전처리부(PREPROCESSOR1)(200), 제1 머신 러닝 모듈(MACHINE LEARNING MODULE1)(300), 제2 전처리부(PREPROCESSOR2)(400), 제3 전처리부(PREPROCESSOR3)(500), 제2 머신 러닝 모듈(MACHINE LEARNING MODULE2)(600), 및 제4 전처리부(PREPROCESSOR4)(700)를 포함할 수 있다.Referring to FIG. 6 , the artificial intelligence-based program code evaluation system 20 includes a training data database 100 , a first preprocessor PREPROCESSOR1 200 , and a first machine learning module MACHINE LEARNING MODULE1 ) (300), a second preprocessor (PREPROCESSOR2) (400), a third preprocessor (PREPROCESSOR3) (500), a second machine learning module (MACHINE LEARNING MODULE2) (600), and a fourth preprocessor (PREPROCESSOR4) ( 700) may be included.
도 6에 도시된 인공지능 기반의 프로그램 코드 평가 시스템(20)은 도 1에 도시된 인공지능 기반의 프로그램 코드 평가 시스템(10)에서 제3 전처리부(500), 제2 머신 러닝 모듈(600), 및 제4 전처리부(700)를 더 포함하여 구성될 수 있다.The artificial intelligence-based program code evaluation system 20 shown in FIG. 6 is a third preprocessor 500 and a second machine learning module 600 in the artificial intelligence-based program code evaluation system 10 shown in FIG. 1 . , and a fourth pre-processing unit 700 may be further included.
도 7은 본 발명의 다른 실시예에 따른 인공지능 기반의 프로그램 코드 평가 방법을 나타내는 순서도이다.7 is a flowchart illustrating an AI-based program code evaluation method according to another embodiment of the present invention.
도 7에 도시된 인공지능 기반의 프로그램 코드 평가 방법은 도 2에 도시된 인공지능 기반의 프로그램 코드 평가 방법에서 일부 단계들(S400, S500, S600)을 더 포함하여 구성될 수 있다.The artificial intelligence-based program code evaluation method shown in FIG. 7 may further include some steps ( S400 , S500 , S600 ) in the artificial intelligence-based program code evaluation method shown in FIG. 2 .
도 7에 도시된 인공지능 기반의 프로그램 코드 평가 방법은 도 6의 인공지능 기반의 프로그램 코드 평가 시스템(20)을 통해 수행될 수 있다.The AI-based program code evaluation method shown in FIG. 7 may be performed through the AI-based program code evaluation system 20 of FIG. 6 .
도 6의 인공지능 기반의 프로그램 코드 평가 시스템(20)에 포함되는 학습 데이터 데이터베이스(100), 제1 전처리부(200), 제1 머신 러닝 모듈(300), 및 제2 전처리부(400)의 구성 및 동작은 인공지능 기반의 프로그램 코드 평가 시스템(10)에 포함되는 학습 데이터 데이터베이스(100), 제1 전처리부(200), 제1 머신 러닝 모듈(300), 및 제2 전처리부(400)의 구성 및 동작과 동일하다.The learning data database 100, the first preprocessor 200, the first machine learning module 300, and the second preprocessor 400 included in the artificial intelligence-based program code evaluation system 20 of FIG. The configuration and operation are the learning data database 100, the first preprocessor 200, the first machine learning module 300, and the second preprocessor 400 included in the artificial intelligence-based program code evaluation system 10. Its configuration and operation are the same.
인공지능 기반의 프로그램 코드 평가 시스템(10)에 포함되는 학습 데이터 데이터베이스(100), 제1 전처리부(200), 제1 머신 러닝 모듈(300), 및 제2 전처리부(400)의 구성 및 동작(단계 S100, S200, S300)에 대해서는 도 1 내지 5를 참조하여 상술하였으므로, 여기서는 인공지능 기반의 프로그램 코드 평가 시스템(20)에 포함되는 학습 데이터 데이터베이스(100), 제1 전처리부(200), 제1 머신 러닝 모듈(300), 및 제2 전처리부(400)의 구성 및 동작(단계 S100, S200, S300)에 대한 중복되는 설명은 생략하고, 인공지능 기반의 프로그램 코드 평가 시스템(20)에 포함되는 제3 전처리부(500), 제2 머신 러닝 모듈(600), 및 제4 전처리부(700)의 구성 및 동작(단계 S400, S500, S600)에 대해서만 상세히 설명한다.Configuration and operation of the learning data database 100, the first preprocessor 200, the first machine learning module 300, and the second preprocessor 400 included in the artificial intelligence-based program code evaluation system 10 (Steps S100, S200, S300) have been described above with reference to FIGS. 1 to 5, so here, the learning data database 100 included in the artificial intelligence-based program code evaluation system 20, the first preprocessor 200, The redundant description of the configuration and operation (steps S100, S200, S300) of the first machine learning module 300 and the second preprocessor 400 is omitted, and the artificial intelligence-based program code evaluation system 20 Only the configuration and operations (steps S400, S500, and S600) of the included third preprocessor 500, the second machine learning module 600, and the fourth preprocessor 700 will be described in detail.
일반적으로, 주어진 모든 테스트 케이스들에 대해 정답을 출력하여 정확성 측면에서 만점인 프로그램 코드라 할지라도 효율성과 재사용성을 고려하지 않고 정답만을 맞추기 위한 목적으로 작성된 프로그램 코드는 좋은 코드라고 할 수 없다.In general, even if the program code is perfect in terms of accuracy by outputting the correct answer for all given test cases, the program code written for the purpose of matching only the correct answer without considering efficiency and reusability is not good code.
도 6에 도시된 인공지능 기반의 프로그램 코드 평가 시스템(20) 및 도 7에 도시된 인공지능 기반의 프로그램 코드 평가 방법은 특정 프로그램 코드의 복잡도가 동일한 프로그램 문제에 대해 다른 학습자들에 의해 작성된 프로그램 코드들의 평균적인 복잡도보다 월등히 높은지 여부에 기초하여 상기 특정 프로그램 코드가 정상 코드인지 비정상 코드인지 여부를 판단할 수 있다.The AI-based program code evaluation system 20 shown in FIG. 6 and the AI-based program code evaluation method shown in FIG. 7 are program codes written by different learners for a program problem having the same complexity of a specific program code. It may be determined whether the specific program code is a normal code or an abnormal code based on whether it is significantly higher than the average complexity of the programs.
구체적으로, 도 6 및 7을 참조하면, 제3 전처리부(500)는 제1 전처리부(200)로부터 복수의 학습 프로그램 코드들(T_CDs) 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 수신할 수 있다.Specifically, referring to FIGS. 6 and 7 , the third preprocessing unit 500 includes a plurality of execution features (E_Fs) of each of the plurality of learning program codes (T_CDs) from the first preprocessing unit 200 , a plurality of readability Receive features R_Fs, and a plurality of quality features Q_Fs.
제3 전처리부(500)는 복수의 학습 프로그램 코드들(T_CDs) 중에서 복수의 실행 피처들(E_Fs)에 포함되는 상기 점수 피처의 값이 최대값을 갖는 학습 프로그램 코드들(T_CDs)을 만점 학습 프로그램 코드들로 추출할 수 있다(단계 S400).The third preprocessor 500 converts the learning program codes T_CDs having the maximum value of the score feature included in the plurality of execution features E_Fs among the plurality of learning program codes T_CDs to a perfect learning program Codes can be extracted (step S400).
이후, 제3 전처리부(500) 및 제2 머신 러닝 모듈(600)은 상기 만점 학습 프로그램 코드들 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 품질 피처들(Q_Fs)을 사용하여 프로그램 코드의 비정상 여부를 추정하는 비정상 코드 탐지 모델을 생성할 수 있다(단계 S500).Thereafter, the third preprocessor 500 and the second machine learning module 600 perform a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of quality features of each of the perfect learning program codes. An abnormal code detection model for estimating whether the program code is abnormal may be generated using the Q_Fs (step S500).
도 8은 도 7의 비정상 코드 탐지 모델을 생성하는 단계(S500)의 일 예를 나타내는 순서도이다.8 is a flowchart illustrating an example of a step S500 of generating an abnormal code detection model of FIG. 7 .
도 8을 참조하면, 제3 전처리부(500)는 상기 만점 학습 프로그램 코드들 각각의 복수의 품질 피처들(Q_Fs) 중에서 코드의 복잡성과 관련되는 품질 피처를 제외한 나머지 품질 피처들을 복수의 수정 품질 피처들(MQ_Fs)로 결정할 수 있다(단계 S510).Referring to FIG. 8 , the third preprocessor 500 converts the remaining quality features except for the quality features related to code complexity among the plurality of quality features Q_Fs of each of the perfect learning program codes into a plurality of modified quality features. It can be determined by the values (MQ_Fs) (step S510).
예를 들어, 제3 전처리부(500)는 상기 만점 학습 프로그램 코드들 각각의 복수의 품질 피처들(Q_Fs) 중에서 Cyclomatic complexity 및 Halstead’metrics에 상응하는 품질 피처들을 제외한 나머지 품질 피처들을 복수의 수정 품질 피처들(MQ_Fs)로 결정할 수 있다.For example, the third preprocessor 500 converts the remaining quality features to a plurality of quality features except for quality features corresponding to Cyclomatic complexity and Halstead'metrics among a plurality of quality features (Q_Fs) of each of the perfect learning program codes. It can be determined by the features (MQ_Fs).
또한, 제3 전처리부(500)는 상기 만점 학습 프로그램 코드들 중에서 동일한 프로그램 문제에 대해 작성된 만점 학습 프로그램 코드들에 상응하는 상기 제외된 품질 피처들의 평균을 상기 동일한 프로그램 문제의 평균 복잡도로 결정할 수 있다(단계 S520).Also, the third preprocessing unit 500 may determine the average of the excluded quality features corresponding to the perfect learning program codes written for the same program problem among the perfect learning program codes as the average complexity of the same program problem. (Step S520).
이후, 제3 전처리부(500)는 상기 만점 학습 프로그램 코드들 각각에 대해, 상응하는 만점 학습 프로그램 코드의 상기 제외된 품질 피처의 값과 상기 상응하는 만점 학습 프로그램 코드에 대응되는 프로그램 문제의 상기 평균 복잡도를 비교하여 상기 상응하는 만점 학습 프로그램 코드의 비정상 플래그(ANF)를 결정할 수 있다(단계 S530).Thereafter, for each of the perfect learning program codes, the third preprocessing unit 500 sets the value of the excluded quality feature of the corresponding perfect learning program code and the average of the program problem corresponding to the corresponding perfect learning program code. Comparing the complexity, it is possible to determine the abnormal flag (ANF) of the corresponding perfect score learning program code (step S530).
예를 들어, 상응하는 만점 학습 프로그램 코드의 상기 제외된 품질 피처의 값이 상기 상응하는 만점 학습 프로그램 코드에 대응되는 프로그램 문제의 상기 평균 복잡도보다 일정 비율 이상 큰 경우, 상기 상응하는 만점 학습 프로그램 코드를 비정상 코드로 분류하기 위해 상기 상응하는 만점 학습 프로그램 코드의 비정상 플래그(ANF)를 제1 값으로 결정하고, 상기 상응하는 만점 학습 프로그램 코드의 상기 제외된 품질 피처의 값이 상기 상응하는 만점 학습 프로그램 코드에 대응되는 프로그램 문제의 상기 평균 복잡도보다 일정 비율 이상 크지 않은 경우, 상기 상응하는 만점 학습 프로그램 코드를 정상 코드로 분류하기 위해 상기 상응하는 만점 학습 프로그램 코드의 비정상 플래그(ANF)를 제2 값으로 결정할 수 있다.For example, if the value of the excluded quality feature of the corresponding perfect learning program code is greater than the average complexity of the program problem corresponding to the corresponding perfect learning program code by a certain percentage or more, the corresponding perfect learning program code is selected determine an abnormality flag (ANF) of the corresponding perfect score learning program code as a first value to classify it as an abnormal code, and the value of the excluded quality feature of the corresponding perfect score learning program code is the corresponding perfect score learning program code If it is not greater than the average complexity of the program problem corresponding to , an abnormal flag (ANF) of the corresponding perfect learning program code is determined as a second value in order to classify the corresponding perfect learning program code as a normal code. can
이후, 제3 전처리부(500)는 상기 만점 학습 프로그램 코드들 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 복수의 수정 품질 피처들(MQ_Fs), 및 비정상 플래그(ANF)를 제2 머신 러닝 모듈(600)에 제공할 수 있다.Thereafter, the third preprocessing unit 500 performs a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), a plurality of correction quality features (MQ_Fs), and an abnormal flag (E_Fs) of each of the perfect learning program codes. ANF) to the second machine learning module 600 .
일 실시예에 있어서, 제2 머신 러닝 모듈(600)은 제2 인공 신경망을 포함할 수 있다.In an embodiment, the second machine learning module 600 may include a second artificial neural network.
이 경우, 제2 머신 러닝 모듈(600)은 상기 제2 인공 신경망이 상기 만점 학습 프로그램 코드들 각각의 비정상 플래그(ANF)에 기초하여 상기 만점 학습 프로그램 코드들 각각의 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 수정 품질 피처들(MQ_Fs)을 정상 코드(NM) 및 비정상 코드(ANM) 중의 하나로 분류하도록 상기 제2 인공 신경망을 학습시킬 수 있다(단계 S540).In this case, the second machine learning module 600 determines that the second artificial neural network performs a plurality of execution features (E_Fs) of each of the perfect learning program codes based on the abnormal flag (ANF) of each of the perfect learning program codes. , the second artificial neural network may be trained to classify the plurality of readability features (R_Fs), and the plurality of modified quality features (MQ_Fs) into one of a normal code (NM) and an abnormal code (ANM) (step S540). .
예를 들어, 제2 머신 러닝 모듈(600)은 비정상 플래그(ANF)가 상기 제1 값인 경우, 상기 제2 인공 신경망이 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 수정 품질 피처들(MQ_Fs)을 비정상 코드(ANM)로 분류하고, 비정상 플래그(ANF)가 상기 제2 값인 경우, 상기 제2 인공 신경망이 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 수정 품질 피처들(MQ_Fs)을 정상 코드(NM)로 분류하도록 상기 제2 인공 신경망을 학습시킬 수 있다.For example, in the second machine learning module 600 , when the anomalous flag ANF is the first value, the second artificial neural network includes a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and Classifies a plurality of modified quality features (MQ_Fs) as an anomalous code (ANM), and when the anomaly flag (ANF) is the second value, the second artificial neural network includes a plurality of execution features (E_Fs), a plurality of readability features The second artificial neural network may be trained to classify the R_Fs and the plurality of modified quality features MQ_Fs into the normal code NM.
제2 머신 러닝 모듈(600)은 상기 만점 학습 프로그램 코드들에 상응하는 복수의 실행 피처들(E_Fs), 복수의 가독성 피처들(R_Fs), 및 복수의 수정 품질 피처들(MQ_Fs)을 사용하여 상기 학습을 완료한 후, 상기 학습이 완료된 제2 인공 신경망을 상기 비정상 코드 탐지 모델로 결정할 수 있다(단계 S550).The second machine learning module 600 is configured to use a plurality of execution features (E_Fs), a plurality of readability features (R_Fs), and a plurality of modification quality features (MQ_Fs) corresponding to the perfect learning program codes, After completing the learning, the second artificial neural network on which the learning has been completed may be determined as the abnormal code detection model (step S550).
다시 도 6 및 7을 참조하면, 제4 전처리부(700)는 제2 전처리부(400)로부터 평가 프로그램 코드(E_CD)에 대한 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)을 수신할 수 있다.6 and 7 again, the fourth preprocessor 700 includes a plurality of execution evaluation features (EE_Fs) for the evaluation program code (E_CD) from the second preprocessor 400, a plurality of readability evaluation features ( RE_Fs), and a plurality of quality evaluation features (QE_Fs).
이후, 제4 전처리부(700) 및 제2 머신 러닝 모듈(600)은 상기 비정상 코드 탐지 모델과 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 품질 평가 피처들(QE_Fs)에 기초하여 평가 프로그램 코드(E_CD)가 정상 코드(NM)인지 비정상 코드(ANM)인지 여부를 결정할 수 있다(단계 S600).Thereafter, the fourth preprocessor 700 and the second machine learning module 600 perform a plurality of execution evaluation features (EE_Fs) and a plurality of readability evaluation features (RE_Fs) of the abnormal code detection model and the evaluation program code (E_CD). ), and whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on the plurality of quality evaluation features QE_Fs may be determined (step S600 ).
일 실시예에 있어서, 제4 전처리부(700)는 제2 전처리부(400)로부터 수신되는 평가 프로그램 코드(E_CD)의 복수의 품질 평가 피처들(QE_Fs) 중에서 코드의 복잡성과 관련되는 품질 피처를 제외한 나머지 품질 피처들을 복수의 수정 품질 평가 피처들(MQE_Fs)로 결정할 수 있다.In an embodiment, the fourth preprocessor 700 selects a quality feature related to code complexity among a plurality of quality evaluation features QE_Fs of the evaluation program code E_CD received from the second preprocessor 400 . The remaining quality features may be determined as a plurality of modified quality evaluation features (MQE_Fs).
예를 들어, 제4 전처리부(700)는 평가 프로그램 코드(E_CD)의 복수의 품질 평가 피처들(QE_Fs) 중에서 Cyclomatic complexity 및 Halstead’metrics에 상응하는 품질 피처들을 제외한 나머지 품질 피처들을 복수의 수정 품질 평가 피처들(MQE_Fs)로 결정할 수 있다.For example, the fourth preprocessor 700 converts the remaining quality features from among the plurality of quality evaluation features (QE_Fs) of the evaluation program code (E_CD) to the quality features corresponding to Cyclomatic complexity and Halstead'metrics in a plurality of correction qualities. It can be determined by evaluation features (MQE_Fs).
이후, 제4 전처리부(700)는 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 수정 품질 평가 피처들(MQE_Fs)을 제2 머신 러닝 모듈(600)에 제공할 수 있다.Thereafter, the fourth preprocessor 700 generates a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of correction quality evaluation features (MQE_Fs) of the evaluation program code (E_CD). 2 may be provided to the machine learning module 600 .
제2 머신 러닝 모듈(600)은 상기 비정상 코드 탐지 모델과 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 수정 품질 평가 피처들(MQE_Fs)에 기초하여 평가 프로그램 코드(E_CD)가 정상 코드(NM)인지 비정상 코드(ANM)인지 여부를 결정할 수 있다.The second machine learning module 600 includes a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of modification quality evaluation features of the abnormal code detection model and evaluation program code (E_CD). It may be determined whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on (MQE_Fs).
예를 들어, 제2 머신 러닝 모듈(600)은 평가 프로그램 코드(E_CD)의 복수의 실행 평가 피처들(EE_Fs), 복수의 가독성 평가 피처들(RE_Fs), 및 복수의 수정 품질 평가 피처들(MQE_Fs)을 상기 비정상 코드 탐지 모델에 입력한 후, 상기 비정상 코드 탐지 모델로부터 출력되는 결과에 기초하여 평가 프로그램 코드(E_CD)가 정상 코드(NM)인지 비정상 코드(ANM)인지 여부를 결정할 수 있다.For example, the second machine learning module 600 may include a plurality of execution evaluation features (EE_Fs), a plurality of readability evaluation features (RE_Fs), and a plurality of modification quality evaluation features (MQE_Fs) of the evaluation program code (E_CD). ) is input to the abnormal code detection model, and it may be determined whether the evaluation program code E_CD is a normal code NM or an abnormal code ANM based on a result output from the abnormal code detection model.
도 6 내지 7을 참조하여 상술한 바와 같이, 본 발명의 실시예들에 따른 인공지능 기반의 프로그램 코드 평가 시스템(20) 및 인공지능 기반의 프로그램 코드 평가 방법은 머신 러닝 기반으로 프로그램 코드를 다방면으로 평가하여 상기 프로그램 코드의 레벨을 제공할 뿐만 아니라, 상기 프로그램 코드의 복잡도가 동일한 프로그램 문제에 대해 다른 학습자들에 의해 작성된 프로그램 코드들의 평균적인 복잡도보다 월등히 높은지 여부에 기초하여 상기 특정 프로그램 코드가 정상 코드인지 또는 효율성과 재사용성을 고려하지 않고 정답만을 맞추기 위한 목적으로 작성된 비정상 코드인지 여부도 제공할 수 있다.As described above with reference to FIGS. 6 to 7, the artificial intelligence-based program code evaluation system 20 and the artificial intelligence-based program code evaluation method according to embodiments of the present invention are machine learning-based program codes in various ways. In addition to providing the level of the program code for evaluation, the specific program code is considered normal code based on whether the complexity of the program code is significantly higher than the average complexity of program codes written by other learners for the same program problem. You can also provide whether or not it is an abnormal code written for the purpose of answering only the correct answer without considering cognition or efficiency and reusability.
따라서 본 발명의 실시예들에 따른 인공지능 기반의 프로그램 코드 평가 시스템(20) 및 인공지능 기반의 프로그램 코드 평가 방법은 프로그램 코드에 대해 보다 정확하고 상세한 평가 결과를 제공할 수 있다.Accordingly, the AI-based program code evaluation system 20 and the AI-based program code evaluation method according to embodiments of the present invention can provide more accurate and detailed evaluation results for program codes.
본 발명은 컴퓨터 프로그램 코드를 다면적으로 평가하면서도 평가의 속도를 향상시키고 평가의 일관성을 유지하는 데에 유용하게 이용될 수 있다.The present invention can be usefully used to improve the speed of evaluation and maintain consistency of evaluation while evaluating computer program codes in multiple ways.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, although described with reference to preferred embodiments of the present invention, those of ordinary skill in the art may vary the present invention within the scope without departing from the spirit and scope of the present invention described in the claims below. It will be understood that modifications and changes can be made to

Claims (20)

  1. 프로그램 코드의 실행(execution)과 관련되는 복수의 실행 피처들(features) 및 상기 프로그램 코드의 품질(quality)과 관련되는 복수의 품질 피처들을 사용하여 상기 프로그램 코드의 레벨을 추정하는 프로그래밍 레벨 추정 모델을 생성하는 단계;A programming level estimation model for estimating the level of the program code using a plurality of execution features related to the execution of the program code and a plurality of quality features related to the quality of the program code generating;
    평가 프로그램 코드에 대해 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들에 각각 대응되는 복수의 실행 평가 피처들 및 복수의 품질 평가 피처들을 결정하는 단계; 및determining a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to the plurality of execution features and the plurality of quality features for the evaluation program code; and
    상기 프로그래밍 레벨 추정 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 레벨을 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.and determining the level of the evaluation program code based on the programming level estimation model and the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code. .
  2. 제1 항에 있어서, 상기 프로그래밍 레벨 추정 모델을 생성하는 단계는, 상기 프로그램 코드의 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들과 상기 프로그램 코드의 가독성(readability)과 관련되는 복수의 가독성 피처들을 함께 사용하여 상기 프로그래밍 레벨 추정 모델을 생성하는 단계를 포함하고,2. The method of claim 1, wherein generating the programming level estimation model comprises: the plurality of execution features of the program code and the plurality of quality features and a plurality of readability features related to readability of the program code. using together to generate the programming level estimation model,
    상기 평가 프로그램 코드에 대해 상기 복수의 가독성 피처들에 대응되는 복수의 가독성 평가 피처들을 결정하는 단계를 더 포함하고,determining a plurality of readability evaluation features corresponding to the plurality of readability features for the evaluation program code;
    상기 평가 프로그램 코드의 레벨을 결정하는 단계는, 상기 프로그래밍 레벨 추정 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들, 상기 복수의 가독성 평가 피처들, 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 레벨을 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.The determining of the level of the evaluation program code may include: based on the programming level estimation model and the plurality of execution evaluation features, the plurality of readability evaluation features, and the plurality of quality evaluation features of the evaluation program code. Artificial intelligence-based program code evaluation method comprising the step of determining the level of the evaluation program code.
  3. 제2 항에 있어서, 상기 프로그래밍 레벨 추정 모델을 생성하는 단계는,3. The method of claim 2, wherein generating the programming level estimation model comprises:
    복수의 학습자들이 복수의 프로그램 문제들에 대해 작성한 복수의 학습 프로그램 코드들 각각에 대해 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 결정하는 단계; 및determining the plurality of execution features, the plurality of readability features, and the plurality of quality features for each of a plurality of learning program codes written by a plurality of learners for a plurality of program problems; and
    제1 머신 러닝(machine learning) 모듈에 대해 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 제1 내지 제n(n은 양의 정수) 레벨들 중의 하나로 분류하는 학습을 수행하여 상기 프로그래밍 레벨 추정 모델을 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.For a first machine learning module, the plurality of execution features, the plurality of readability features, and the plurality of quality features of each of the plurality of learning program codes are first to nth (n is an amount). of integer) performing learning to classify into one of the levels, and determining the programming level estimation model.
  4. 제3 항에 있어서, 상기 제1 머신 러닝 모듈에 대해 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 상기 제1 내지 제n 레벨들 중의 하나로 분류하는 학습을 수행하여 상기 프로그래밍 레벨 추정 모델을 결정하는 단계는,4. The method of claim 3, wherein the plurality of execution features, the plurality of readability features, and the plurality of quality features of each of the plurality of learning program codes are selected from the first to nth quality features for the first machine learning module. The step of determining the programming level estimation model by performing learning to classify one of the levels,
    상기 제1 머신 러닝 모듈에 포함되는 제1 인공 신경망이 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들에 상응하는 학습 프로그램 코드를 작성한 학습자의 프로그래밍 경력 기간에 기초하여 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 상기 제1 내지 제n 레벨들 중의 하나로 분류하도록 상기 제1 인공 신경망을 학습시키는 단계; 및A first artificial neural network included in the first machine learning module is based on a programming career period of a learner who writes a learning program code corresponding to the plurality of execution features, the plurality of readable features, and the plurality of quality features. training the first artificial neural network to classify the plurality of execution features, the plurality of readability features, and the plurality of quality features into one of the first to n-th levels; and
    상기 학습이 완료된 제1 인공 신경망을 상기 프로그래밍 레벨 추정 모델로 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.and determining the first artificial neural network on which the learning is completed as the programming level estimation model.
  5. 제4 항에 있어서, 상기 제1 인공 신경망이 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들에 상응하는 학습 프로그램 코드를 작성한 학습자의 상기 프로그래밍 경력 기간에 기초하여 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 상기 제1 내지 제n 레벨들 중의 하나로 분류하도록 상기 제1 인공 신경망을 학습시키는 단계는,5. The method of claim 4, wherein the first artificial neural network is based on the duration of the programming career of a learner who writes learning program code corresponding to the plurality of execution features, the plurality of readable features, and the plurality of quality features. training the first artificial neural network to classify the plurality of execution features, the plurality of readability features, and the plurality of quality features into one of the first to n-th levels;
    프로그래밍 경력 기간을 1년 이상의 간격으로 제1 내지 제n 구간들로 구분하고, 상기 상응하는 학습 프로그램 코드를 작성한 학습자의 상기 프로그래밍 경력 기간이 제i(i는 n 이하의 양의 정수) 구간에 포함되는 경우, 상기 제1 인공 신경망이 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 제i 레벨로 분류하도록 상기 제1 인공 신경망을 학습시키는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.The programming career period is divided into first to n-th sections at intervals of one year or more, and the programming career period of the learner who wrote the corresponding learning program code is included in the i-th section (i is a positive integer less than or equal to n) if so, training the first artificial neural network to classify the plurality of execution features, the plurality of readability features, and the plurality of quality features into an i-th level. based program code evaluation method.
  6. 제3 항에 있어서, 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들은,4. The method of claim 3, wherein the plurality of execution features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드가 복수의 테스트 케이스들에 대해 실행되어 출력되는 복수의 출력값들 중에서 정답의 개수에 기초하여 결정되는 점수 피처를 포함하고,A corresponding learning program code is executed for a plurality of test cases and includes a score feature determined based on the number of correct answers among a plurality of output values,
    상기 복수의 테스트 케이스들은 상기 복수의 프로그램 문제들 별로 미리 정해지는 인공지능 기반의 프로그램 코드 평가 방법.The plurality of test cases are determined in advance for each of the plurality of program problems.
  7. 제6 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들은,7. The method of claim 6, wherein the plurality of execution features of each of the plurality of learning program codes comprises:
    상기 상응하는 학습 프로그램 코드가 상기 복수의 테스트 케이스들에 대해 실행되어 상기 복수의 출력값들을 출력하는 데에 소요되는 시간에 기초하여 결정되는 실행시간 피처, 및a runtime feature determined based on the time it takes for the corresponding learning program code to be executed for the plurality of test cases to output the plurality of output values; and
    상기 상응하는 학습 프로그램 코드에 대응되는 프로그램 문제와 동일한 프로그램 문제에 대해 작성된 학습 프로그램 코드들의 상기 점수 피처들에 대한 통계값에 기초하여 결정되는 난이도 피처를 더 포함하는 인공지능 기반의 프로그램 코드 평가 방법.and a difficulty feature determined based on statistical values of the score features of learning program codes written for the same program problem as the program problem corresponding to the corresponding learning program code.
  8. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 가독성 피처들은,4. The method of claim 3, wherein the plurality of readability features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드의 라인 당 평균 단어 수 및 단어 당 평균 음절 수에 기초하여 결정되는 제1 가독성 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based method for evaluating program code, comprising: a first readability feature determined based on an average number of words per line and an average number of syllables per word of corresponding learning program code.
  9. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 가독성 피처들은,4. The method of claim 3, wherein the plurality of readability features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에 포함되는 단어들 중에서 3음절 이상 단어의 비율에 기초하여 결정되는 제2 가독성 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a second readability feature determined based on a ratio of words with three or more syllables among words included in the corresponding learning program code.
  10. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 가독성 피처들은,4. The method of claim 3, wherein the plurality of readability features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에 포함되는 단어들 중에서 미리 정해진 표준 단어 리스트에 포함되지 않는 단어들의 비율에 기초하여 결정되는 제3 가독성 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a third readability feature determined based on a ratio of words not included in a predetermined standard word list among words included in the corresponding learning program code.
  11. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 품질 피처들은,4. The method of claim 3, wherein the plurality of quality features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에 구현된 함수들에 포함되는 조건 분기점들의 개수에 기초하여 결정되는 제1 품질 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a first quality feature determined based on the number of conditional branch points included in functions implemented in the corresponding learning program code.
  12. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 품질 피처들은,4. The method of claim 3, wherein the plurality of quality features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에 포함되는 라인들의 개수에 기초하여 결정되는 제2 품질 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a second quality feature determined based on a number of lines included in the corresponding learning program code.
  13. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 품질 피처들은,4. The method of claim 3, wherein the plurality of quality features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에서 미리 정해진 특정 위치들에 삽입된 스페이스의 개수의 표준 편차에 기초하여 결정되는 제3 품질 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a third quality feature determined based on a standard deviation of a number of spaces inserted at specific predetermined positions in a corresponding learning program code.
  14. 제13 항에 있어서, 상기 특정 위치들은,14. The method of claim 13, wherein the specific locations,
    각 라인의 시작 지점, 각 라인의 종료 지점, 함수의 시작을 나타내는 괄호의 직후, 및 함수의 종료를 나타내는 괄호의 직전 중의 적어도 하나를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising at least one of a start point of each line, an end point of each line, immediately after a parenthesis indicating the start of a function, and immediately before a parenthesis indicating an end of a function.
  15. 제3 항에 있어서, 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 품질 피처들은,4. The method of claim 3, wherein the plurality of quality features of each of the plurality of learning program codes comprises:
    상응하는 학습 프로그램 코드에 포함되는 주석들의 개수 및 상기 주석들 각각의 문자 개수에 기초하여 결정되는 제4 품질 피처를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.An artificial intelligence-based program code evaluation method comprising a fourth quality feature determined based on the number of annotations included in the corresponding learning program code and the number of characters in each of the annotations.
  16. 제3 항에 있어서, 상기 프로그래밍 레벨 추정 모델을 생성하는 단계는,4. The method of claim 3, wherein generating the programming level estimation model comprises:
    상기 복수의 학습자들이 상기 복수의 학습 프로그램 코드들을 작성할 때 상기 복수의 프로그램 문제들 별로 상기 복수의 학습자들에게 제공된 베이스 코드에 대해 상기 복수의 가독성 피처들 및 상기 복수의 품질 피처들을 결정하는 단계; 및determining the plurality of readability features and the plurality of quality features for the base code provided to the plurality of learners for each of the plurality of program problems when the plurality of learners write the plurality of learning program codes; and
    상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 가독성 피처들 및 상기 복수의 품질 피처들에서 상기 복수의 학습 프로그램 코드들 각각에 상응하는 상기 베이스 코드의 상기 복수의 가독성 피처들 및 상기 복수의 품질 피처들을 차감하여 상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 가독성 피처들 및 상기 복수의 품질 피처들을 보정하는 단계를 더 포함하는 인공지능 기반의 프로그램 코드 평가 방법.the plurality of readability features and the plurality of quality features of the base code corresponding to each of the plurality of learning program codes in the plurality of readability features and the plurality of quality features of each of the plurality of learning program codes and correcting the plurality of readability features and the plurality of quality features of each of the plurality of learning program codes by subtracting them.
  17. 제6 항에 있어서,7. The method of claim 6,
    상기 복수의 학습 프로그램 코드들 중에서 상기 점수 피처의 값이 최대값을 갖는 학습 프로그램 코드들을 만점 학습 프로그램 코드들로 추출하는 단계;extracting learning program codes having the maximum value of the score feature from among the plurality of learning program codes as perfect learning program codes;
    상기 만점 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 사용하여 프로그램 코드의 비정상 여부를 추정하는 비정상 코드 탐지 모델을 생성하는 단계; 및generating an abnormal code detection model for estimating whether a program code is abnormal using the plurality of execution features, the plurality of readability features, and the plurality of quality features of each of the perfect score learning program codes; and
    상기 비정상 코드 탐지 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들, 상기 복수의 가독성 평가 피처들, 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 비정상 여부를 결정하는 단계를 더 포함하는 인공지능 기반의 프로그램 코드 평가 방법.determining whether the evaluation program code is abnormal based on the abnormal code detection model and the plurality of execution evaluation features, the plurality of readability evaluation features, and the plurality of quality evaluation features of the evaluation program code; An artificial intelligence-based program code evaluation method that further includes.
  18. 제17 항에 있어서, 상기 만점 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 품질 피처들을 사용하여 프로그램 코드의 비정상 여부를 추정하는 상기 비정상 코드 탐지 모델을 생성하는 단계는,The abnormal code detection model according to claim 17, wherein the abnormality code detection model for estimating whether a program code is abnormal using the plurality of execution features, the plurality of readability features, and the plurality of quality features of each of the perfect learning program codes The steps to create
    상기 만점 학습 프로그램 코드들 각각의 상기 복수의 품질 피처들 중에서 코드의 복잡성과 관련되는 품질 피처를 제외한 나머지 품질 피처들을 복수의 수정 품질 피처들로 결정하는 단계;determining, among the plurality of quality features of each of the perfect learning program codes, remaining quality features except for a quality feature related to code complexity as a plurality of modified quality features;
    상기 만점 학습 프로그램 코드들 중에서 동일한 프로그램 문제에 대해 작성된 만점 학습 프로그램 코드들에 상응하는 상기 제외된 품질 피처들의 평균을 상기 동일한 프로그램 문제의 평균 복잡도로 결정하는 단계;determining an average of the excluded quality features corresponding to perfect learning program codes written for the same program problem among the perfect learning program codes as the average complexity of the same program problem;
    상응하는 만점 학습 프로그램 코드의 상기 제외된 품질 피처의 값과 상기 상응하는 만점 학습 프로그램 코드에 대응되는 프로그램 문제의 상기 평균 복잡도를 비교하여 상기 상응하는 만점 학습 프로그램 코드의 비정상 플래그를 결정하는 단계;determining an abnormal flag of the corresponding perfect learning program code by comparing the value of the excluded quality feature of the corresponding perfect perfect learning program code with the average complexity of the program problem corresponding to the corresponding perfect perfect learning program code;
    제2 머신 러닝 모듈에 포함되는 제2 인공 신경망이 상기 만점 학습 프로그램 코드들 각각의 상기 비정상 플래그에 기초하여 상기 만점 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들, 상기 복수의 가독성 피처들, 및 상기 복수의 수정 품질 피처들을 정상 코드 및 비정상 코드 중의 하나로 분류하도록 상기 제2 인공 신경망을 학습시키는 단계; 및a second artificial neural network included in a second machine learning module, based on the abnormal flag of each of the perfect learning program codes, the plurality of execution features of each of the perfect learning program codes, the plurality of readability features, and training the second artificial neural network to classify the plurality of correction quality features into one of a normal code and an abnormal code; and
    상기 학습이 완료된 제2 인공 신경망을 상기 비정상 코드 탐지 모델로 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.and determining the second artificial neural network on which the learning is completed as the abnormal code detection model.
  19. 제18 항에 있어서, 상기 비정상 코드 탐지 모델과 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들, 상기 복수의 가독성 평가 피처들, 및 상기 복수의 품질 평가 피처들에 기초하여 상기 평가 프로그램 코드의 비정상 여부를 결정하는 단계는,The abnormality of the evaluation program code according to claim 18, wherein the evaluation program code is abnormal based on the abnormality code detection model and the plurality of execution evaluation features of the evaluation program code, the plurality of readability evaluation features, and the plurality of quality evaluation features The steps to decide whether
    상기 평가 프로그램 코드의 상기 복수의 품질 평가 피처들 중에서 코드의 복잡성과 관련되는 품질 피처를 제외한 나머지 품질 평가 피처들을 복수의 수정 품질 평가 피처들로 결정하는 단계;determining, among the plurality of quality evaluation features of the evaluation program code, remaining quality evaluation features except for a quality feature related to code complexity, as a plurality of modified quality evaluation features;
    상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들, 상기 복수의 가독성 평가 피처들, 및 상기 복수의 수정 품질 평가 피처들을 상기 비정상 코드 탐지 모델에 입력하는 단계; 및inputting the plurality of execution evaluation features, the plurality of readability evaluation features, and the plurality of correction quality evaluation features of the evaluation program code into the anomaly code detection model; and
    상기 비정상 코드 탐지 모델로부터 출력되는 결과에 기초하여 상기 평가 프로그램 코드가 정상 코드인지 비정상 코드인지 여부를 결정하는 단계를 포함하는 인공지능 기반의 프로그램 코드 평가 방법.and determining whether the evaluation program code is a normal code or an abnormal code based on a result output from the abnormal code detection model.
  20. 복수의 학습자들이 복수의 프로그램 문제들에 대해 작성한 복수의 학습 프로그램 코드들 각각에 대해 프로그램 코드의 실행과 관련되는 복수의 실행 피처들 및 상기 프로그램 코드의 품질과 관련되는 복수의 품질 피처들을 결정하는 제1 전처리부;a method for determining, for each of a plurality of learning program codes written by a plurality of learners for a plurality of program problems, a plurality of execution features associated with execution of the program code and a plurality of quality features associated with the quality of the program code 1 preprocessor;
    평가 프로그램 코드에 대해 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들에 각각 대응되는 복수의 실행 평가 피처들 및 복수의 품질 평가 피처들을 결정하는 제2 전처리부; 및a second preprocessor configured to determine a plurality of execution evaluation features and a plurality of quality evaluation features respectively corresponding to the plurality of execution features and the plurality of quality features with respect to the evaluation program code; and
    상기 복수의 학습 프로그램 코드들 각각의 상기 복수의 실행 피처들 및 상기 복수의 품질 피처들을 제1 내지 제n 레벨들 중의 하나로 분류하는 학습을 수행하여 프로그래밍 레벨 추정 모델을 생성하고, 상기 프로그래밍 레벨 추정 모델을 사용하여 상기 평가 프로그램 코드의 상기 복수의 실행 평가 피처들 및 상기 복수의 품질 평가 피처들을 상기 제1 내지 제n 레벨들 중의 하나로 분류하여 상기 분류된 레벨을 상기 평가 프로그램 코드의 레벨로 결정하는 제1 머신 러닝 모듈을 포함하는 인공지능 기반의 프로그램 코드 평가 시스템.performing learning to classify the plurality of execution features and the plurality of quality features of each of the plurality of learning program codes into one of first to n-th levels to generate a programming level estimation model, and the programming level estimation model classifying the plurality of execution evaluation features and the plurality of quality evaluation features of the evaluation program code into one of the first to n-th levels using 1 AI-based program code evaluation system with machine learning module.
PCT/KR2021/006763 2020-06-05 2021-05-31 Artificial-intelligence-based program code evaluation system and method WO2021246742A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200068635A KR102235690B1 (en) 2020-06-05 2020-06-05 System and method for evaluating program code based on artificial intelligence
KR10-2020-0068635 2020-06-05

Publications (1)

Publication Number Publication Date
WO2021246742A1 true WO2021246742A1 (en) 2021-12-09

Family

ID=75466394

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/006763 WO2021246742A1 (en) 2020-06-05 2021-05-31 Artificial-intelligence-based program code evaluation system and method

Country Status (2)

Country Link
KR (1) KR102235690B1 (en)
WO (1) WO2021246742A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816963A (en) * 2022-06-28 2022-07-29 南昌航空大学 Embedded software quality evaluation method, system, computer and readable storage medium
CN116841519A (en) * 2022-06-21 2023-10-03 北京浩泰思特科技有限公司 Code writing teaching evaluation method and system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102235690B1 (en) * 2020-06-05 2021-04-02 주식회사 코딩로봇연구소 System and method for evaluating program code based on artificial intelligence
KR102472715B1 (en) * 2021-11-11 2022-12-01 주식회사 모비젠 Method for presuming the quality deterioration factors of raw data through data quality correction and system thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136163A (en) * 2017-06-14 2018-12-24 슈어소프트테크주식회사 Method for masuring integrated quality of software and computer readable recording medium having program performing the same
KR101963756B1 (en) * 2018-11-19 2019-03-29 세종대학교산학협력단 Apparatus and method for learning software vulnerability prediction model, apparatus and method for analyzing software vulnerability
KR102013955B1 (en) * 2018-05-30 2019-08-23 (주)미래융합정보기술 Smart education system for software expert practical affairs education and estimation and method thereof
KR102102418B1 (en) * 2018-12-10 2020-04-20 주식회사 티포러스 Apparatus and method for testing artificail intelligence solution
KR102235690B1 (en) * 2020-06-05 2021-04-02 주식회사 코딩로봇연구소 System and method for evaluating program code based on artificial intelligence

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180136163A (en) * 2017-06-14 2018-12-24 슈어소프트테크주식회사 Method for masuring integrated quality of software and computer readable recording medium having program performing the same
KR102013955B1 (en) * 2018-05-30 2019-08-23 (주)미래융합정보기술 Smart education system for software expert practical affairs education and estimation and method thereof
KR101963756B1 (en) * 2018-11-19 2019-03-29 세종대학교산학협력단 Apparatus and method for learning software vulnerability prediction model, apparatus and method for analyzing software vulnerability
KR102102418B1 (en) * 2018-12-10 2020-04-20 주식회사 티포러스 Apparatus and method for testing artificail intelligence solution
KR102235690B1 (en) * 2020-06-05 2021-04-02 주식회사 코딩로봇연구소 System and method for evaluating program code based on artificial intelligence

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116841519A (en) * 2022-06-21 2023-10-03 北京浩泰思特科技有限公司 Code writing teaching evaluation method and system
CN114816963A (en) * 2022-06-28 2022-07-29 南昌航空大学 Embedded software quality evaluation method, system, computer and readable storage medium
CN114816963B (en) * 2022-06-28 2022-09-20 南昌航空大学 Embedded software quality evaluation method, system, computer and readable storage medium

Also Published As

Publication number Publication date
KR102235690B1 (en) 2021-04-02

Similar Documents

Publication Publication Date Title
WO2021246742A1 (en) Artificial-intelligence-based program code evaluation system and method
US8312440B2 (en) Method, computer program product, and hardware product for providing program individuality analysis for source code programs
WO2022211326A1 (en) Apparatus and system for evaluating user's ability through artificial intelligence model trained with transfer element applied to plurality of test domains, and operating method thereof
WO2020111754A9 (en) Method for providing diagnostic system using semi-supervised learning, and diagnostic system using same
WO2023287064A1 (en) Method and system for constructing training database by using automatic abnormal data detection and automatic labeling technology
WO2021071137A1 (en) Method and system for automatically generating blank-space inference questions for foreign language sentence
CN107862327B (en) Security defect identification system and method based on multiple features
WO2019235828A1 (en) Two-face disease diagnosis system and method thereof
WO2011074714A1 (en) Method for intelligent personalized learning service
WO2022019500A1 (en) Method for providing compensated practical training for participants in practical training for crowdsourcing-based project for generating artificial intelligence learning data, device therefor, and computer program therefor
US20160103754A1 (en) Method and system for grading a computer program
WO2020233089A1 (en) Test case generating method and apparatus, terminal, and computer readable storage medium
WO2022146050A1 (en) Federated artificial intelligence training method and system for depression diagnosis
WO2020204256A1 (en) Automatic multimedia speech recognition evaluation system using speech synthesis engine
WO2020213785A1 (en) System for automatically generating text-based sentences on basis of deep learning to achieve improvement related to infinity of utterance patterns
WO2021133076A1 (en) Method and device for managing work unit price of crowdsourcing-based project for artificial intelligence training data generation
WO2021137523A1 (en) Method for automatically updating unit cost of inspection by using comparison between inspection time and work time of crowdsourcing-based project for generating artificial intelligence training data
Prechelt Accelerating learning from experience: Avoiding defects faster
CN115481941B (en) Multifunctional area combined intelligent security management method and system
WO2023282500A1 (en) Method, apparatus, and program for automatically labeling slide scan data
WO2021132831A1 (en) Method for increasing or decreasing number of workers and inspectors in crowdsourcing-based project for creating artificial intelligence learning data
WO2021261901A1 (en) Anomaly detection device and method using function call pattern analysis
WO2022191513A1 (en) Data augmentation-based knowledge tracking model training device and system, and operation method thereof
WO2022005111A1 (en) Method for automatically granting inspection authority to worker, based on results of tasks of crowdsourcing-based project for generating artificial intelligence learning data, apparatus therefor, and computer program therefor
CN114925610A (en) Learner knowledge structure and level modeling method, system, equipment and terminal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21816855

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21816855

Country of ref document: EP

Kind code of ref document: A1