A Proposal of Value Trace Problem for Algorithm Code Reading in Java Programming Learning Assistant System

  • Khin Khin Zaw Okayama University
  • Nobuo Funabiki Okayama University
  • Wen-Chung Kao National Taiwan Normal University
Keywords: Java programming education, JPLAS, code reading, value trace problem, algorithm, fill-in-blank


To assist Java programming educations, we have developed a Web-based Java Programming Learning Assistant System (JPLAS). JPLAS provides the element fill-in-blank problem to help novice students self-study Java programming by filling in blanked elements in a code. However, it is a pity that this problem can be solvable without reading the algorithm in the code, especially if students are familiar with grammar. In this paper, we propose the value trace problem to answer the changing values of important variables in a Java code that implements a fundamental data structure or algorithm, so as to improve the code reading capability. To verify the effectiveness, we generated five problems using Java codes for sorting and asked 10 students in our group to solve them.

Author Biographies

Khin Khin Zaw, Okayama University

Department of Electrical and Communication Engineering

Ph. D. student

Nobuo Funabiki, Okayama University

Department of Electrical and Communication Engineering


Wen-Chung Kao, National Taiwan Normal University

Department of Electrical Engineering



N. Funabiki, Y. Matsushima, T. Nakanishi, and N. Amano,ʠ A Java programming learning assistant system using test-driven development method,ʡIAENG Int. J. Computer Science, vol. 40, no. 1, Feb. 2013, pp. 38-46.

Tana, N. Funabiki, and N. Ishihara,ʠ A proposal of graph-based blank element selection algorithm for Java programming learning with fill-in-blank problem, ʡProc. Int. MultiConf. Eng. Comput. Sci., March 2015, pp. 448-453.

Data Structures Tutorials, http://cs-fundamentals.com/data-structures/data-structures-tutorials.php.

Insertion, http://interactivepython.org/courselib/static/pythonds/SortSearch/TheInsertionSort.html.

InsertionSort, http://mycodinglab.com/insertion-sort-algorithm/.

Java code, http://www.journaldev.com/585/insertion-sort-in-java-algorithm-and-code-with-example.

JavaMain, http://csis.pace.edu/~bergin/KarelJava2ed/ch2/javamain.html.

Algorithm, http://http://pepole.cis.ksu.edu/~tamotoft/CIS775/F08/Slides/01.pdf.

ShellSort, http://www.thelearningpoint.net/computer-science/arrays-and-sorting-shell-sort-with-c-program-source-code.

QuickSort, http://www.algolist.net/Algorithms/Sorting/Quicksort.

K. K. Zaw and N. Funabiki, "A concept of value trace problem for Java code reading education," Proc. Int. Cong. Adv. Appl. Inform., July 2015, pp. 253-258.

B. Smulders, "Annotate Code, introducing a system for code-stepping based visualization," Master Thesis, Leiden Univ., August 2014.

M. Quinson and G. Oster, "A teaching system to learn programming: the programmer's learning machine," Proc. ITiCSE' 15, July 2015.

E. R. Sykes and F. Franek, "An intelligent tutoring system prototype for learning to program Java, "Proc. Int. Conf. Adv. Learn. Tech., 2003.

W. I. Osman and M. M. Elmusharaf, "Effectiveness of combining algorithm and program animation: a case study with data structures courses," Issue. Inform. Sci. Inform. Tech., vol. 11, 2014, pp. 155-168.

Technical Papers (Learning Technologies and Learning Environments)