International Journal of Latest Research in Engineering and Technology (IJLRET) ISSN: 2454-5031 www.ijlret.com || Volume 05 - Issue 02 || February 2019 || PP. 43-51 www.ijlret.com 43 | Page Viewing Understanding Faults in Programming Learning from Cognitive Load So Asai 1 , DinhThi Dong Phuong 2 , Fumiko Harada 3 , Hiromitsu Shimakawa 1 1 Graduate School of Information Science and Engineering, Ritsumeikan University, Japan 2 Paracel Technology Solutions Co., Ltd, Vietnam 3 Connect Dot Ltd, Japan Abstract: We propose a method to identify factors of cognitive load causing understanding failures in learners engaging in programming learning, through the analysis of their learning behavior. It is important to make them acquire programming skills with clarifying causes of understanding failures of learners. In general, since the concepts of programming is difficult for learners. The difficulty is primarily affected by three types of cognitive load: intrinsic load (IL), extraneous load (EL), and germane load (GL). Since many learners belong to one class, it is difficult for teachers to distinguish learners with appropriate cognitive load from ones with inappropriate cognitive load. In order to find learners with inappropriate cognitive load, our method generates decision trees classifying learners with their learning behavior when they solve fill-in-the-blank tests. The decision trees are used to identify factors of each type of cognitive load. An experiment shows the decision trees our method generated enable to view the factors affecting inappropriate IL and GL. This result clarifies the learning factors affecting inappropriate cognitive load of learners and the teachers can address to make their cognitive load appropriate. Keywords: Data mining, decision tree analysis, e-learning, programming learning. 1. INTRODUCTION There are students who cannot master programming, even though they enter universities specializing in information and communication technologies. In the modern society where the information and communication technologies are indispensable, it is important to make them acquire programming skills, clarifying causes of their understanding failures. Cognitive load [1] plays an important role to account for the understanding of learners in programming. Understanding failures come from inappropriate cognitive load. In programming learning, cognitive load is an important factor to consider, and closely related to understanding and schematization of programming skills of learners. It is not bad for learners to have cognitive load in learning programming abilities. Rather, proper cognitive load should be welcomed. Instructors should prepare an environment where appropriate cognitive loads are imposed on learners. However, since many learners belong to one class, it is difficult for teachers to distinguish learners with appropriate cognitive load from ones with inappropriate cognitive load. The method proposed in this study identifies factors of cognitive load causing understanding failures in learners engaging in programming learning, through the analysis of their learning behavior. The method generates decision trees classifying learners using their learning behavior when they solve fill-in-the-blank tests. The decision trees are used to identify factors of their cognitive load. The identified factors enable teachers to grasp states of their understanding. The teachers can take measures to convert inappropriate cognitive load of learners into appropriate one with minimal efforts. 2. COGNITIVE LOAD IN PROGRAMMING LEARNING 2.1. Cause of understanding faults for programming Requirements for programming skills are both understanding the concepts and writing appropriate programs. Learners must be able to organize various knowledge of programming themselves. Principal factors that learners cannot achieve them are difficulty of the concepts and ways of thinking programming [2]. Learners do not know what they write to assignments or examinations. In other case, learners who have enough knowledge of programming cannot consider concrete processes of programs they have written actually. Such learners may possibly fail to learn programming and avoid challenging to programming. Their teachers find them early to prevent them failing to learn programming. 2.2. Cognitive load to affect learning Working memory is a pseudo memory that is defined as process capacity and is consumed when thinking or holding something. The capacities of working memory are different according to each individual.