AbstractPresently, C++ programming has been taught in many universities around the world as the first object-oriented programming language for undergraduate students to start studying programming concepts and computer architecture. However, many of them may struggle in studying C++ programming due to the nature in the formal language. Thus, hands-on self-study tools can be effective. In previous, we have developed Java programming learning assistant system (JPLAS) for assisting self-study of Java programming. JPLAS offers the value trace problem (VTP) for novice students to study Java programming through code reading study. In a VTP instance, actual values of important variable or standard output messages in a given source code are questioned, where the correctness of each answer is checked through string matching. In this paper, we investigate the effectiveness of VTP for hands-on self-study of C++ programming by novice students. We generated 37 VTP instances for basic grammar concepts using source codes in textbooks or websites for C++ programming, and asked 46 students in three universities in three countries to solve them using the answer interface for JPLAS. The results suggest that most of the students are satisfactory, but some students need cares at early programming study stage. Index TermsC++ programming, code reading, grammar concepts, value trace problem. I. INTRODUCTION The programming language C++ has been popular even now as a general purpose language that has been designed to making programs in the variety of application domains. According to the IEEE Spectrum [1], C++ is currently the fourth popular programming language, even though long time has passed since the appearance. C++ is an extension of the traditional programming language C, to offer the advantages of the object oriented programming. C++ keeps the functional features of C to facilitate the low level manipulations of computers by programs. As a result, C++ programming is broadly taught as a fundamental programming language in many universities around the world. From viewpoints of programming educations, C++ can be a good start for studying programming from the ground up if compared with more advanced and practical ones such as Java, Python, and Ruby. C++ programming supports Manuscript received January 11, 2022; revised March 9, 2022. S. L. Aung and N. Funabiki are with Okayama University, Okayama, Japan (e-mail: p1pp6ypa@s.okayama-u.ac.jp, funabiki@okayama-u.ac.jp). N. K. Dim and S. M. M. Aye are with Yangon University, Yangon, Myanmar (e-mail: nemkdim@gmail.com, smyamyaaye@gmail.com). H. H. S. Kyaw is with Tokyo University of Agriculture and Technology, Tokyo, Japan (e-mail: htoohtoosk@go.tuat.ac.jp). accessing memories and registers in computers by programs for low level manipulations, which is also useful in studying the computer architecture. At the same time, it allows the object oriented programming features as the more advanced and abstract programming. C++ is actually used in almost every area of software developments, such as application software, programming languages, game developments, and embedded systems. However, many students are still struggling in studying C++ due to the nature in the formal language. Hands-on self-study tools can be effective to solve it. In previous, we have developed Java programming learning assistant system (JPLAS) for assisting self-study of Java programming [2]. JPLAS provides several types of exercise problems to assist Java programming studies at various levels. One of them is the value trace problem (VTP) that is designed for novice students to study basic grammar concepts and programming skills through code reading [3]. A VTP instance consists of a source code, a set of questions, and correct answer strings. Each question requests to answer the actual value of an important variable or a standard output message in the source code. The correctness of any answer from a student is marked through string matching with the stored correct answer string in the web-based offline answer interface [4]. In this paper, we investigate the effectiveness of the value trace problem (VTP) for hands-on self-study of C++ programming by novice students, based on the works for Java programming. For the effective VTP instances for C++ programming study, it is important to select proper source codes that contain basic grammar concepts to be studied by the students. It is emphasized that C++ greatly differs from Java in the memory managements, such as allocating and de allocating memory manually by the program. C++ supports the memory access using a pointer for implementing fast and efficient programs. These concepts must be covered in the generated VTP instances to understand the advantage in C and C++ programming. In addition, the object-oriented programming concept of C++ programming must be studied. Based on the abovementioned conditions, we collected 37 source codes from websites and textbooks for basic grammar concepts in C++ programming, and generated VTP instances manually, after analyzing important variables and outputs messages in the codes. Then, to verify the effectiveness of the generated 37 VTP instances, we assigned them to a total of 46 students in three universities in three countries. They include 17 first-year or second-year undergraduate students in Yangon University in Myanmar, 13 graduate students in Okayama University in Japan, and 16 graduate students in Electronic Engineering Investigation of Value Trace Problem for C++ Programming Self-study of Novice Students Shune Lae Aung, Nem Khan Dim, Soe Mya Mya Aye, Nobuo Funabiki, and Htoo Htoo Sandi Kyaw International Journal of Information and Education Technology, Vol. 12, No. 7, July 2022 631 doi: 10.18178/ijiet.2022.12.7.1663