A learning evaluation system and method based on big data
Through a learning evaluation system based on big data, the difficulty of programming tasks is dynamically adjusted, and the problem that existing technology cannot fully reflect students' programming ability and task allocation is solved, and personalized task arrangement and teaching effect are achieved.
Patent Information
- Application Number
- CN202410690439.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-30
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2044-05-30
AI Technical Summary
The existing programming education evaluation methods cannot fully reflect students' programming abilities, and cannot objectively assign subsequent programming tasks based on students' actual abilities, resulting in limited teaching effects.
Using a learning evaluation system based on big data, we use the difficulty coefficient of the programming task and the students' programming efficiency index to build a difficulty reference matrix and challenge difficulty coefficient, and dynamically adjust the task difficulty to ensure that each student receives programming tasks that suit their abilities.
A comprehensive assessment of students' programming ability and personalized task arrangement are achieved, ensuring that students are always in a moderately challenging state and improving teaching effectiveness.
Smart Images

Figure CN118586763B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of educational evaluation, and in particular to a learning evaluation system and method based on big data. Background Art
[0002] With the development of modern educational technology and the popularization of information-based teaching, learning programming has become a compulsory course for more and more students. From basic understanding of programming logic to complex code implementation and optimization, programming education covers a wide range of knowledge content and skill improvement. With the popularization of online education platforms and programming tools, the threshold for learning programming has been greatly reduced, attracting more and more students to devote themselves to programming learning. However, with the surge in programming learners, how to effectively evaluate students' programming ability and make scientific and reasonable task allocation based on this has become an urgent problem to be solved in the education sector. Traditional evaluation methods often focus on a single programming achievement, which limits the depth and breadth of programming education and also affects the comprehensive development of students' programming skills.
[0003] In existing programming education, most tasks are carried out according to the course progress or plan, which often ignores students' actual programming ability and learning progress. In this case, high-ability students may find the tasks too simple, while low-ability students may feel too stressed. Moreover, student evaluation is generally based on simple judgments based on the speed or accuracy of students completing tasks. It is impossible to accurately evaluate students' programming ability and objectively allocate subsequent programming tasks based on students' actual abilities, which will undoubtedly hinder teaching effectiveness.
[0004] Therefore, the shortcomings of the existing technology are that the students' programming scores mostly rely on simple basic indicators such as code completion and error rate, or rely on the subjective evaluation of teachers. However, these evaluation methods often cannot fully reflect the students' programming ability, nor can they provide more targeted task arrangements for students' programming learning. Summary of the invention
[0005] The purpose of the present invention is to provide a learning evaluation system and method based on big data to solve the problems raised in the above background technology.
[0006] To achieve the above object, the present invention provides the following technical solutions:
[0007] A learning evaluation system based on big data, comprising:
[0008] A difficulty grading module is used to obtain sample programs of programming tasks in the programming task pool, number the programming tasks, obtain program parameters of each sample program, form a program parameter matrix, determine the difficulty coefficient of each programming task according to the program parameter matrix, and form a difficulty coefficient matrix;
[0009] A preprocessing module is used to normalize the elements in the difficulty coefficient matrix, normalize all elements within the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, and map the numbers of programming tasks and difficulty reference coefficients one by one;
[0010] The data collection module is used to obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, and generate a historical data set;
[0011] A data processing module is used to generate a student's programming efficiency index based on real-time programming data, construct a current student's challenge difficulty coefficient based on historical data sets and a difficulty reference matrix, and determine a difficulty gradient for subsequent programming tasks issued to the student based on the student's challenge difficulty coefficient and programming efficiency index;
[0012] The task assignment module is used to select the next programming task assigned to the student based on the difficulty gradient and the difficulty reference matrix, and determine the task number.
[0013] Furthermore, the program parameters of the sample program obtained include the number of code lines in the program, the number of independent linear paths, the average number of function parameters, and the number of external libraries called, forming a program parameter matrix:
[0014]
[0015] Among them, Rc s Denotes the program parameter matrix, Dh i 、Dl i , PJ i and Wk i are respectively the number of code lines, the number of independent linear paths, the average number of function parameters and the number of external libraries called for the i-th programming task example program, i is the number of the programming task, i is a positive integer, and i=1, 2, …, n, n is the number of programming tasks in the programming task pool.
[0016] Furthermore, the specific logic underlying the difficulty coefficient matrix is as follows:
[0017] The difficulty coefficient of the programming task is generated according to the program parameters corresponding to each programming task in the program parameter matrix. The formula for generating the difficulty coefficient is:
[0018]
[0019] Among them, Nd irepresents the difficulty coefficient of the i-th programming task example program, ω1, ω2 and ω3 represent the first weight coefficient, the second weight coefficient and the third weight coefficient respectively, and ω1>ω2>ω3, ω1+ω2+ω3=1;
[0020] The difficulty coefficient of each programming task is used as an element and filled into an n×1 matrix in sequence according to the number of the programming task to form a difficulty coefficient matrix. The difficulty coefficient matrix is:
[0021]
[0022] Among them, Rn x Represents the difficulty coefficient matrix.
[0023] Furthermore, the specific logic of the difficulty reference matrix is as follows:
[0024] The elements in the difficulty coefficient matrix are normalized according to the following formula:
[0025]
[0026] Among them, GND i represents the difficulty coefficient of the i-th programming task example program after normalization, min(Rn x ) represents the smallest element value in the difficulty coefficient matrix, max(Rn x ) represents the element with the largest value in the difficulty coefficient matrix;
[0027] The normalized elements are rounded to one decimal place, and the rounded values are used as the elements of the difficulty reference matrix. They are filled into the n×1 matrix in sequence according to the number of the programming task to form a difficulty reference matrix. The difficulty reference matrix is:
[0028]
[0029] Among them, RCn x Represents the difficulty coefficient matrix, Gyd i The difficulty reference coefficient of the example program of the i-th programming task after normalization and rounding;
[0030] Mapping the number of programming tasks and the reference coefficient of difficulty one to one means that different programming tasks have a unique task number, and each task number has a unique corresponding reference coefficient of difficulty associated with it.
[0031] Furthermore, the student's real-time programming data includes: the total operation time of learning the current programming task, the total number of characters input, the total number of compilation errors and the number of code submissions, and the historical data set of the student's historical learning process includes: the numbers of all programming tasks that the student learned and operated during the historical learning process.
[0032] Furthermore, the formula for generating the student's programming efficiency index based on real-time programming data is:
[0033]
[0034] Among them, PEI represents the student's programming efficiency index, H z Indicates the total number of characters entered, T d It represents the total operation time of learning the current programming task in minutes, EI represents the total number of compilation errors, and SE represents the total number of code submissions.
[0035] Furthermore, when constructing the current student's challenge difficulty coefficient, according to the number of the programming task in the historical data set, the difficulty reference coefficients corresponding to all the programming tasks operated by the student in the historical learning process are obtained through the mapping relationship in the difficulty reference matrix to form the historical difficulty data set Ls d [m], where m represents the number of difficulty reference coefficients within the historical difficulty data set;
[0036] According to the number of the programming task that the student is learning, the difficulty reference coefficient corresponding to the programming task currently being learned is found in the difficulty reference matrix and calibrated as the real-time difficulty reference coefficient. The challenge difficulty coefficient of the current student is generated according to the historical difficulty data group and the real-time difficulty reference coefficient. The formula is:
[0037]
[0038] in, Indicates the average difficulty reference coefficient of the historical difficulty data group, Ls d j represents the jth difficulty reference coefficient in the historical difficulty data set, DI represents the challenge difficulty coefficient of the current student, max{Ls d [m]} represents the maximum value in the historical difficulty data set, Gyd now Indicates the difficulty reference coefficient of the programming task currently being learned.
[0039] Furthermore, the logic for determining the difficulty gradient based on the student's challenge difficulty coefficient and programming efficiency index is as follows:
[0040]
[0041] Among them, ΔGyd represents the difficulty gradient, PEIy Indicates the set programming efficiency threshold.
[0042] Furthermore, when screening out the next programming task assigned to the student, the predicted difficulty reference coefficient is obtained by adding the real-time difficulty reference coefficient and the difficulty leap gradient, and the value of each element in the difficulty reference matrix is traversed to obtain the predicted reference coefficient and the element value with the smallest difference in the difficulty reference matrix and its corresponding number, and the programming task corresponding to the number is determined as the next programming task assigned to the student.
[0043] The present invention further provides a learning evaluation method based on big data, which is performed by the above-mentioned learning evaluation system based on big data, and the specific steps include:
[0044] Obtaining sample programs of programming tasks in the programming task pool, numbering the programming tasks, and obtaining program parameters of each sample program to form a program parameter matrix, and determining the difficulty coefficient of each programming task according to the program parameter matrix to form a difficulty coefficient matrix;
[0045] Normalize the elements in the difficulty coefficient matrix, normalize all elements within the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, and map the programming task numbers and difficulty reference coefficients one by one;
[0046] Obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, and generate a historical data set;
[0047] Generate the student's programming efficiency index based on real-time programming data, build the current student's challenge difficulty coefficient based on historical data sets and difficulty reference matrix, and determine the difficulty gradient of subsequent programming tasks for students based on the student's challenge difficulty coefficient and programming efficiency index;
[0048] Based on the difficulty gradient and the difficulty reference matrix, the next programming task assigned to the student is screened out and the task number is determined.
[0049] Compared with the prior art, the present invention has the following beneficial effects:
[0050] The present invention uses a large amount of data collected from programming learning activities as the evaluation basis, and accurately calculates the difficulty coefficient of each programming task according to the example programs and program parameters of the programming tasks. The data-based difficulty evaluation method can more objectively reflect the actual difficulty of the programming tasks compared to the traditional subjective evaluation, so that when evaluating students' programming ability, the actual performance of students can be more comprehensively considered, the difficulty coefficient is normalized, and a difficulty reference matrix is generated, which provides a basis for subsequent personalized task allocation. By combining students' historical data and real-time programming data, the students' programming efficiency index and challenge difficulty coefficient are calculated, and then the difficulty span gradient is determined. A task allocation mechanism based on individual differences of students is constructed, which can ensure that each student can receive programming tasks suitable for their current abilities.
[0051] The present invention also selects the next programming task suitable for students based on the difficulty gradient and the difficulty reference matrix. By dynamically adjusting the learning path, the task difficulty can be continuously adjusted according to the students' real-time performance and progress, ensuring that students are always in a moderately challenging state. This can achieve a comprehensive assessment of students' programming ability and provide personalized task arrangements, thereby effectively solving the technical problems that traditional evaluation methods cannot fully reflect students' programming ability and cannot provide targeted task arrangements. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] Figure 1 It is a schematic diagram of the overall system structure of the present invention;
[0053] Figure 2 It is a schematic diagram of the overall method flow of the present invention. DETAILED DESCRIPTION
[0054] In order to make the objectives, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with specific embodiments.
[0055] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the present invention should be understood by people with ordinary skills in the field to which the present invention belongs. The words "first", "second" and similar words used in the present invention do not indicate any order, quantity or importance, but are only used to distinguish different components. "Include" or "comprise" and similar words mean that the elements or objects appearing before the word include the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0056] Example:
[0057] See also Figure 1 , the present invention provides a technical solution:
[0058] A learning evaluation system based on big data includes a difficulty grading module, a preprocessing module, a data collection module, a data processing module and a task allocation module, wherein:
[0059] The difficulty grading module is used to obtain example programs of programming tasks in the programming task pool, number the programming tasks, and obtain program parameters of each example program to form a program parameter matrix. The difficulty coefficient of each programming task is determined based on the program parameter matrix to form a difficulty coefficient matrix. The difficulty grading module sends the generated difficulty coefficient matrix to the preprocessing module.
[0060] The programming task pool refers to a set of pre-designed programming tasks. Programming tasks are used for students' practice and learning. The programming task pool contains various types of tasks, covering different difficulty levels, programming concepts, algorithms and data structures, etc. The task pool can continuously add new tasks to adapt to new programming languages, frameworks or technology trends. The programming task example program is a code provided to students for reference. It is designed for specific programming tasks and shows how to write code to meet the task requirements. The example program can help students understand how a programming task is converted into actual code.
[0061] The difficulty grading module needs to process and analyze a large number of programming task examples and related parameters. After accumulating for a period of time, these data constitute big data because it not only includes the code itself, but also the multi-dimensional parameters related to it, such as time complexity, space complexity, number of lines of code, etc. The construction of program parameter matrix and difficulty coefficient matrix is essentially an application of big data analysis. These matrices are based on the statistics and calculation results of large-scale data sets. As more programming tasks and student programming data are incorporated into the system, the difficulty grading module can continuously update and optimize the difficulty coefficient.
[0062] By analyzing the sample programs and program parameters of programming tasks, the difficulty grading module can objectively evaluate the difficulty of each task. Compared with the traditional method that relies on the subjective judgment of teachers, this method reduces subjective bias and improves the accuracy of difficulty assessment. The process of constructing the program parameter matrix and the difficulty coefficient matrix allows the difficulty of different programming tasks to be compared in a standardized manner. This standardization helps to establish a unified difficulty evaluation system between different tasks, so that students and teachers can more clearly understand the relative difficulty of different tasks.
[0063] The difficulty coefficient matrix provides key inputs for the data acquisition module and the data processing module. Through these difficulty coefficients, the system can more accurately match students with programming tasks that are suitable for their current abilities and realize personalized learning path planning. The difficulty coefficient matrix provides the basis for the task allocation module, enabling the system to dynamically adjust the task difficulty according to the students' real-time performance. Through accurate task difficulty assessment, the system can ensure that students are always in a moderately challenging state, and they will not feel bored because the task is too simple, nor will they feel frustrated because the task is too difficult.
[0064] In this embodiment, the program parameters of the example program obtained include the number of code lines in the program, the number of independent linear paths, the average number of function parameters, and the number of external libraries called, forming a program parameter matrix:
[0065]
[0066] Among them, Rc s Denotes the program parameter matrix, Dh i 、Dl i , PJ i and WK i are respectively the number of code lines, the number of independent linear paths, the average number of function parameters and the number of external libraries called for the i-th programming task example program, i is the number of the programming task, i is a positive integer, and i=1, 2, …, n, n is the number of programming tasks in the programming task pool.
[0067] By quantifying the number of lines of code, the number of independent linear paths, the average number of parameters of a function, and the number of external libraries called, the complexity and difficulty of programming tasks can be objectively evaluated. The constructed program parameter matrix provides a standardized evaluation method, making comparison and analysis between different programming tasks easier and more accurate.
[0068] In this embodiment, the number of code lines refers to the total number of valid code lines in the program, excluding blank lines and comments, and is automatically counted by programming tools or code analyzers. The number of code lines is an intuitive indicator of the size of the program. The more code, the more difficult it is to understand and maintain. The number of independent linear paths refers to the number of code paths that can be executed independently in the program, including all possible control flow paths. The number of independent linear paths can be calculated through static code analysis tools, such as control flow analysis. The number of independent linear paths reflects the logical complexity of the program. The more paths, the higher the complexity of the program and the difficulty of testing.
[0069] The average number of function parameters refers to the average number of parameters of all functions in the program. Code analysis tools are used to scan all function definitions, calculate the total number of parameters, and then divide it by the number of functions. The number of function parameters can reflect the complexity of the function interface. The more parameters, the more difficult it is to understand and use the function. The number of external libraries called refers to the number of external libraries called directly or indirectly in the program. Code analysis tools are used to identify all imported or linked external libraries. The number of external libraries called can reflect the degree of program dependence on third-party resources. The more dependence, the more complex the program needs to support specific environments and the more complex the functions.
[0070] The number of lines of code in a program, the number of independent linear paths, the average number of parameters of a function, and the number of external libraries called reflect the structure and logical complexity of the program from different angles. By combining these indicators, we can have a more comprehensive understanding of the technical requirements and learning difficulty of a programming task, thereby helping educators design more reasonable teaching plans and helping students learn programming more effectively.
[0071] Furthermore, the specific logic underlying the difficulty coefficient matrix is as follows:
[0072] The difficulty coefficient of the programming task is generated according to the program parameters corresponding to each programming task in the program parameter matrix. The formula for generating the difficulty coefficient is:
[0073]
[0074] Among them, Dh i 、Dl i , PJ i and Wk i are the number of lines of code, the number of independent linear paths, the average number of function parameters, and the number of external libraries called in the example program of the i-th programming task, respectively. i represents the difficulty coefficient of the i-th programming task example program, ω1, ω2 and ω3 represent the first weight coefficient, the second weight coefficient and the third weight coefficient respectively, and ω1>ω2>ω3, ω1+ω2+ω3=1.
[0075] The number of independent linear paths is a recognized effective indicator for measuring the complexity of program logic. A high number of independent linear paths means more test paths and higher maintenance difficulty. Therefore, it has the highest weight in determining the program difficulty coefficient, that is, the first weight coefficient is the largest. Although the use of external libraries will increase the dependency and potential complexity of the program, it does not directly affect the difficulty of the program as much as the internal logic complexity. In addition, the reasonable use of external libraries can improve development efficiency and reduce the amount of code. Therefore, it has the lowest weight, that is, the third weight coefficient is the smallest.
[0076] Although the number of lines of code is an intuitive complexity indicator, it does not always accurately reflect the logical complexity of the program. A large number of simple lines of code may not be as complex as a small number of complex lines of code. The average number of parameters of a function can reflect the complexity and coupling of the function, but it is not as directly related to the logical structure of the program as independent linear paths. Therefore, the weights of the two are moderate, that is, the second weight coefficient is greater than the third weight coefficient and less than the first weight coefficient. In this implementation, ω1=0.5, ω2=0.3, and ω3=0.2.
[0077] The difficulty coefficient is a quantitative indicator used to evaluate the complexity and challenge of programming tasks. The greater the difficulty coefficient, the higher the difficulty of the corresponding programming task. The number of lines of code directly reflects the scale of the task. More lines of code means that more logical judgments, more functional implementations, and more complex data structures may be involved, which directly increases the complexity of understanding and managing the code. Therefore, the more lines of code there are, the higher the difficulty coefficient is usually. The number of independent linear paths reflects the complexity of program logic. Each independent path represents a possible execution flow in the program. The increase in the number of paths means that the complexity of program logic increases, so a higher level of logical analysis and problem-solving skills is required. An exponential function is used to simulate this effect, because the growth of logical complexity will lead to an exponential increase in difficulty, that is, the more independent paths there are, the greater the increase in difficulty in understanding and correctly implementing the program.
[0078] The average number of parameters in a function affects the readability and complexity of the code. Functions with a larger number of parameters are more difficult to understand and use because they require more background knowledge and understanding of the function's logic, which increases the difficulty of the programming task. The number of external library calls reflects the technical dependence and breadth of the programming task. Although the use of external libraries can simplify some tasks, understanding and correctly using these libraries requires additional learning and understanding. A logarithmic function is used to simulate this effect because the initial increase in the number of external libraries has a greater impact on the difficulty, but as the number increases further, the marginal impact of each additional library on the total difficulty gradually decreases, reflecting that after becoming familiar with several libraries, the rate of increase in the difficulty of learning new libraries will decrease. In this way, the calculation of the difficulty coefficient comprehensively considers multiple key dimensions of the programming task and can more accurately reflect the overall difficulty of the task.
[0079] The difficulty coefficient of each programming task is used as an element and filled into an n×1 matrix in sequence according to the number of the programming task to form a difficulty coefficient matrix. The difficulty coefficient matrix is:
[0080]
[0081] Among them, Rn x Represents the difficulty coefficient matrix.
[0082] The preprocessing module is used to normalize the elements within the difficulty coefficient matrix, normalize all elements within the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, map the programming task numbers and difficulty reference coefficients one by one, and send the processed difficulty reference matrix results to the data processing module and the task allocation module.
[0083] In this embodiment, the specific logic of forming the difficulty reference matrix is:
[0084] The elements in the difficulty coefficient matrix are normalized according to the following formula:
[0085]
[0086] Among them, GND i represents the difficulty coefficient of the i-th programming task example program after normalization, min(Rn x ) represents the smallest element value in the difficulty coefficient matrix, max(Rn x ) represents the element with the largest value in the difficulty coefficient matrix.
[0087] The formula subtracts the minimum difficulty coefficient from each difficulty coefficient and then divides it by the range of difficulty coefficients (maximum difficulty coefficient minus minimum difficulty coefficient), thereby converting the difficulty coefficient to a value between 0 and 1. The normalized value represents the relative position of the original difficulty coefficient within the possible difficulty range. Normalization increases the comparability between data of different scales and dimensions, converts the difficulty coefficients of different example programs to a unified standard, and facilitates comparison across multiple programs or tasks.
[0088] The normalized elements are rounded to one decimal place, and the rounded values are used as the elements of the difficulty reference matrix. They are filled into the n×1 matrix in sequence according to the number of the programming task to form a difficulty reference matrix. The difficulty reference matrix is:
[0089]
[0090] Among them, RCn x Represents the difficulty coefficient matrix, Gyd i The difficulty reference coefficient of the example program for the i-th programming task after normalization and rounding.
[0091] By rounding to one decimal place, the normalized difficulty coefficient can be simplified into a form that is easier to understand and process, which helps reduce the complexity of data processing. Unifying the difficulty coefficient to the same precision helps standardize the output, making the difficulty comparison of different programming tasks more consistent and fair. By providing a standardized difficulty reference matrix, the difficulty of different programming tasks can be quickly and accurately evaluated and compared, thereby improving decision-making efficiency.
[0092] Furthermore, mapping the number of the programming task and the difficulty reference coefficient one by one means that different programming tasks have a unique task number, and each task number has a unique corresponding difficulty reference coefficient associated therewith.
[0093] The data acquisition module is used to obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, generate a historical data set, and pass the historical data set to the data processing module.
[0094] The data acquisition module builds a personalized learning experience by capturing students' real-time programming data and learning history. Compared with traditional learning data collection, the data acquisition module can obtain more comprehensive data. The collected real-time programming data and historical learning data can provide a richer source of information for in-depth learning analysis.
[0095] Compared with methods that rely solely on periodic testing, real-time data collection can provide immediate feedback, and the collected data can be used to dynamically adjust students' learning paths to ensure that they always face programming tasks of appropriate difficulty to maximize learning effects. The data collection module provides the basis for building a data-driven, responsive and personalized evaluation system.
[0096] In this embodiment, the student's real-time programming data includes: the total operation time for learning the current programming task, the total number of characters input, the total number of compilation errors and the number of code submissions, and the historical data set in the student's historical learning process includes: the numbers of all programming tasks that the student learned and operated during the historical learning process.
[0097] The total operation time for learning the current programming task reflects the total time students spend on completing a specific programming task. It can be used to evaluate the difficulty of the task or the students' understanding speed. It is obtained from the background database of the programming platform. The total number of characters entered represents the total number of characters typed by students during the programming process, which can reflect the students' programming volume and can evaluate their programming ability and activity. The total number of compilation errors is the number of compilation errors that occur during the programming process, which is used to evaluate students' programming ability and understanding of task requirements. The number of code submissions is used to measure the activity of students' programming. Frequent submissions may indicate that the task is being actively developed. The total number of characters entered, the total number of compilation errors, and the number of code submissions are obtained through the records of the development environment software.
[0098] Furthermore, the formula for generating the student's programming efficiency index based on real-time programming data is:
[0099]
[0100] Among them, PEI represents the student's programming efficiency index, H z Indicates the total number of characters entered, T d It represents the total operation time of learning the current programming task in minutes, EI represents the total number of compilation errors, and SE represents the total number of code submissions.
[0101] In this embodiment, the programming efficiency index reflects the efficiency of students in completing the current programming task. The larger the programming efficiency index is, the higher the programming efficiency is. The overall performance of the students in the programming process can be quantified through the programming efficiency index, providing an objective evaluation standard. The three key factors of programming speed, compilation errors and number of code submissions are comprehensively considered. These factors are all important indicators that affect programming efficiency. By combining these factors, a comprehensive programming efficiency index can be obtained.
[0102] The ratio of the total number of characters entered to the total operation time measures the number of characters entered per unit time, that is, the programming speed. A higher value means that the student enters more characters per unit time. The larger the programming efficiency index, the higher the programming efficiency. EI The ratio of takes into account the impact of compilation errors on programming efficiency. The more compilation errors there are, the higher the proportion of errors in the total number of input characters. At this time, the programming efficiency index is smaller, reflecting the negative impact of compilation errors on programming efficiency. In this embodiment, an exponential function is used to amplify the impact of the total number of compilation errors, because the exponential function grows rapidly when the variable is greater than zero. Because as the number of compilation errors increases, the impact that the program cannot run or produces erroneous results will be greater.
[0103] The ratio of the total number of compilation errors to ln SE measures the average number of compilation errors that occur each time the code is submitted. If the ratio is high, it may indicate that the students did not conduct sufficient testing and debugging before submitting the code, reflecting low programming efficiency. Therefore, the larger the ratio, the smaller the programming efficiency index. If the ratio is high, it may indicate that the students did not conduct sufficient testing and debugging before submitting the code. The natural logarithm is used to adjust the impact of the number of code submissions, because the natural logarithm grows slowly when the variable is greater than 1, indicating that as the number of submissions increases significantly, its logarithm increases slowly. This can reduce the direct impact of the number of submissions on the error rate. The use of logarithms can balance the differences in submission frequencies of different students, making the evaluation more fair. Frequent submissions do not necessarily mean inefficiency, but may also be a manifestation of iterative development. It can more finely adjust the impact of different factors on programming efficiency, making the evaluation results more accurate and meaningful.
[0104] In the embodiment, a large amount of data collected from programming learning activities is used as the evaluation basis, and the difficulty coefficient of each programming task is accurately calculated according to the example programs and program parameters of the programming tasks. The data-based difficulty assessment method can more objectively reflect the actual difficulty of the programming tasks compared to the traditional subjective evaluation. Therefore, when evaluating students' programming ability, the students' actual performance can be more comprehensively considered, the difficulty coefficient is normalized, and a difficulty reference matrix is generated, which provides a basis for subsequent personalized task allocation. By combining students' historical data and real-time programming data, the students' programming efficiency index and challenge difficulty coefficient are calculated, and then the difficulty span gradient is determined. A task allocation mechanism based on individual differences of students is constructed, which can ensure that each student can receive programming tasks suitable for his or her current ability.
[0105] The data processing module is used to generate a student's programming efficiency index based on real-time programming data, construct the current student's challenge difficulty coefficient based on the historical data set and the difficulty reference matrix, determine the difficulty gradient of subsequent programming tasks issued to the student based on the student's challenge difficulty coefficient and programming efficiency index, and send the challenge difficulty coefficient to the task assignment module.
[0106] In this embodiment, by generating the student's programming efficiency index through real-time programming data, it is possible to more accurately understand the student's programming ability and efficiency, and to analyze their programming habits and problems in a targeted manner. Secondly, by constructing the current student's challenge difficulty coefficient based on the historical data set and the difficulty reference matrix, a personalized learning plan can be created for each student, allowing them to face challenges that suit them, thereby improving their learning efficiency and results.
[0107] Compared with existing technologies, this method pays more attention to individual differences and is more humane. It can reduce students' learning pressure while ensuring learning results. Its beneficial effects are reflected in the promotion of personalized education, refined teaching management based on data, and the development of intelligent education systems.
[0108] In this embodiment, when constructing the challenge difficulty coefficient of the current student, according to the number of the programming task in the historical data set, the difficulty reference coefficients corresponding to all the programming tasks operated by the student in the historical learning process are obtained through the mapping relationship in the difficulty reference matrix to form the historical difficulty data set Ls. d [m], where m represents the number of difficulty reference coefficients within the historical difficulty data set.
[0109] In this embodiment, the historical difficulty data group refers to the set of difficulty reference coefficients corresponding to all programming tasks performed by students in the past learning process. Specifically, this data group includes the difficulty coefficients of each programming task completed by the students in the past. These coefficients are obtained from the difficulty reference matrix through a certain mapping relationship. The difficulty reference matrix is a predefined difficulty level table. Each programming task has a corresponding difficulty reference coefficient. When a student completes a programming task, the system will search for the corresponding difficulty reference coefficient in the difficulty reference matrix according to the task number, and record this coefficient in the historical difficulty data group.
[0110] According to the number of the programming task that the student is learning, the difficulty reference coefficient corresponding to the programming task currently being learned is found in the difficulty reference matrix and calibrated as the real-time difficulty reference coefficient. The challenge difficulty coefficient of the current student is generated according to the historical difficulty data group and the real-time difficulty reference coefficient. The formula is:
[0111]
[0112] in, Indicates the average difficulty reference coefficient of the historical difficulty data group, Ls d j represents the jth difficulty reference coefficient in the historical difficulty data set, DI represents the challenge difficulty coefficient of the current student, max{Ls d [m]} represents the maximum value in the historical difficulty data set, Gyd now Indicates the difficulty reference coefficient of the programming task currently being learned.
[0113] The average difficulty reference coefficient of the historical difficulty data group is calculated by averaging the difficulty coefficients of all the students' past programming tasks, reflecting the average difficulty level faced by students in history. The maximum difficulty reference coefficient in the historical difficulty data group represents the highest difficulty of students' challenges and learning in history, and is a reflection of the upper limit of difficulty that students can reach. The difficulty reference coefficient corresponding to the programming task currently being studied indicates the difficulty of the current task, reflecting the difficulty requirements of the students' current learning stage. The challenge difficulty coefficient is calculated by dividing the maximum value in the historical difficulty data group by the average difficulty reference coefficient, and then multiplying it by the difficulty reference coefficient of the programming task currently being studied, reflecting the difficulty level that students can handle, while also taking into account the students' growth and recent learning status.
[0114] The ratio of average difficulty to maximum difficulty reflects the relationship between the maximum ability performance of students and their average performance. If a student can handle challenges higher than their average difficulty level in past learning, it means that the student is capable of accepting higher difficulty tasks. This proportional factor ensures that the challenge difficulty coefficient can be dynamically adjusted according to the student's historical performance, reflecting the personalized learning path design. By multiplying the difficulty coefficient of the current task by the above ratio, the formula takes into account the student's current learning status and ensures that even if the student's ability improves, the challenge difficulty coefficient can be adjusted accordingly to provide students with appropriate learning challenges. This helps to maintain students' learning motivation and avoid frustration caused by tasks that are too simple or too complex. The challenge difficulty coefficient reflects the student's current learning status and programming ability level. The larger the coefficient, the higher the student's current status and programming level.
[0115] Furthermore, the logic for determining the difficulty gradient based on the student's challenge difficulty coefficient and programming efficiency index is as follows:
[0116]
[0117] Among them, ΔGyd represents the difficulty gradient, PEI y Indicates the set programming efficiency threshold.
[0118] In this embodiment, the difficulty leap gradient refers to the difference between the difficulty of the next programming task and the difficulty of the current task. By calculating the ratio of the student's programming efficiency index and the set programming efficiency threshold, we can obtain the ratio of the student's current performance to the expected efficiency. If the student's programming efficiency index is greater than the set programming efficiency threshold, the ratio of the two is greater than 1, then the logarithm of the ratio is greater than 0, indicating that the programming efficiency is high, then the entire difficulty leap gradient is positive, indicating that the student needs to be assigned a more difficult programming task to learn. If the student's programming efficiency index is not greater than the set programming efficiency threshold, then the logarithm of the ratio must be a positive number, indicating that the programming efficiency cannot meet the requirements, then the entire difficulty leap gradient is a non-positive number, indicating that the current programming task is difficult for the student and the student is currently unable to complete it well. The student needs to be assigned a programming task of lower difficulty or the same level. The adjustment of difficulty takes into account both the student's learning status and ability level as well as their learning efficiency.
[0119] This method supports real-time adjustment of difficulty, reflects the students' latest learning status, and helps students continue to learn at an appropriate level of challenge. By optimizing the difficulty gradient, it can ensure that students will not be frustrated by excessively high difficulty or bored by too low difficulty, thereby improving the overall efficiency of learning, taking students' ability levels into account and making appropriate adjustments through constants.
[0120] The constant 11 represents the number of difficulty levels within the difficulty reference matrix. Since there are 11 difficulty reference coefficients within the difficulty reference matrix, the constant 11 is used to ensure that the calculated difficulty gradient is compatible with these pre-set levels, which means that the calculation result will closely correspond to the actually available difficulty level, ensuring that the adjusted difficulty gradient can be directly mapped to the existing difficulty level. In this embodiment, the challenge difficulty coefficient is scaled according to the number of difficulty levels. Since the challenge difficulty coefficient represents the maximum challenge difficulty that students can handle to a certain extent, this scaling ensures that the difficulty adjustment will not exceed the range that students can accept.
[0121] The task assignment module is used to screen out the next programming task assigned to the student and determine the task number based on the difficulty span gradient and the difficulty reference matrix.
[0122] In this embodiment, when screening out the next programming task assigned to the student, the predicted difficulty reference coefficient is obtained by adding the real-time difficulty reference coefficient and the difficulty leap gradient, and the value of each element in the difficulty reference matrix is traversed to obtain the predicted reference coefficient and the element value with the smallest difference in the difficulty reference matrix and its corresponding number, and the programming task corresponding to the number is determined as the next programming task assigned to the student.
[0123] In this embodiment, the working logic of the task assignment module is to screen and determine the next programming task for students based on the difficulty span gradient and the difficulty reference matrix. First, the real-time difficulty reference coefficient is added to the difficulty span gradient. The result of this addition is called the predicted difficulty reference coefficient, which represents the difficulty level that the next task should have based on the prediction of the student's current performance and progress. Next, the system will traverse each element in the difficulty reference matrix. The difficulty reference matrix is a pre-set table or array, which contains the difficulty level of different programming tasks and their corresponding numbers. For each element in the matrix, the gap between its difficulty level and the predicted difficulty reference coefficient is calculated. This gap represents the difference between the current task difficulty and the predicted difficulty. The system will find the smallest of all gaps and record the element value and its number corresponding to this smallest gap. This number represents the task closest to the predicted difficulty in the difficulty reference matrix. Finally, the system will determine the programming task corresponding to this number as the next programming task assigned to the student, so that the student will receive a task that is both challenging and in line with his current ability level.
[0124] In this way, the task assignment module can dynamically adjust students' learning paths to ensure that each student can make continuous progress with appropriate challenges. This personalized task assignment strategy helps improve students' learning efficiency and satisfaction.
[0125] In this embodiment, the next programming task suitable for the student is screened out based on the difficulty gradient and the difficulty reference matrix. By dynamically adjusting the learning path, the task difficulty can be continuously adjusted according to the student's real-time performance and progress, ensuring that the student is always in a moderately challenging state. This can achieve a comprehensive assessment of the student's programming ability and provide personalized task arrangements, thereby effectively solving the problem that traditional evaluation methods cannot fully reflect the student's programming ability and cannot provide targeted task arrangements.
[0126] See also Figure 2 The present invention further provides a learning evaluation method based on big data, which is executed by the above-mentioned learning evaluation system based on big data, and the specific steps include:
[0127] Step 1: Obtain sample programs of programming tasks in the programming task pool, number the programming tasks, and obtain program parameters of each sample program to form a program parameter matrix. Determine the difficulty coefficient of each programming task based on the program parameter matrix to form a difficulty coefficient matrix.
[0128] Step 2: Normalize the elements in the difficulty coefficient matrix, normalize all elements to the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, and map the programming task numbers and difficulty reference coefficients one by one;
[0129] Step 3: Obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, and generate a historical data set;
[0130] Step 4: Generate the student's programming efficiency index based on real-time programming data, build the current student's challenge difficulty coefficient based on the historical data set and the difficulty reference matrix, and determine the difficulty gradient of subsequent programming tasks for the student based on the student's challenge difficulty coefficient and programming efficiency index;
[0131] Step 5: Based on the difficulty gradient and difficulty reference matrix, select the next programming task assigned to the student and determine the task number.
[0132] The above formulas are all dimensionless and numerical calculations. The formula is a formula for the most recent real situation obtained by collecting a large amount of data and performing software simulation. The preset parameters in the formula are set by technicians in this field according to actual conditions.
[0133] The above embodiments may be implemented in whole or in part by software, hardware, firmware or any other combination thereof. When implemented by software, the above embodiments may be implemented in whole or in part in the form of a computer program product. Those skilled in the art may appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein may be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed by hardware or software methods depends on the specific application and design constraints of the technical solution.
[0134] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, and may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0135] The above description is only a specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application.
Claims
1. A learning evaluation system based on big data, characterized in that: include: A difficulty grading module is used to obtain sample programs of programming tasks in the programming task pool, number the programming tasks, obtain program parameters of each sample program, form a program parameter matrix, determine the difficulty coefficient of each programming task according to the program parameter matrix, and form a difficulty coefficient matrix; A preprocessing module is used to normalize the elements in the difficulty coefficient matrix, normalize all elements within the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, and map the numbers of programming tasks and difficulty reference coefficients one by one; The data collection module is used to obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, and generate a historical data set; A data processing module is used to generate a student's programming efficiency index based on real-time programming data, construct a current student's challenge difficulty coefficient based on historical data sets and a difficulty reference matrix, and determine a difficulty gradient for subsequent programming tasks issued to the student based on the student's challenge difficulty coefficient and programming efficiency index; The task assignment module is used to select the next programming task assigned to the student based on the difficulty gradient and the difficulty reference matrix, and determine the task number; The student's real-time programming data includes: the total operation time of learning the current programming task, the total number of characters input, the total number of compilation errors and the number of code submissions; the historical data set in the student's historical learning process includes: the numbers of all programming tasks that the student has learned and operated in the historical learning process; The formula for generating the student's programming efficiency index based on real-time programming data is: Among them, PEI represents the student's programming efficiency index, H z Indicates the total number of characters entered, T d It indicates the total operation time of learning the current programming task in minutes, EI indicates the total number of compilation errors, and SE indicates the total number of code submissions; When constructing the current student's challenge difficulty coefficient, according to the number of the programming task in the historical data set, the difficulty reference coefficients corresponding to all programming tasks operated by students in the historical learning process are obtained through the mapping relationship in the difficulty reference matrix to form the historical difficulty data set Ls d [m], where m represents the number of difficulty reference coefficients within the historical difficulty data set; According to the number of the programming task that the student is learning, the difficulty reference coefficient corresponding to the programming task currently being learned is found in the difficulty reference matrix and calibrated as the real-time difficulty reference coefficient. The challenge difficulty coefficient of the current student is generated according to the historical difficulty data group and the real-time difficulty reference coefficient. The formula is: in, Indicates the average difficulty reference coefficient of the historical difficulty data group, Ls d j represents the jth difficulty reference coefficient in the historical difficulty data set, DI represents the challenge difficulty coefficient of the current student, max{Ls d [m]} represents the maximum value in the historical difficulty data set, Gyd now Indicates the difficulty reference coefficient of the programming task currently being learned; The logic for determining the difficulty gradient based on the student's challenge difficulty coefficient and programming efficiency index is as follows: Among them, ΔGyd represents the difficulty gradient, PEI y Indicates the set programming efficiency threshold.
2. A learning evaluation system based on big data according to claim 1, characterized in that: The program parameters of the sample program obtained include the number of code lines in the program, the number of independent linear paths, the average number of function parameters, and the number of external libraries called, forming the program parameter matrix: Among them, Rc s Denotes the program parameter matrix, Dh i 、Dl i , PJ i and Wk i are respectively the number of code lines, the number of independent linear paths, the average number of function parameters and the number of external libraries called for the i-th programming task example program, i is the number of the programming task, i is a positive integer, and i=1, 2, …, n, n is the number of programming tasks in the programming task pool.
3. A learning evaluation system based on big data according to claim 2, characterized in that: The specific logic behind the difficulty coefficient matrix is as follows: The difficulty coefficient of the programming task is generated according to the program parameters corresponding to each programming task in the program parameter matrix. The formula for generating the difficulty coefficient is: Among them, Nd i represents the difficulty coefficient of the i-th programming task example program, ω1, ω2 and ω3 represent the first weight coefficient, the second weight coefficient and the third weight coefficient respectively, and ω1>ω2>ω3, ω1+ω2+ω3=1; The difficulty coefficient of each programming task is used as an element and filled into an n×1 matrix in sequence according to the number of the programming task to form a difficulty coefficient matrix. The difficulty coefficient matrix is: Among them, Rn x Represents the difficulty coefficient matrix.
4. A learning evaluation system based on big data according to claim 3, characterized in that: The specific logic of constructing the difficulty reference matrix is: The elements in the difficulty coefficient matrix are normalized according to the following formula: Among them, GND i represents the difficulty coefficient of the i-th programming task example program after normalization, min(Rn x ) represents the smallest element value in the difficulty coefficient matrix, max(Rn x ) represents the element with the largest value in the difficulty coefficient matrix; The normalized elements are rounded to one decimal place, and the rounded values are used as the elements of the difficulty reference matrix. They are filled into the n×1 matrix in sequence according to the number of the programming task to form a difficulty reference matrix. The difficulty reference matrix is: Among them, RCn x Represents the difficulty coefficient matrix, Gyd i The difficulty reference coefficient of the example program of the i-th programming task after normalization and rounding; Mapping the number of programming tasks and the reference coefficient of difficulty one to one means that different programming tasks have a unique task number, and each task number has a unique corresponding reference coefficient of difficulty associated with it.
5. The learning evaluation system based on big data according to claim 1, characterized in that: When screening out the next programming task assigned to the student, the predicted difficulty reference coefficient is obtained by adding the real-time difficulty reference coefficient and the difficulty leap gradient, and the value of each element in the difficulty reference matrix is traversed to obtain the predicted reference coefficient and the element value with the smallest difference in the difficulty reference matrix and its corresponding number, and the programming task corresponding to the number is determined as the next programming task assigned to the student.
6. A learning evaluation method based on big data, characterized by: The learning evaluation method is performed by the big data-based learning evaluation system according to any one of claims 1 to 5, and the specific steps include: Obtaining sample programs of programming tasks in the programming task pool, numbering the programming tasks, and obtaining program parameters of each sample program to form a program parameter matrix, and determining the difficulty coefficient of each programming task according to the program parameter matrix to form a difficulty coefficient matrix; Normalize the elements in the difficulty coefficient matrix, normalize all elements within the range of 0 to 1, round the normalized element values to the nearest decimal place, mark them as difficulty reference coefficients and form a difficulty reference matrix, and map the programming task numbers and difficulty reference coefficients one by one; Obtain the number of the programming task that the student is learning, as well as the student's real-time programming data, obtain the learning history data of the programming task in the student's historical learning process, and generate a historical data set; Generate the student's programming efficiency index based on real-time programming data, build the current student's challenge difficulty coefficient based on historical data sets and difficulty reference matrix, and determine the difficulty gradient of subsequent programming tasks for students based on the student's challenge difficulty coefficient and programming efficiency index; Based on the difficulty gradient and the difficulty reference matrix, the next programming task assigned to the student is screened out and the task number is determined.
Citation Information
Patent Citations
Unsupervised software complexity evaluation method
CN110647353A
Online pass-through clock-in operation method based on educational administration management system
CN117371937A
KR20220068075A