Design & Evaluation of Value Trace Problems in Java Learning Assistant System, Schemes and Mind Maps of Java Programming

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

2021/2022

Uploaded on 07/05/2022

gavin_99
gavin_99 🇦🇺

4.3

(73)

998 documents

1 / 89

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
A Study of Exercise Problems in Java Programming
Learning Assistant System
March, 2018
Khin Khin Zaw
Graduate School of
Natural Science and Technology
(Doctor’s Course)
Okayama University
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59

Partial preview of the text

Download Design & Evaluation of Value Trace Problems in Java Learning Assistant System and more Schemes and Mind Maps Java Programming in PDF only on Docsity!

A Study of Exercise Problems in Java Programming

Learning Assistant System

March, 2018

Khin Khin Zaw

Graduate School of

Natural Science and Technology

(Doctor's Course)

Okayama University

Dissertation submitted to

Graduate School of Natural Science and Technology

of

Okayama University

for

partial ful llment of the requirements

for the degree of

Doctor of Philosophy.

Written under the supervision of

Professor Nobuo Funabiki

and co-supervised by

Professor Satoshi Denno

and

Professor Yasuyuki Nogami

Okayama University, March 2018.

Abstract

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

List of Publications

Journal Paper

  1. Khin Khin Zaw, Nobuo Funabiki, and Wen-Chung Kao , \A proposal of value trace problem for algorithm code reading in Java programming learning assistant system," Journal of Information Engineering Express, vol. 1, No. 3, pp. 9-18, September 2015.
  2. Khin Khin Zaw and Nobuo Funabiki, \A design-aware test code approach for code writing problem in Java programming learning assistant system," International Journal of Space-Based and Situated Computing, vol.7, No.3, pp. 145-154, September 2017.

International Conference Paper

  1. Khin Khin Zaw and Nobuo Funabiki, \A concept of value trace problem for Java code reading education," IIAI International Congress on Advanced Applied Informatics 2015, pp. 253-258, July 2015.
  2. Khin Khin Zaw, Nobuo Funabiki, and Minoru Kuribayashi \A proposal of three ex- tensions in blank element selection algorithm for Java programming learning assistant system," 2016 IEEE 5th Global Conference on Consumer Electronics, pp. 3-6, October
  3. Khin Khin Zaw and Nobuo Funabiki \A core blank element selection algorithm for code reading studies by ll-in-blank problems in Java programming learning assistant system", The 7th International Conference on Science and Engineering 2016, pp. 204- 208, December 2016.
  4. Nobuo Funabiki, Shinpei Matsumoto, Khin Khin Zaw, and Wen-Chung Kao, \Ap- plications of coding rule learning function to workbook codes for Java programming learning assistant system," The 7th International Conference on Science and Engineer- ing 2016, pp. 1170-1175, December 2016.
  5. Khin Khin Zaw, Nobuo Funabiki, and Wen-Chung Kao, \A proposal of informative test code approach for code writing problem in Java programming learning assistant system," The 8th International Conference on Science and Engineering 2017, pp. 260- 265, December 2017.

iv

Other Papers

  1. Khin Khin Zaw and Nobuo Funabiki, \A blank line selection algorithm for value trace problem in Java programming learning assistant system," IEICE Society Conf., BS-6-2, pp. S19-S20, September 2015.
  2. Khin Khin Zaw and Nobuo Funabiki, \A value trace problem for prim algorithm in graph theory in Java programming learning assistant system," 17th IEEE Hiroshima Section Student Symposium (HISS 2015), pp. 444-447, November 2015.
  3. Khin Khin Zaw and Nobuo Funabiki, \A study of value trace problems for graph the- ory algorithms in Java programming learning assistant system," IEICE Tech. Report, SS-2016-01, pp. 159-164, January 2016.
  4. Khin Khin Zaw, Nobuo Funabiki, and Minoru Kuribayash, \Extensions of blank element selection algorithm for Java programming learning assistant system," IEICE Tech. Report, ET-2016-06, pp. 41-46, June 2016.
  5. Khin Khin Zaw and Nobuo Funabiki, \Preliminary evaluation of blank element selection algorithm for ll-in-blank problem in Java programming learning assistant system," IEICE Society Conf., BS-5-24, pp. S98-S99, September 2016.
  6. Khin Khin Zaw and Nobuo Funabiki, \A blank element selection algorithm extension for algorithm code reading by ll-in-blank problems in Java programming learning assistant system," The 18th IEEE Hiroshima Section Student Symposium (HISS 2016), pp. 129-132, November 2016.
  7. Khin Khin Zaw, Nobuo Funabiki, and Minoru Kuribayash, \Element ll-in-blank problems in Java programming learning assistant system," IEICE General Conf., BS- 1-21, pp. S41-42, March 2017.
  8. Khin Khin Zaw and Nobuo Funabiki, \A proposal of design-aware test code approach for code writing problem in Java programming learning assistant system," IEICE So- ciety Conf., BS-7-8, pp. S56-S57, September 2017.
  9. Khin Khin Zaw and Nobuo Funabiki, \An informative test code approach for code writing problem in Java programming learning assistant system," IEICE Tech. Report, SS-2017-10, pp. 31-36, October 2017.

v

List of Tables

x

Chapter 1

Introduction

1.1 Background

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.

Chapter 2

Overview of JPLAS

In this chapter, we introduce the outline of Java Programming Learning Assistant System (JPLAS).

2.1 Software Platform for 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

2.2 User Services

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.