OOP-AR: Learn Object Oriented Programming Using Augmented Reality

: Object-Oriented Programming (OOP) is one of the challenging concept in computer science education especially for novice programmers. To help students understand this concept, this research try to blend OOP with Augmented Reality (AR). The reason because AR can give fun aspect to the learner, which can also help learner to focus longer without distraction. For this research purpose, the target audience is 20 university students with different ability in programming and augmented reality experience. The overall results of this research show that OOP-AR received positive feedback from users. It also proved that OOP-AR is a necessary product for students who need to improvise their knowledge in OOP and its concepts and gain interest in using AR application.


Introduction
Rapid development in Information and Communication Technologies (ICT) in this world give new perspective to the learning process.Since computer science is implemented throughout worldwide, technologies need to be expanded in order to parallel with the 'sophisticated world'.
Object Oriented Programming (OOP) is one of computer science that majority of students find difficulties to understand the concepts such as classes, objects, methods and others [1].Attaway [2] proposed that classes must be defined both the data and the functions that manipulate the data.Once a class has been defined, objects can be created.These concepts are important to learn so that students nowadays will be more advance to the programming.To make it easier and fun to learn, we can implement OOP using one of the new technologies risen which is Augmented Reality.
Patel [3] proposed the AR works when virtual objects is applying in real physical world.Unlike immersive Virtual Reality which creates a totally immerse environment, virtual imagery in AR interfaces attached to real locations and objects and allow users to see like the real object.This technology can enlarge the education sector worldwide, as it has the potential to enable new forms of learning and transform the learning experience by motivating students with their study.
Students find that understanding object-oriented concepts is always a difficult task to them such as classes, objects, methods, and other concepts.It is equally challenging for lecturers to teach these concepts since lecturers have used various methods and they usually just using laptop and write code practically.These methods will make students more bored and less excitement in learning this difficult subject.To decline this problem facing among students and teachers, AR can give more excitement while learning can be used to learn the OOP concepts.
There are several objectives that have been identified in order to achieve the aim of this research.The objective of this research are:  To design the features of application that can make students attracted to learn OOP in attractive way.
 To develop the AR application that can interact between users and applications. To test the functionality and usability of the application that can be used by students.
The scope of this project focusing on undergraduate students that learn OOP subject.

Literature Review
This section discusses previous research collection that related with the development of this research such as collaborative learning theory, mobile learning, challenge in learning programming and effect of Augmented Reality in education.This section also discusses about instructional design model and differentiate between three models which is Rapid Prototyping model, ASSURE model and Spiral model.

Collaborative Learning
According to Scager et al. [4], collaborative learning has been acceptable in any different disciplines, school settings and age groups.The cognitive benefits in collaborative learning such as enhanced learning performance and motivation to learn can improved social skills needed in future work.A collaborative learning involves five mains components which is positive dependency, individual responsibility, promotive interaction, social skills training and group processing.
For the first component which is positive dependency, a cooperative group have a similar common goal and completing learning tasks together.In individual responsibility, each member has their own responsible to gain their successfulness.The next component is promotive interaction which means strategies are used to facilitate teamwork, create trust among group members, and strengthen communication and the last one is group processing meaning that learners need to think about their experiences and learn from each other.
The findings in Alghasab et al. [5] revealed that the teachers adopted the students from directive approach to dialogic.Directive means that students tended to interact with the teacher rather than with their classmates and wrote by themselves individually.Since the teachers adopted dialogic approach, it is implementing student-to-student interaction and collaboration learning are builds.
According to Haataja et al. [6], many teachers do not know about how students apply collaborative learning in their education although research on it give an idea that monitoring the students plays an important role in successful management of the collaborative learning process.Particularly, it examines on how students in a group monitor their cognitive, behavioral and effective processes during their collaboration, as well as how observations are observed alongside their physiological segments during collaborative learning session.

Mobile Learning
According to Crompton et al. [7], the research covered that majority of the studies concentrated on the effect of mobile learning on student attainment.The studies reveal that 74% consists of undergraduate students while 54% took place in a formal educational context.Most of the faculties in higher education are endorsed to appraise the chance to enlarge their learning capability outside the classroom with mobile learning.
Briz-Ponce et al. [8] said that the social impacts are raised to be a significant factor in attitude and behavioral learning by using mobile learning.In addition, the student's ease of understanding in learning process seems to be the major factor in social influence impact and the reliability to propose this technology for learning was the main factor that influencing behavioral intention.The researcher said that nowadays mobile learning implements widely in many universities to furnish flexibility and to make students and teachers prepare for the developing digital area.
The United Nations Educational, Scientific and Cultural Organization (UNESCO) give a major idea to governments to embrace technological infrastructure to ensure identical access to mobile connectivity in order to provide students accessing to an important and enlarge range of learning possibilities.

Challenge in learning Programming
Patel [3] said that students who learn programming find difficulties in learning this subject because it involves not only learning syntax of language but also includes logic clarity and conceptual understanding that can make them confused.In order to handle some of the challenges in programming, first and foremost, students need to have clear understanding on what and how the programming language that they used works.Many novices and even students who take programming subject have confused knowledge about language basics.Misunderstanding or not enough understanding of programming language make students tend to confusion and prevent them from performing well.
When teachers give a program to the students to work on, many of them questioned about the functions of the coding given and find difficulties to solve it.Though the students claimed to understand the functions of a class can access the data members of that class, they do not really make it unless they start to write codes practically based on that concept.To help them more understand, the teachers will give assignments to their students based on what they learn in the class [9].

Augmented Reality in education
In recent years, an extensive number of emergent technologies have been obtained a strong impact.Almenara et al. [10] mentioned that one of these technologies is Augmented Reality (AR).In the next 3 to 5 years, AR technology will widely use in all our educational center including universities, as it is already highlighted in the number of different reports.Since educational sector have been concerned, the different experiences and research imaginations related to AR usage have recently been adopt at various educational level needs to be highlighted.
According to Bosque et al. [11], in order to motivate and raising up the student's performance and achievement in their learning units in university education, it has considered using technology application.The use of emerging technology in education has begun with introducing Augmented Reality in some of their disciplines and educational sector.Klimova et al. [12] also proposed that since the development of AR technologies widely use in the world and the area of this applications have been expanding, highly qualified specialist in educational field led to the demand.

Instructional Design Model
An instructional design model is defined as a step-by-step reference that will guide the development of educational software.Kurt [13] proposed that instructional design model is provides guidelines to organize appropriate pedagogical scenarios to achieve instructional goal.Dudhagundi [14] define an instructional design model is a tool, a framework to develop instructional materials.It helps instructional designers provide a structure and meaning to the learning material.It allows them visualized the training need and break down the process of designing training material into steps.There are three models that need to compare which is Rapid Prototyping, ASSURE, and Spiral Model.Table 1 shows the comparison of research methodology between Rapid Prototyping, ASSURE, and Spiral Model.From this comparison, researchers will choose the best model that be used in development of this research.

Methodology
This section defines the research methodology that implemented in the research that consist of phases used as a guideline for the project development.The methodology selection is important to ensure that the aim and objectives of the research that mentioned at the beginning is fulfilled.The methodology used in this research is Rapid Prototyping.Rapid Prototyping is a flexible methodology that can be used to develop an application.It is because the iteration occurs in certain phase is convenient to fix or changing the requirements.Rapid prototyping methodology consists of nine phases which divided into two parts which is prototype development and iterative development.In prototype development have five phases; requirements gathering, quick design, build prototype, customer evaluation of prototype and refine requirements incorporating customer suggestions.However, the iteration occurs between second phase to fifth phase until the process in the phases have been done.While in iterative development have four phases; design, coding, testing and maintenance.It is also had iteration between these four phases if one of the process in certain phase have some mistakes.

Requirements Gathering
In this phase needs to gather all the requirements from user target by using interview techniques.It is important to know the user's requirement before develops any application so that users are satisfied with the functions provided.
For interview techniques will be carried out among novices which are minor students in Sultan Idris Educational University that take Object-Oriented Programming subject and Software Engineering students who are particularly familiar with OOP concepts and coding.Before starting the questionnaire, students will be informed about the aim and the objectives of this study in order to make them understand about this application and know the capabilities of AR in educations.

Quick Design
After all the requirements from the user target are collected in the first phase, a quick design or a preliminary design of the application is created.Since it is only design for prototype, it will design only for interface that shows certain concepts in OOP.All the design in each interface can be draft through storyboard.Marker based also need to design in this phase.There are four types of marker based that have been mentioned in literature review.The marker that will be use in this application is template marker.Template marker is a black and white marker that has a simple image inside a black border.The image that will be drawn on the marker is an image of OOP concept in the prototype.

Build Prototype
After designing process of marker based and certain interface have been done at previous phase, the prototype of the application can start to develop.The prototype will develop by using Unity, Vuforia and Visual Studio software.For target marker, developer create and design it by using Microsoft PowerPoint while hands-on coding design by using Microsoft Word.

Customer Evaluation of Prototype
In this phase, users will be given the chance to try and use the prototype in order to make customer evaluation.From that we will know the user satisfaction about the application.After users used the prototype, they will be asked about the understanding of the education material inside the application.All the evaluations from the users whether it is positive or negative comments will be gather by using interview techniques and will be fixed at the next phase.

Refine Requirements Incorporating Customer Suggestion
In this phase is where the user's comments about the prototype from previous phase will be taken and will be fixed in the application.From the comments, additional features and some changes will be created.Negative comments from user also need to be taken in order to remove or re-design that can suite with the user expectation.The iteration process between second to fifth phase takes places until the application is fully satisfied by user requirements.

Design, Coding, Testing and Maintenance
After all the requirements from the previous phase have been fixed and the prototype is accept by the users, iterative development is occur.In iterative development consists of four phase which is design, coding, testing and maintenance.In design phase, we will completing the storyboard until the end of the application that have been started at quick design phase.Marker based also need to be done for all the functions needed for AR.In coding phase, developer need to code and develop a full complete OOP-AR application by using the selected software which are Unity and Microsoft Studio Visual Code.In the testing phase, need to test all the functions and features that available in this application.If some of the functions cannot run, it can go back to previous phase to re-code the application and will be repeated between coding phase and testing phase until all the functions work.
The last phase is maintenance.Maintenance occurs when the previous phase have been done and the application can be fully used to the users without any mistakes.In this phase, OOP-AR need to be monitored in case the application need to upgrade or fix if some of the functions are broken.

Development
This section discuss in detail about the development of the products according to the chosen research methodology based on the objectives of the study.The methodology used for the product's development is Rapid Prototyping which includes prototype development and iteration development.

Requirement Gathering
Requirement gathering is the initial phase of the chosen methodology where information will be collected required to the project title.Researcher using questionnaire and interview techniques from user target in order to gain the content of the application.The interview was carried out among students from Software Engineering and Information Technology courses in Sultan Idris Education University (UPSI) who ever learn OOP subject.
Regarding to the interview session, interviewee want this application display notes and provide hands-on coding that related with the concepts of OOP.For target marker will show the concept of OOP based on the hands-on coding.For Augmented Reality, the interviewee wants this application shows the 3D object pop-up after scanning the marker.Interviewee also suggest 3D object should be a butterfly moving to the right parallel with the output of hands-on coding that run in Java will be a ball move to right.
From this phase also, developer had idea of using tools and software required to develop this application which are developed by using Unity 3D, Vuforia and Microsoft Visual Studio Code.For designing target marker, developer design it by using Microsoft PowerPoint while hands-on coding design it by using Microsoft Word.Other than that, developer also follows Rapid Prototyping methodology in developing OOP-AR.

Quick Design
In quick design phase, it will design only for prototype interface that shows certain concepts in OOP.All the design in each interface can be drafted through storyboard.In order to design the content and interfaces, developer applied the information that gained in previous phase to make sure it is satisfied the requirement needed.Researcher also provide flowchart of project design that will show the process of designing this application and provide storyboard that will show its content.

Figure 1. Flowchart of Project Design
Figure 1 shows the flowchart of project design in developing this application.Developer initiated this project by selecting topic about the concept of Object-Oriented Programming and proceed by choosing Class, Object and Method as the concept of OOP that will be focuses in OOP-AR.
After determining the chosen concepts of OOP to be focus on, developer will provide a hands-on coding that have its own Class, Object and Method and its output that will run in Java will be a ball that move to right.After that, image target will be designed by using Microsoft PowerPoint.Next, developer will design interfaces and develop it in Unity 3D.Lastly, OOP-AR will be builds into Android system by using Android Studio SDK.

Detailed Design
Unity is the best platform in build Augmented Reality application.Unity also can design and develop interfaces for each scene.In this project, developer used Unity 2018.4.6f1 (64-bit) version.The author using Unity to develop the scene, add image target, add 3D model, setup GUI interface, build settings, and export android APK.While visual studio is used to facilitate the creation of scripts that used to control the GUI and its interaction.In addition, it reduces the development time because Visual Studio has a direct connection with Unity 3D.It simplifies copy and paste the script and modified it from one scene to another.

Customer Evaluation of Prototype
In this phase, researcher give target users that include Software Engineering students from Sultan Idris Education University and lecturer to try the application in order to satisfy requirement needed.After they already used it, researcher gives questionnaire to students to justify their understanding about OOP-AR.Researcher also run interview session with lecturer who is expert in Object-Oriented Programming subject and ask whether this application need to add some functions.
Regarding to the questionnaire and interview session, there are some functions that need to add so that OOP-AR gives more understanding to user about OOP and gives more excitement while students used AR in this application.All the requirements gathered will be discussed in next phase.

Refine Requirements Incorporating Customer Suggestion
After gives questionnaire to students and interview session carried out with lecturer, the requirements of the application need to improve and add some functions.Researcher classify the requirements before and after test the prototype as shown in Table 2.  Classify Class, Object, Method and draw arrow of the movement from the output of hands-on coding.
After researcher classify the requirements, researcher need to go back to quick design and build prototype phase to re-design and re-build the application based on requirements needed.

Re-iterate Quick Design
From the previous phase, the requirements of application need to be improved and added.Since researcher follow Rapid Prototyping model, researcher need to redesign the project to satisfy requirement needed.So, researcher need to re-do the flowchart of project design that parallel with new requirements.For hands-on coding, developer will provide five coding and each coding have its own Class, Object and Method.The output of each coding that will run in Java will be a ball move to right, left, upward, downward and static.After that, developer create five image target and each of them will show the Class, Object, Method and arrow of movement regarding to the hands-on coding provided.Next, developer will design interfaces and contents follow with the new requirements and develop it in Unity 3D.Lastly, OOP-AR will be builds into Android system by using Android Studio SDK.

Design
After the application accepted by users, researcher proceed with design phase.Design phase is about applying on how design instruction can be effective in learning and interaction with the materials that developer create and focuses on designing the content for the OOP concepts.In this phase, researcher will provide instructional strategy, hierarchical navigation and activity diagram.
OOP-AR application provides five target markers to scan the output that related with hands-on coding.Each marker will show the direction of the output hands-on coding which are static, right, left, upward and downward movement and its Class, Object and Method.The output of the marker should be a 3D butterfly pop up according to the stated movement.

Table 3. Hands-on Coding and Target Marker
Hierarchical navigation is organized in order to make the application be more structured and organized well.This navigation is very important because the user can easily use and understandable.Figure 3 shows the hierarchical navigation of OOP-AR application.

Testing
In testing phase, OOP-AR that already implement in mobile device need to be tested to make sure that all the functions run smoothly as required in order to support and maintain the instruction based on its usability and functionality.To test the application, researcher distributed questionnaire to 20 respondents from Software Engineering and Information Technology students in Sultan Idris Education University.
Table 5. Testing Result of AR for Right Movement Table 6.Testing Result of AR for Left Movement Researcher also test the functionality of Augmented Reality in the application.The procedures of testing whether the application is well functioning as expected are shown in Table 7.

Evaluation
This section discussed about the evaluation steps used to test the application by target user.A complete application needs to be evaluated by user in order to achieve the third research objectives which is to test the functionality and usability of the application that can be used by students.
The testing was done by distributing the questionnaire according to the research scope.This evaluation involved 20 respondents from degree in Software Engineering and Information Technology who taking Object-Oriented Programming subject.The respondents are required to give their answer based on Likert Scale Evaluation, from strongly disagree to strongly agree (1 -5).
Research finding included the results from questionnaire that required the respondents to answer.First, researcher gave a chance to respondents to try OOP-AR application.After they used it, the evaluation questionnaire was given to them.The questionnaire has three parts which is respondent background, evaluate in term of functionality and usability of application.
In the questionnaire provides section about respondent background in order to evaluate the respondents.This section includes the respondent's level of knowledge in OOP which is novice, intermediate or expert and ever used Augmented Reality before using OOP-AR.From the answer, it is known that 65% of them are novice, 30% intermediate and 5% are expert in OOP.It is also shown that 70% of respondents are ever used AR in other application while 30% of them are never used AR.

Results
There are two keys evaluation of this application which is functionality and usability.

Functionality of Application
The first question for functionality test is "The AR in OOP-AR works properly without encounter any problem".20% of the respondents answered normal, while 25% agree and another 55% strongly agree.The second question is "3D object displays right after the image scan".5% answered normal, 30% agree while the rest 65% are strongly agree.For the third question, researcher asked "The output of 3D object is appeared correctly with the image scanned by OOP-AR camera" with 5% answered normal, 30% agree and 65% strongly agree.The last question, researcher asked respondents to rate the performance of OOP-AR.5% answered normal, 25% answered agree while 70% strongly agree.Overall, the users are satisfied with the functionality of application without encounter any problems.

Usability of Application
In the usability test, the respondents given 5 questions.The first is "Be able to understand the flow of OOP-AR" with 5% answered normal, 35% agree while another 60% strongly agree.The second question is "The notes provided in OOP-AR is clear and understandable" with 5% answered normal, 35% answered agree while the rest 60% strongly agree.For the third question, researcher asked "I learn OOP concepts easily by using OOP-AR" with 5% answered normal, 30% agree while 65% strongly agree.The next question, "The lessons and AR provided in OOP-AR is relatable" with 10% answered normal, 30% agree and 60% strongly agree.The last question, researcher asked respondents if they satisfied with OOP-AR.10% answered normal, 20% agree while 70% strongly agree.After evaluates all the questions, researcher concludes that OOP-AR is understandable and successfully deliver its content to users.

Conclusion
The purpose of this research is to make sure that students who learn OOP subject more understand about its concepts and give an attractive environment in class by using AR technology.The results can be summarized as below: • This application provides AR technology that suitable to attract student's interest.In the use of AR in learning OOP, students will less bored while learn this difficult subject.The design of application also can be a factor to attract students such as animation button and attractive background of each interface.• Developer develops several of target marker in order to make users explore more in OOP.In this way, AR application provided in this application can interact between users and application.• Researcher test the functionality and usability of application by using questionnaire technique.
From the questionnaire, researcher proved that users are satisfied with the effectiveness and deliverable content of OOP-AR.
For the recommendation for future work, researcher has found that OOP-AR application need to improvise based on the feedback and error occur in AR that have been discussed in testing phase.The recommendation can be categorized as follow: • The content of this application can be expanded into more concepts of OOP to make users more understand about the subject.Besides that, this application can add quizzes or questions section to provide users some exercise while learning and using AR.For the error of 3D model, developer will learn more on how to animate 3D model so that students will explore more objects in AR technology and gives more excitement in class.• OOP-AR have commercialization potential to make it as a teaching and learning tool in secondary school or even in universities that learn OOP subject or programming subject that implement Object-Oriented.OOP-AR can be used not only for IT students, but other students who learn programming also can used this application.
Overall, OOP-AR has showed that this application is necessary in order to make students more understand and attractive while learning OOP subject.This application also be able to enhance the traditional form of teaching by implement AR application in class.In addition, this application could encourage students to think critically which improves their understanding and experiences in using technologies while learning.The improvement suggested before also need to solve so that the application does not encounter any problem in future.Even there is error in AR, this application still can help students understand about the concepts of OOP as expected.

Figure 2 .
Figure 2. Flowchart of Project Design after Test Prototype

Figure 4 .
Figure 4. Activity Diagram Figure 4 shows activity diagram to represent the flow of OOP-AR application.

Figure 5 .
Figure 5. Functionality Results of Application

Table 1 .
Comparison of Research Methodology

Table 2 .
Requirements Before and After Test Prototype  Only classify Class, Object andMethod from hands-on coding.

Table 4 .
Activity Diagram Description Used Unity as a tool to develop OOP-AR is not integrated so many coding.Coding used just for the functions of button to interact from one interface to another interfaces.Coding used in developing this application is C# and run it in Visual Studio 2017 version that directly connected from Unity.

Table 7 .
Testing Result of AR for Upward Movement

Table 8 .
Testing Result of AR for Downward Movement

Table 9 .
Testing Result of AR for Static