## 5 The Solution Implementation Method
### Program Experiment and Results  
This research study took programs uploaded by the students of a programming course over the past two years as examples of debugging, modified the feedback for debugging, and re-uploaded the modified programs. 1. Debugging examples involving the use of an uninitialized variable  
The use of an uninitialized variable means that the student used a variable without initializing it when declaring the variable. The experimental process is reported below. The subject of the experiment is shown in Figure 8 as an example. Calculate the addition, subtraction, multiplication and division of two fractions. Enter four lines, the first and second lines each represent a fraction, the third line represents mathematical operation symbols, and the fourth line represents whether to continue the operation  
After uploading the sample program in response to this question in the experiment, the test result is presented as shown in Figure 9.  
From feedback report (1) in Figure 10, in test No. 129, an uninitialized variable sign was used code in lines 35 and 51 of the code, and error content was observed in line 19 of the code. The variable sign had been declared, but the definition of code line 21 of the code had not been executed, so the execution of code lines 35 and 51 of the code used the definition of code line 19. Figure 11 below is an example of such a program (program (1)). Figure 8: Test question (1). Figure 7: System flow chart. Figure 11: Example program (1). Figure 12: Test result after modifying program (1). Figure 13: Test question (2). The feedback report shows that in test No. 11 the array with index values of 0\(-\)60 code in lines 35, 54, 56, and 75 of the code exceeded the boundary, while the code in line 93 exceeded the 0\(-\)121 boundary. Figures 16 and 17 below show the example code. In label (c) of Figure 16, the array was declared with MAX in code lines 28 and 51 of the code, where MAX is the macro in the third line of the code in label (a). Its value was 61, but the index value started from 61 when the array was used in the code in lines 35 and 75. In this experiment, the conditional expressions in lines 34 and 74 of the code were modified to i \(<\) MAX\(-\)1. Similarly, line 82 of the code in label (a) of Figure 17 declared a 61*2 array, but the line started with the index value of 122 in line 93. The initialization of line 92 of the code was changed to i = 2*MAX\(-\)1. In label (c) of Figure 16, arrays a and b in lines 54 and 56 of the code are parameters. Line 100 of the code in Figure 17b declared arrays a and b, and the code in lines 106, 111, 117, and 123 passed by having a and b as parameters. Obviously, the same problem as above was also found in lines 54 and 56. The initializations of lines 53 and 55 of the code in label (c) of Figure 16 were changed to lenA = MAX\(-\)1 and lenB = MAX\(-\)1. All error lines in the error feedback report in Figure 15 were identified and uploaded again as shown in Figure 18.  
Figure 14: Test result (2). Figure 15: Feedback report (2). Incorrect use of the library  
In different environments or versions, when using certain libraries, their usage and return values can be different. If students do not understand the usage of the library in detail before using it, it can lead to unexpected results. This experiment took the strcmp0 function in string.h as an example. The subject of the experiment is shown as an example in Figure 19.  
After uploading the sample program in response to the question in this experiment, the system reported that line 118 of the code was incorrect and prompted the correct way to use strcmp, as shown in Figure 8:0  
As shown in Figure 21, the strcmp function was used in line 118, and the condition expression = 1. The return result was 1 when executed in the Windows environment, but the return value was the difference between the ASCII codes of two-character of two-character strings when executed in the Ubuntu environment; for details, refer to the previous publication [15].