

















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The design and evaluation of value trace problems in Java Programming Learning Assistant System (JPLAS). The authors propose and evaluate the effectiveness of value trace problems for Java code reading and implementation. The document also presents the generation procedure of value trace problems and the results of student performances.
Typology: Schemes and Mind Maps
1 / 89
This page cannot be seen from the preview
Don't miss anything!


















































































As a reliable and portable object-oriented programming language, Java has been extensively used in a variety of practical systems. A large number of universities and professional schools are offering Java programming courses to meet these needs. To assist Java programming ed- ucations in schools, we have developed the Web-based Java Programming Learning Assistant System (JPLAS). JPLAS mainly provides two types of exercise problems, called the element fill-in-blank problem, and the code writing problem, to support self-studies by students at various learning levels. The element fill-in-blank problem intends for a novice student to learn the Java grammar and basic programming through code reading. To generate the feasible problem, we also proposed the graph-based blank element selection algorithm that selects the blank elements that satisfy the unique correct answers. The code writing problem intends for a student to learn the Java source code writing from scratch, after completing the grammar study. In this problem, we adopted the test-driven development (TDD) method using JUnit to verify its correctness of the answer code from the student. It tests the behaviors of the code via the test code. However, through applications to students, we have observed that several drawbacks ex- ist in the current exercise problems in JPLAS. First, in the element fill-in-blank problem, generally, students can solve the problems mechanically without reading carefully and under- standing the code behaviors correctly, if they know the Java grammar, because of the limited choices for each blank. Thus, the difficulty of the problem should be controlled by changing the number and importance of blank elements. Then, in the code writing problem, on the other hand, a lot of students cannot solve harder problems that require multiple classes and methods. More detailed code speci cations should be provided to help the students to design the proper classes and methods for the code. In this thesis, we present the ve contributions on advancements of exercise problems in JPLAS. In the rst contribution, we present the extensions of the blank element selection algorithm to change the number of blank elements to control the difficulty level of the gen- erated problem, and to additionally blank key elements such as conditional expressions. We verify the effectiveness of these extensions through applications to various Java codes and evaluations of how they affect the solution performances of the students. The results show that these extensions can control the number of blank elements and the problem difficulty, where the solution performance is greatly affected by them. In the second contribution, we propose the core element fill-in-blank problem to enhance the code reading studies by novice students. In this problem, to control the importance of blank elements in terms of algorithm/logic implementations, we adopt the program depen- dence graph (PDG) in the blank element selection algorithm. We verify the effectiveness of this problem through applications of the problems using the codes for the graph theory or
i
fundamental algorithms to students with questionnaire. The results show the highly cor- rect answer rates, nevertheless the code understanding is necessary to solve the problems. Many students commented that the problems are helpful to understand the behaviors of the algorithms. In the third contribution, we propose the value trace problem as a new type of ll-in-blank problem. This problem asks students to trace the actual values of the important variables in a code implementing a data structure or an algorithm. To select the tracing values of the variables, we present the blank line selection algorithm. We verify the effectiveness of this problem through generated problems for sorting and graph theory algorithms to students with questionnaire. The results show that some problems are much more difficult than the element fill-in-blank problem. Many students commented that they are effective in understanding the algorithm in a code by code reading, and a long problem code is more difficult to read out because of the limited interface space in JPLAS. In the fourth contribution, we study the workbook design for three fill-in-blank problems for use in a Java programming course to enhance the self-studies of Java programming by novice students. This design consists of 15 categories that are arranged in the conventional learning order of Java programming. In this thesis, we collect the Java codes from textbooks and Web sites, and discuss their use in a Java programming course. Then, element ll-in- blank problems are generated from source codes by using the extended blank element selection algorithm. For the preliminary evaluations, we assign several problems in the workbook to novice students. The results show that the problem codes including object array and double loops are difficult for the novice students. In the last contribution, we propose the informative test code approach for the code writing problem. To help the students to solve harder problems that require multiple classes and methods, the informative test code describes the detailed speci cations of the names, access modi ers, and data types of the classes, methods, and arguments. We verify the effectiveness of this approach through applications of generated test codes to students. The software metrics of student answer codes are also evaluated using Eclipse Metric Plugin. The results show that all the students could complete the qualitative codes using informative test codes, whereas most students could not complete them without the informative test code. To complete the works on exercise problems in JPLAS, there are still a lot of issues to be solved. In future studies, we will further improve the blank element selection algorithm, improve the PDG generation method, generate the different element ll-in-blank problems using these algorithms for the workbook, improve the user interfaces for displaying the problem codes, improve the informative test code approach to avoid the drawbacks, prepare informative test codes for a variety of source codes, and assign these generated problems in JPLAS to students in Java programming courses.
ii
iv
Other Papers
v
As a reliable and portable object-oriented programming language, Java has been extensively used variety of practical systems. They involve Web application systems, mission critical systems for large enterprises, and small-sized embedded systems. Thus, the cultivation of Java programming engineers has been in high demands amongst industries. As well, a great number of universities and professional schools are offering Java programming courses to meet these needs. A Java programming course usually combines grammar instructions by classroom lectures and programming exercises by computer operations. However, in programming exercises, a teacher can be overloaded in veri cations of a lot of codes from students and in giving feedbacks with proper comments to them. If responses from the teacher becomes late, students may lose the learning motivations. To help Java programming educations, we have developed the Web-based Java program- ming learning assistant system (JPLAS). JPLAS adopts the Ubuntu for the operating system, Tomcat for the Web application server, JSP for the application programs with HTML, and MySQL for the database for managing the data. The user can access to JPLAS through a Web browser. JPLAS has two user service functions: teacher services and student services. The teacher services includes the problem registration and the assignment generation. The student ser- vices include the assignment solution and the score reference. JPLAS mainly provides two types of exercise problems, namely the element fill-in-blank problem and, the code writing problem, to support self-studies of students at various learning levels. It has been expected that this system be a great help for reducing the teacher loads and improving the learning motivations of the students. The element fill-in-blank problem in JPLAS intends for a student to learn the Java gram- mar and basic programming through code reading. This problem asks a student to ll the correct elements in the blank in a given Java code. The correctness of the answer is marked by comparing it with the original element in the code. Thus, the original element must be the unique correct answer for the blank. In this problem, an element is de ned as the least unit of a code such as a reserved word, an identi er, and a control symbol. A reserved word is a xed sequence of characters that has been de ned in Java grammar to represent a speci ed function, and should be mastered rst by the students. An identifier is a sequence of characters de ned in the code by the author to represent a variable, a class, or a method. A control symbol intends other grammar
elements such as. (dot), : (colon), ; (semicolon), (, ) (bracket), {, } (curly bracket). In JPLAS, the teacher needs to register a new assignment with the problem code and answer in the database. Then, a student solves the problem through accessing to an assign- ment, checking the results, correcting and resubmitting the answer if necessary. To help a teacher to generate an element fill-in-blank problem, we also proposed a graph-based blank element selection algorithm that selects proper blank elements that satisfy the unique correct answers [1]. The code writing problem in JPLAS intends for a student to learn writing a Java source code from scratch. This problem asks a student to write a source code that satis es the speci cations given in the test code. In this problem, we adopted the test-driven development (TDD) method using JUnit [6][7]-[8]. JUnit automatically tests the answer code via the test code on the server, to verify its correctness when submitted from a student. In JPLAS, the teacher needs to register the assignment with the problem statement and the test code. Then, a student writes a source code through reading the statement and the test code, and testing, modifying and resubmitting the code if error occurs. As a target of user, we considered a student who may not be able to write a proper code, but who has studied simple Java codes in textbooks through exercises However, through applications to students, we have observed that several drawbacks exist in the current problems. Firstly, in the element fill-in-blank problem, generally, the students can solve mechanically without reading carefully and understanding the code behaviors, if they are familiar with Java grammar. Due to the unique answer constraint, only limited choices of elements may exist for many blanks. Actually, we have found that as the number of solving element ll-in-blank problems increases, students could reach correct answers much faster than the beginning. Thus, the difficulty of the problem should be controlled by changing the number and importance of blank elements. In our previous studies [10][11], we found that as the number of blanks increases, the correct answer rates by students decreases. In the programming educations, the students should study the codes that implement some algorithms or logics such as standard inputs/outputs, data structure, fundamental algorithms including sorting, graph algorithms. Thus, in these codes, the blank elements should be considered not only by the grammar but also by their importance in the code in terms of algorithm/logic implementation. On the other hand, in the code writing problem, a lot of students who are studying Java programming, cannot solve harder problems that require multiple classes and methods even after solving many simple problems. For example, the implementation of a graph theory algorithm is included in such problems, where the code needs the handling of the graph data in addition to the algorithm procedure. More detailed code speci cations are necessary to help students to nd the proper classes and methods for the code.
1.2 Contributions
In this thesis, motivated by the above mentioned problems, we propose the ve advancements of the exercise problems for JPLAS as the contributions. In the rst contribution, we present the extensions of the blank element selection algorithm to change the number of blank elements to control the difficulty level of the generated problem, and to additionally blank key elements such as conditional expressions. Speci cally,
of multiple classes/methods and asked seven students to write the source codes for them. Then, the software metrics of student answer codes are evaluated using Eclipse Metric Plu- gin. The results showed that all the students completed the high-quality source codes for the harder problems using informative test codes, whereas most students could not complete them without informative test codes.
1.3 Contents of This Dissertation
The remaining part of this thesis is organized as follows. In Chapter 2, we review the software architecture and two problems in JPLAS. In Chapter 3, we propose the extensions of blank element selection algorithm for ll-in- blank problem in JPLAS. In Chapter 4, we propose the core element fill-in-blank problem. In Chapter 5, we propose the value trace problem. In Chapter 6, we propose the workbook design for the three fill-in-blank problems. In Chapter 7, we propose the informative test code approach for the code writing problem. Finally, in Chapter 8, we conclude this thesis with some future works.
In this chapter, we introduce the outline of Java Programming Learning Assistant System (JPLAS).
Figure 2.1 illustrates the software platform for JPLAS. In JPLAS, Ubuntu-Linux is adopted for OS. The current system is running on VMware for portability. Tomcat is used as the Web server for JSP. JSP is a script language that can embed Java codes within HTML codes. Tomcat returns the dynamically generated Web page to the client. MySQL is adopted as the database for managing the data in JPLAS.
Figure 2.1: Software platform for JPLAS
The functions of JPLAS consist of teacher service functions and student service functions. Teacher service functions include the problem generation, the assignment generation, and the student performance reference. Student service functions include the assignment view, the problem view, the problem solution, and the score reference.