Enhancing Students’ Ability in Learning Process of Programming Language using Adaptive Learning Systems: A Literature Review

Abstract There have been some hindrances in the process of programming learning. An adaptive learning system, such as ELaC, Java Guide, and Java Grader provides an adaptable learning content that can accommodate the learning styles as well as preferences of each learning individual. Moreover, an adaptive learning system can help students of different capabilities in learning programming. This study examined the outcomes of the implementation of an adaptive learning system in programming learning, as well as some finding results that were conducted according to the Systematic Literature Review framework. The research questions of this research were: problems faced during learning of programming as a background of system development, advantages and disadvantages of the system characteristics, technology, features, and effectiveness of the developed adaptive learning system. This research produced concepts that are summed up upon the related resources. The results of this study summarized whether the use of adaptive learning systems in learning programming could overcome the problems encountered during the learning process.


Introduction
Adaptive learning appeared in the 70s in connection with research work on artificial intelligence; this concept is very present today in the educational world [1]. It is a pedagog-*Corresponding Author: Rosihan Ari Yuana: Informatics and Computer Education Department, Universitas Sebelas Maret, Indonesia; Email: rosihanari@staff.uns.ac.id Natasha Alyaa Anindyaputri, Puspanda Hatta: Informatics and Computer Education Department, Universitas Sebelas Maret, Indonesia ical method based on the use of computers as interactive teaching devices. It adapts teaching resources according to the learning needs of students based on pre-determined knowledge state or self-directed study on a particular subject or topic [2,3], which are identified through answers to questions, exercises, and experiments. In adaptive learning, each learner is unique in their learning process, and in order to reduce the risk of discouragement in the face of only uniform and collective teaching, some digital resources and software can be used to help the learner. Moreover, its activities can respond to a learner's needs in realtime, facilitating the development of higher-level skills, including bringing together knowledge from different disciplines to solve real-world problems [4]. Adaptive learning allows learning without time and classroom restrictions. If an adaptive learning system is well developed, it will produce the same effectiveness as classroom learning [5,6], even better [7][8][9][10][11].
Adaptive learning activities also deliver custom learner, through just-in-time feedback, multiple pathways through the material, and access to additional resources, based on the student's performance or preferences. In addition, the benefit of adaptive learning is that its technology can create student-centered learning [12]. This new technology in education is the "equalizer" that provides students with greater access and opportunities, regardless of their background [13] and will also increase chances to offer new learning experiences for students in traditional classrooms or lecture-based learning [14]. In practice, adaptive learning can be applied to Learning Management Systems (LMS) or adaptive e-learning.
The implementation of LMS is now widely used that it has been included in some learning courses. LMS is a new paradigm in education [15]. In [16], research has stated, LMS provides enough features that can support the learning process. Nonetheless, the implementation of LMS also has some disadvantages; one of them is that the use of LMS cannot cope with all students' characteristics in learning. As part of the rapid development of information and communication technologies, the LMS has been improved with the ability to adapt to the demands of the individual user and be defined as an adaptive learning system. The adaptive learning system offers to apprehend the students' knowledge and to provide appropriate learning that can be adapted and personalized to the needs of each individual learner [12,17,18]. For the purpose of analyzing difficulties in activities that occur in adaptive learning, [19] has proposed a measurement procedure.
Meanwhile, in the process of learning a programming language, practical exercises are essential to enhance the learner's skills. Furthermore, the students may also need to have extra guidance from the experts. The problem often faced by students is the difficulty in making program algorithms (problem-solving) [20,21]. In addition, the process of transforming the algorithm into the program code, and the lack of understanding of the program structure are also constraints [22]. The developed adaptive learning system can provide the additional practical exercises needed besides the lesson in the class and reduce the workload of assessing the student's assignment. According to [23], the use of adaptive e-learning increases learning efficiency. Some LMS developed for programming lessons have been provided with the adaptive model [24,25], such as ELaC, Java Guide, Java Grader, Adaptive Moodle, ELM-ART, and Protus.
This study aims to investigate whether the implementation of the developed adaptive learning systems that have been used for the past years could overcome the problems faced by the students who take such a programming course. This work also examines the published papers on the lacks, advantages, technology, features, and the final result of the used systems.
The remaining paper is structured as follows. The procedure of conducting a review of the related literature is elaborated in the next section. The third section will present the findings and the evaluation from the review of the literature. The final section is the conclusions.

Research Methodology
This literature review was conducted according to the Systematic Literature Review framework [26]. The research procedures compassed as follows (see Figure 1). The first step is to identify the purpose of the literature review. The purpose of this study is to summarize and to study the use of the developed adaptive systems in the learning process of the various programming language, whether the implementation of the systems was beneficial for the students to comprehend the concept and helped them to face the problems found in the process. The next step is to find some related resources. The software Mendeley Desktop was utilized to cite the publication channels, and Excel spreadsheets were used to achieve the information on the developed adaptive systems, such as the adaptive features, the advantages of the used systems, some drawbacks that were found in the pro- cess or what can be improved from the system, and the result of the proposed approach.
The review was done systematically over articles in journals, proceedings, and books chapter that was published between 2001 and 2020. The papers were selected mainly by using the keywords and hints that were relevant and could achieve the purpose of the study. The keywords used were "programming course", "intelligent tutoring system", and "adaptive system". After searching the literature using several pre-determined keywords, ten papers were obtained from several sources (see Table 1).
The research questions raised in this review literature were: what problems faced during learning of programming (RQ1); advantages and disadvantages of the adaptive learning system characteristics (RQ2); technology, features, and effectiveness of the developed adaptive learning system (RQ3).
The final step is to write and summarize the results of the reviewed resources.

Answering Research Question
Based on ten papers that have been obtained from the search, it was found nine adaptive learning systems for learning programming that has been developed, namely: Personalized E-Learning [27]; ElaC [28,29]; Java Grader [30]; Adaptive Moodle [16]; JavaGuide [31]; ELM-ART [32]; Protus [33]; FIT Java Tutor [34]; and OPCOMITS [35]. Based on the literature obtained, the development of adaptive learning systems for learning programming is still very few in number. Next, research questions will be discussed for each adaptive learning system.

Problems Faced during Learning of Programming
Taking programming courses requires some skills, so at the end of the courses, the student could develop a product or more that could be beneficial for others. If they could, the product could give a big prospect in the future; it could be some newly developed systems or some innovation that could help people. It requires skills in critical thinking, problem-solving, computational thinking, and new system designs, as is said in research. There have been some related resources that discuss programming learning courses. However, none of those sources said that the learner encounters difficulties understanding the study that requires an abstract concept, such as program-ming [24,36,37]. Students often faced with some difficulties in making a program algorithm or syntax in which resulting in an error result [24]. They find it difficult to implement from the ideas of the application they want to develop into computer code, due to the need to know and remember of the syntax to be used and also to think of the steps to take in order to resolve the problem that the program was made for. Table 2 shows the background of the problems faced in learning programming in each adaptive learning system.
From the table, it can be seen that the majority of problems in the development of adaptive learning are different backgrounds and characteristics of students, such as motivation, learning styles, prior knowledge. This is in line with what was stated by [13]. Meanwhile, Java Grader, the problem faced is how to check automatically the program Table 2: Problems faced as a background of developing the adaptive learning system

Problems faced
Personalized E-Learning obtaining an optimal learning process or material according to their learning status; students' weaknesses in fundamental concepts of computer programming ELaC diflculties in obtaining student's background, knowledge level and misconceptions Java Grader The manner of comparison of program code entered by the student and expected program code which is given as a solution Adaptive Moodle low students' motivation and grade JavaGuide diflcult to understand the guidance because of different starting knowledge; ELM-ART no help and guidance from the teacher when students learn from home or outside the classroom Protus students cannot be treated in a uniform way because of their prior knowledge, cognitive abilities, learning styles, motivation FIT Java Tutor lack in problem-solving; many systems rarely consider how to support learner groups OPCOMITS each student's learning rate, level of knowledge interests, motivation, ability, and characteristics differ from each other code made by students, whether it is as expected or not. The lack of guidance from the teacher when learning outside the classroom is also a problem, as mentioned in [32]. Related to efforts to increase student motivation, adaptive learning systems can be added to the reward system features for students who have successfully completed certain levels of learning [38].

Advantages and Disadvantages of The Adaptive Learning System Characteristics
With the implementation of LMS, the learners get to be active and independent on their ability as a self-learner [39], in which they got to choose their own time, the learning content they needed, and/or even reviewing the past learning materials so they could apprehend the learning concept at their pace. The presence of the developed LMS that was used has provided a lot of advantages, in which the learners could gain maximum learning experiences [40].
In the adaptive learning system, adaptivity defined as the ability to integrate into the user's characteristics, whereas adaptability in a learning system indicates the capability to let the user making necessary modifications on utilizing the system's delivery of the learning content [40]. The characteristics of adaptive learning based on [41] perspective consent of learning individuals: adaptive learning is independent learning centered on the learner; individualized learning, lets the system adapted to the individual learner; personalized learning; self-monitoring learning. Adaptive learning could adjust the problems and the weight of the materials given to the learners based on the knowledge level. The adaptive learning system's feature could serve as guidance with the returning feedback from the learner's accomplishments [12] to emphasize the adjustment required to the learner's learning style. As for the personalized learning and self-monitoring, in [12] de- In [40] has amplified the advantages of the implementation of adaptive learning systems, those are: well manageability, as adaptive LMS is capable of displaying alternative learning pages according to individual's learning characteristics, [17,32] has stated that adaptive learning system has an advantage of presenting a convenient learning environment that could be adaptable according to the learner's learning style. The adaptive learning system is letting the user set their preferences, as well as adjusting and applying automatically the materials that can accommodate the learner's needs. With an orientation to broader user groups, the adaptive model educational system is also called the intelligent agent as not only could be customized to the user's needs, but it also could be used by groups of learners that have similar learning characteristics. The adaptive learning system could accumulate similarities out of the users' characteristics in order to create the information needed to estimate on how the system should deliver the learning materials based on the level of each user's knowledge. Each adaptive learning system developed has different characteristics and model approaches. The approaches or models generally used by the adaptive learning system are student model, expert model, and instructional model [42]. Ideally, an adaptive learning system uses all three of these approaches. Table 3 presents the adaptive model approach used for each adaptive learning system, as well as the advantages and disadvantages. Based on this, Java Grader is the only system that uses three models/approaches in the system. Most other systems still use one or two approaches. However, Java Grader has the disadvantage that there is still a need for an environmental installation in each student. The development of mobile-based adaptive learning systems is also still very potential; this is because there are still not many systems based on this.

Technology, features, and effectiveness of the developed adaptive learning system
Research has reformed some ideas that could support the student in assimilating the conceptual knowledge of programming [43], and one of his proposals is to use an online system as the students could be given some additional practices to gain more experiences in making a computer program. Online-based educational systems can be as or even more effective than traditional teaching way [32].
As [36] have concluded, increasing the practical lessons had an impact on developing students' ability in programming and numerical courses, as the students could gain more experience in understanding the concepts. The more the practical lessons, learning situations, and materials are done by the students, the more improved the learning takes place [37]. However, the given additional practices mean extra workloads to be checked, inefficient, and consume too much time. The developed adaptive learning system could help the teachers in evaluating the assignments given to the students. On the other hand, by using an adaptive learning system, the students would have more innovations in resolving the problem as it is not only based on the teacher's perceptions. The adaptive learning system will give sufficient feedbacks required by the students.
As learning of programming needs supervision from the expert, the developed adaptive learning system could also help by giving the appropriate guidance and proposing suitable ways of delivering the learning material [27].
Related to RQ 1, each adaptive learning system that has been developed has features according to their needs. Table 4 shows the technology and features that exist in each system.
From these results, the adaptive learning system that provides adaptation to student learning styles using ILS and FSLSM, such as those in Personalized E-Learning, Protus, and Adaptive Moodle. In addition, from the various features available, the only adaptive system that has a feature to accommodate collaborative learning is FIT Java Tutor. Meanwhile, Java Grader is a system that allows students to develop their kinesthetic abilities in writing program code. This is due to the live coding feature.
The second column of Table 4 shows the list of the developed adaptive learning that experimented on the learning process of programming learning courses. The majority, the developed adaptive systems are still oriented towards learning the Java programming language. Based on this, it is still very potential to develop adaptive learning systems for learning other programming languages that are currently popular such as Python, C ++, PHP, and others. Next will be discussed in more depth about the features and effectiveness of each system. Personalized e-learning is an adaptive learning system that used three personalized information to impose adaptive materials for individual students, which are personalized learning problems, learning achievements, and learning styles as adaptive support. Problems in Personalized E-Learning illustrate the relationship between concepts and their effects. To accomplish at some level, the students must attain some essential concepts. After some evaluation based on the students' answers on any given tasks, the system will adjust the learning guidance based on the concept-effect analysis. Then, there is a personalized achievement that was estimated based on the level that the students could achieve after completing the tasks, measured as low, moderate, or high level. This will determine the supplementary of the learning materials needed, which were formatted and calculated based on the personalized learning styles and the information of the students' answers on the ILS questionnaire, to later onset the presentation model that could suit the students liking. The result of Personalized e-learning study deliberated that the normalized pre and post-conceptual result has gained about 0.70, which indicated that the progression of their knowledge was high. The developed adaptive learning system environment also proved that an online learning system with appropriate learning and suitable guidance based on the learning performance has resulted in a positive response from the students. Most of the students found that personalized learning has improved their strength and enhance their skills to gain a better concept in programming. OPCOMITS also has similar features with Personalized e-learning proposed a model on an adaptive learning system. The system was designed to be able to assign the chapter based upon the learners' knowledge by completing the previous subject. Otherwise, if the students couldn't pass the chapter, they couldn't get through the next stages. The system also has leveled achievements. Hence, the systems haven't improved as the students were obliged to wait for the teachers' validation so they could continue to the next step. The outcomes of experiments on the implementation of their work returning a result in which the students' who had been treated with the OPCOMITS performed a better result than the students who learned through the traditional e-learning.
In ELaC, the system adapts to the students learning model that could identify the needs, background, and prior knowledge of the learners. The evaluation of ELaC shows that it improves the efficiency of the instructional process; by adapting the sequence "on the fly," learners' were helped to accomplish and exceed their performance. The new proposed model provides even more improved learning results to the learners, reducing simultaneously the time that a learner has to fulfill the e-training course.
JavaGrader is a utility that has an algorithm that could support the process of adaptive learning methods so the system could decide on the choices of the teaching materials, contents, number of illustrative examples, and tasks depending on the learner's knowledge level. Java Grader can obtain information on the students' knowledge level and result during the online learning process. The learning approach was proven to help the students who were not prepared to learn programming independently, yet it improved the students' level of knowledge and encouraging the students to be self-independent learners. Students were indicating a good satisfaction level of using the adaptive learning process, as they feel that the approach improves their ability to gain more and better knowledge.
Adaptive Moodle was designed with an ability to automatically detects the learning preferences based on the learner's both behavioral and knowledge standards. The designed Moodle also offers the learning courses that can be adapted to the students learning styles and knowledge. The students' who had been treated with this approach were most likely to gain more motivation in learning and find the Moodle make the learning seems easier to apprehend. The experiment of the implementation of Adaptive Moodle has proven to gain the students' grades on their mid-term exam. The proposed manner is suitable for detecting the students' learning styles that were integrated with the FSLSM models. However, unfortunately, this treatment is not suitable for stimulating collaborative learning. JavaGuide promotes adaptive learning by developing adaptive navigation support. Although the navigation support was responded positively by the student, the system should have provided better feedback for the selfassessment. Adaptive annotations provided by JavaGuide for QuizJET quizzes positively influences students' learning. Adaptive navigation support provides a stable effect to promote attempts across different complexity levels. Students accomplished a higher performance in their quizzes using JavaGuide rather than the groups without it. Adaptive guidance encourages students to finish their work earlier. 87.10% responded positively with the use of JavaGuide and admitted that it helps them in perceiving the difficult concepts of the learning materials.
ELM-ART has features such as adaptive link annotation and direct guidance of the course material that gave 81.8% learners (without previous programming knowledge) returning a correct solution of the problem tasks given, and this indicates that the use of adaptive features in ELM-ART returning a good impact. This system also provides some adaptive program examples recommendation based on the knowledge level, yet the adaptive examples were used not very often. However, in the case where the students need more examples, this feature turned out to be very helpful. Many users (especially in the advanced knowledge level) did not need the frame on the right side of the window, and especially they did not need the field to note individual remarks. ELM-ART gives adaptive navigation support that allows students to complete the les-son more quickly, as ELM-ART could be accessed from either in the university or other places. Unfortunately, ELM-ART's intelligent diagnosis that has been used as adaptively auto-evaluated the questions each individual user failed to present understandable feedback, and there is no parentheses matcher to support coding programs.
Protus was designed to adapt to the learners learning styles (Information Processing -active/reflective; Information Perception -sensing/intuitive, Information Reception -visual/verbal, and Information Understanding -sequential/global) and gives some recommendation of the learning materials that suit their preferences. In fact, More than 70% of learners considered the system convenient; it successfully guides them to the appropriate material and provides them with useful additional explanations. Other than that, 63% and 64% of the learners are satisfied with the speed-accuracy, the article was processed faster while working with the system, more than 60% of learners found the system adaptive. This study also found out that the experimental group continuously completed more lessons successfully than the control group. There are still some lacks in this system, such as programming coursework in any other programming language that was not assessed, and there isn't evaluation that could measure if the student gained any profit from the recommended feature.
With FIT Java Tutor, the students get to choose their preferences on whether they want to get the feedback from the system or not. The system returns some insights and some improved answers that could help the students in making the program tasks. The students can set their learning mode (course-oriented view, problem-oriented view, resource-oriented view, concept-oriented view). The level of the tasks given is set to suit the students' level of knowledge. However, some of the views/features provided by the system were paid little attention to the students. The students that were given problems at a different level within the obtained learning process could have some problems in apprehending the teaching materials.
All of the reviewed adaptive learning systems have proven to exceed the students' competence in following the learning process due to the ability of the system to regulate the learning methods, materials, and tasks with different kinds of adaptive approaches as their features based on the personalization based on the students' knowledge, behavioral, and learning styles. With the use of personal adaptation, the students' could perceive more innovation other than what they could have got in the class, and that could suit each students' needs.
As the adaptation is appropriate for the students' individual characteristics, they could complete the learning more quickly and independently, as what has been concluded in the implementation of Java Grader, ELM-ART, Protus. The students also gained more motivation in learning programming, as described by the results of ELM-ART and Protus implementation, in which students are reported to have gained strength to finish their tasks earlier than the traditional approaches. On conceptual comprehension, most of the reviewed studies have returned that the implementation has improved the students' knowledge of programming.
Although learning styles have been criticized over the past years, integrating the learning styles of each student with the learning materials improved to be profitable for the students. A lot of developed systems have been proposed to accommodate the adaptation of educational material to adjust with the students' learning styles is proven to return some benefit for them [16].

Conclusion & future work
This study presents a summary of the experimentation of programming learning with the integrated adaptive learning system. Based on the literature obtained, the development of adaptive learning systems for learning programming is still very few in number. The results of the review found that in general, the problems as a background for the development of adaptive systems are: different backgrounds and characteristics of students, such as motivation, learning styles, prior knowledge of students. Besides that, from the adaptive system that has been developed, not many systems have applied all three adaptive models: student model, instructional model, and expert model.
Although most systems are developed for learning Java programming languages, the developed adaptive learning system has various kinds of features to offer that could support adaptable learning processes such as adaptive navigation support, adaptability to the students' knowledge, behavior, learning styles, and adaptive subject material learning. The adjustment of the learning system was set by the obtained information from the students' activities on the online learning, using a questionnaire that the student has to fill in beforehand or by the algorithmembedded in the system based on the behavior or the knowledge achieved.
The results of the review also found that most systems still focus on the adaptation features for students personally or individual learning, not support collaborative learning and cooperative learning yet.
Almost all of the reviewed study in the implemented adaptive learning systems in programming learning re-turning a good result in enhancing the students' ability in learning the programming concept, as the students' get more motivated in learning, this due to the facts that the students' that has been treated with the adaptive learning systems completed their tasks and the course materials earlier than the groups without the implemented system.
Nonetheless, not all of the features that were offered were used to help the students better in completing their tasks, especially for improving and assessing students' kinesthetic ability of coding. Most of the implemented systems also did not return the type of errors that were made by the student. The system only matches the code made by the students with the expected answer from the teacher or by the system, while there could be lots of methods that return the same result.
Finally, as future work, an adaptive system for learning programming that uses all of three adaptive approach models can be developed more, and also supported by adaptive features for cooperative and collaborative learning. In addition, the system that can be run in any device or platform can also be developed for learning other popular programming languages at this time, such as Python, PHP, C ++, and others. It is also strongly recommended that there be features for analyzing program code created by students. The analysis that can be done is related to syntax errors, and also algorithmic, or even the level of readability of the program code. With this feature, students can evaluate their kinesthetic ability in coding. The more often students practice writing program code in a guided manner through an adaptive system, their programming abilities will be improved.