A Proposal of Statement Fill-in-blank Problem Using Program Dependence Graph in Java Programming Learning Assistant System
Abstract
To assist Java educations, we have developed a Web-based Java Programming Learning Assistant System (JPLAS), that provides the element fill-in-blank problem and the code writing problem. The former problem is designed for novice students to study the grammar and coding style of Java by filling in correct words to the blanks in a given Java code which are marked automatically through checking for coincidences of correct ones. The latter problem is for students to study writing Java codes for given specifications described in natural language that are automatically verified using the test-driven development (TDD) method. Unfortunately, rough transition exists due to different difficulties found between the two problems. In this paper, we propose the statement fill-in-blank problem in JPLAS by asking students to fill in the gap and write one whole statement in a code where the correctness is verified by the TDD method. The blank statement is selected by generating the Program Dependence Graph (PDG) of the code and finding the statement that has the largest dependence in PDG. We verify the effectiveness through applications of the Java programming course in our department.
References
The 2015 Top Ten Programming Languages, http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages/?utm_so, IEEE Spectrum, July 2015.
Tana, N. Funabiki, and N. Ishihara, "A proposal of graph-based blank element selection algorithm for Java programming learning with fill-in-blank problems," Proc. Int. MultiConf. Eng. Comp. Sci. (IMECS 2015), March 2015, pp.448-483.
N. Funabiki, Y. Matsushima, T. Nakanishi, and N. Amano, "A Java programming learning assistant system using test-driven development method," IAENG Int. J. Comp. Sci., vol. 40, no.1, Feb. 2013, pp. 38-46.
K. Beck, Test-driven development: by example, Addison-Wesley, 2002.
JUnit, http://www.junit.org/.
J. Ferrante, K. J. Ottenstein, and J. D. Warren, "The program dependence graph and its use in optimization, "ACM Trans. Program. Lang. Syst., vol. 9, no. 3, July 1987, pp. 319-349.
A. Kashihara, A. Kashihara, and J. Toyoda, "Making fill-in-blank program problems," IEICE Tech. Report, vol. 99, no.81, May. 1999, pp. 9-16.
T. Delev and D. Gjorgjevikj, "E-Lab: Web based system for automatic assessment of programming problems," Proc. ICT Innov. 2012 Web, 2012, pp. 75-83.
H. Kitaya and U. Inoue, "An online automated scoring system for Java programming assignments," Int. J. Info. Edu. Tech., vol. 6, no. 4, April 2016, pp. 275-279.
E. Verdu et al., "A distributed system for learning programming on-line," Comp. Edu., vol. 58, 2011, pp. 110.
T. Teramoto, T. Okada, and S. Kawata, "An education-support PSE system: TSUNATASTE," J Conv. Info. Tech., vol. 5, no. 4, June 2010, pp. 216-223.
A. Kla˘snja-Mili´cevi´c et al.,“ Integration of recommendations and adaptive hypermedia into Java tutoring system, ”Comp. Sci. Info. Sys., vol. 8, no. 1, Jan. 2011, pp. 211-224.
M. Joy, N. Griffiths, and R. Boyatt,ʠ The BOSS online submission and assessment system, ʡJ. Edu. Res. Comput. (JERIC), vol. 5, no. 3, Sep. 2005, pp. 1-28.
J. C. Caiza and J. M. Del Alamo, ʠ Programming assignments automatic grading: review of tools and implementations, ʡProc. Int. Tech., Edu. Develop. Conf. (INTED2013), March 2013, pp. 5691-5700.
F. Shamsi and A. Elnagar,ʠ An intelligent assessment tool for students ʟJava submissions in introductory programming courses, ʡJ. Intel. Learn. Syst. App. (JILSA), vol. 4, no. 1, 2012, pp. 59-69.
CodePress, http://sourceforge.net/projects/codepress/.
jQuery, http://jquery.com/.