Scaffolding Model for Efficient Programming Learning Based on Cognitive Load Theory Syahanim Mohd Salleh, Zarina Shukur and Hairulliza Mohamad Judi Faculty of Information Sciences and Technology, Universiti Kebangsaan Malaysia, MALAYSIA {syahanim,zarinashukur,hmj}@ukm.edu.my AbstractProgramming learning for beginners requires tremendous amount of exposure to understand the logic in each programming solution using the basic concepts despite the overwhelming syntax it might carries. Learning programming through examples with careful walkthrough builds learners’ confidence to embark with problems of any designs, avoids frustration due to syntax error and unintentional bugs. Scaffolding involves meta-programming approach of building software applications using supported materials that provides some inspiration of how the program could be developed. This research identifies important attributes in programming and proposes a scaffold model to enhance programming learning efficiency especially among novice programmers. The study applies cognitive load theory by providing users with two types of instructional design as learning support to reduce mental effort applied in the working memory i.e. worked-example and goal free programming problem solutions. The model is expected to help instructors in systematically organizing programming materials for any language or programming environment for efficient programming learning. Keywordsprogramming, scaffolding, learning support, cognitive load, worked-example I. INTRODUCTION Computer programming entails writing instructions using an artificial language to be translated into machine language and then executed by a computer to solve various problems. Programming courses are offered at university level to introduce students with various programming concepts to be applied in solving problems from a broad range of fields. Programming teaching and learning is usually determined by programming concepts. To relate programming concepts with real life problem solving, programming tasks often use typical problems such as in determining grades from the final scores of statistics course. The use of common problems in trouble shooting facilitates students to understand the real problem and thus design the program execution. There are certain programming concepts that need to be associated with a relevant problem for indicating its intended use. For example, the calculation of inflation rate and problem simulation in banks aim to explain certain concepts regarding choice and rotation. Due to very limited relevant knowledge and experience, novice programmers encounter difficulties to perform a given task (as in Fig. 1). Apart from describing programming concepts, course instructor should also explain relevant information whenever un-common problems are raised. These information may support students with the required skills and techniques to solve the problem. Conventional programming instruction emphasizes theoretical programming concepts and associates them with word syntax and simple program examples [1]. The implementation of this teaching approach does not include explanation of related tasks to support students’ understanding and to complete the given tasks. In addition, teaching materials such as lecture notes and slides do not provide any similar examples and problem solutions to the given assignment. Therefore, students are fully dependent on his / her own knowledge to construct a solution. Students’ difficulty in understanding the basic problem increased cognitive burden especially to novice troubleshooters which leads to failure to solve the task [2]. The problems posed by the current scenario in an environment of problem solving in programming learning show the need for scaffolding to assist instructors in developing better problem statement in their assignments and for providing a support for students building their program [3]. Hence, to provide the support needed by these students, especially in programming learning, specific guidance should also be offered as a compilation of all required programming concepts, tasks, assignment statement, as a structured and organized material. This guide should include various levels of programming that is not influenced by any language or programming environment so that it is easily applied by any programming course by any institution. Thus, this research identifies important attributes in programming and proposes a scaffold model to enhance programming learning efficiency especially among novice programmers. International Journal of Pure and Applied Mathematics Volume 118 No. 7 2018, 77-83 ISSN: 1311-8080 (printed version); ISSN: 1314-3395 (on-line version) url: http://www.ijpam.eu Special Issue ijpam.eu 77