Nowadays, Java programming is used in a variety of application systems as a highly portable object-oriented programming language. To assist its self-studies by novice students, we have developed the Java programming learning assistant system (JPLAS), and implemented the personal answer platform on Node.js. JPLAS offers several types of exercise problems at different learning levels, including the grammar-concept understanding problem (GUP), the value trace problem (VTP), the mistake correction problem (MCP), the element fill-in-blank problem (EFP), the code completion problem (CCP), and the phase fill-in-blank problem (PFP). Any answer is automatically marked by string matching with the correct one on the platform. In this paper, we present an implementation of the six problem types in a Java programming course in Okayama University. We generated 109 problem instances by following its curriculum and assigned them to 58 third-year students as homework before the final examination. Their solution results reveal the difficulty difference among the problem types and confirm the validity in the Java programming course.
Java is a powerful, general-purpose object-oriented programming language. Java was created in 1995, and is running on more than three billion devices worldwide as one of the most popular programming languages. Nowadays, Java is used in a variety of application systems, such as web applications, mobile applications, desktop applications, games, IoT application systems, and cloud service systems, as a highly portable object-oriented programming language. Thus, many universities and professional schools are offering the courses to cultivate Java programming engineers.
To assist self-studies of Java programming by novice students, we have developed the Java programming learning assistant system (JPLAS) and implemented the personal answer platform on Node.js that will be distributed to students on Docker .
In this section, we present the implementation results of the 109 instances to 58 third-year students taking a Java programming course in Okayama University.
A. Solution Performances by Problem Types
First, we analyze differences of solution performances of the students by the six problem types. Table II shows the number of students who submitted answer files, the average correct answer rate, and the average number of answer submission times for each instance by them for each problem type. From this table, it can be observed that GUP, VTP, MCP, and EFP are easier for these novice students. The average correct answer rate and the average number of answer submission times are similar in them. CCP and PFP are harder for them, where both the correct rate and the number of submission times become worse. The average correct answer rate of two CCP instances at ID = 8 and 10, and one PFP instance at ID = 12 is less than 90%. According to Table I, they are on override, overload, structure, inheritance, abstract class, and interface, which can be difficult for novices to understand. The hint function should be implemented for them, which will be in future works.