The Methodology of Using Augmented Reality Technology in the Training of Future Computer Science Teachers

The paper describes the concept of augmented reality. Based on literature analysis, the authors claim that augmented reality technology enriches human experiences with digital data. The introduction of augmented reality applications and services provides an opportunity to increase the realism of research, while also offering an enhanced emotional and cognitive experience. Therefore, it can be an effective tool for the organization of learning in schools, colleges and universities.Augmented reality technologies can be interesting as an object of study as well. To do this, scientists need to design, develop and test appropriate methodologies.This paper explores one of the components of such techniques. The authors analysed several platforms for creating augmented reality applications. Unity, Vuforia and 3d-Studio were chosen for the purpose of analysis. Using them, the authors developed a fragment of the content of education. It contains instructionsfor creating an augmented reality application. The paper contains the author’s account of the process of training future teachers of computer science at Ternopil Volodymyr Hnatiuk National Pedagogical University (Ukraine). Based on the conducted study, the authors claim that students showed considerable interest in augmented reality technologies and the content of their training.

The introduction of digital technologies into the educational process is provided by a number of strategic documents, including the concept of the "New Ukrainian School"1 as well as the strategy "Education 2030"2, which were approved by UNESCO and UNICEF together with other organizations, and the development strategy "Europe 2030"3 adopted by the European Commission.
One of the phenomena of digital technologies in the last 10 years is the technology of virtual and augmented reality (VR and AR). Today, it has an ever-expanding business, entertainment and educational application. First of all, the companies involved in augmented reality are making a digital transformation of education (Morze, Smyrnova-Trybulska & Boiko, 2019). Therefore, scientists (Lukashenko & Lutsenko, 2016;Selivanov & Selivanova, 2015) see the significant educational potential of these technologies. Basic studies on the impact of VR on humans' focus on the study of the impact of computers and working with them, the Internet, social networking resources, and computer games on the feelings, thoughts and actions of an individual (Lukashenko & Lutsenko, 2016;Selivanov & Selivanova, 2015).
In her study, Heather (2018) says that AR affects the brain in new and exciting ways. There are three ways in which AR affects the brain: • AR drives high levels of visual attention in the brain (almost double that of non-AR tasks). • Right now, AR elicits a 'surprise' response in the brain.
• What is stored or encoded into memory is 70% higher for AR experiences.
AR is a technology that enriches human experiences with digital data and thus mixes the real and virtual environment. It uses virtual information as an additional useful tool. As a result, a new, more informative and stimulating environment is created (Hruntova, Yechkalo, Striuk, & Pikilnyak, 2018). In the article by Podkosova, Varlamova, Ostroukh, and Krasnyansky (2011), the following advantages of such an environment are distinguished: • micro and macro universe; • creating models of phenomena or processes that cannot be directly and clearly registered by human senses; • visualization of abstract models (producing objects that have no form in the real world). AR apps can help a person focus their attention on certain elements of the camera image; improve the understanding of the objects of the surrounding world by providing necessary information overlapping the image in the form of a text message or visual image. Today, AR is used in the following fields: education, medicine, military affairs, aviation, marketing, tourism, design, and games. In education, AR helps children learn about the world, as they can point the camera at the subject of interest and see detailed information about it.
The reader should not confuse VR with AR. The fundamental difference is that VR constructs a new artificial world and AR only adds individual artificial elements to the perception of the real world. A combination of these realities is called Mixed Reality. VR can be filled with people, weather conditions, events, and more (Smyrnova-Trybulska, 2019). For now, AR-technology is one of the main components of modern educational concepts such as STEM and STEAM (Balyk, Shmyger, Vasylenko, Oleksiuk & Skaskiv, 2019).
In our study, the understanding of the essence of VR is used to a greater extent in the traditionally cybernetic (programmatic) sense and is in tune with the thought of S. Karelov (2000). His theory boils down to the following basic characteristics: 1) creation by means of programming of three-dimensional images of the objects, as close as possible to reality, models of real objects, similar to holographic ones; 2) the possibility of animation (the subject in a virtual space can move, look at the object from different directions, "fly" in the universe, "move" inside the biological cell, etc.) (Selivanov & Selivanova, 2014).
AR is an environment with a direct or indirect complement to the physical world of digital data. The addition of AR objects takes place in real time, with the use of digital devices such as tablets, smartphones, smart glasses or accessories with special software. The device recognizes objects, special labels on them, or the user's location through a camera or other interface (such as Bluetooth or GPS). The marker can be both a special beacon with a built-in chip and a regular QR code (Korenova, 2018). In order for the add-on to occur, the user needs to be within the scope of this beacon or read a QR code.

Augmented Reality Platforms for Programming and Coding
AR technologies can be used not only as a means of learning. Experience shows that AR applications and services can be interesting and effective as an object of study.
For example, such tools as CoSpaces Edu, Vuforia AR, Unity, ARCore, Sketch-Up, and others are popular in the process of studying programming in secondary schools, colleges and universities.
CoSpaces Edu is a service for creating an AR application. It enables students to learn through practice, using various tools available within the range of VR and AR technologies. The platform uses a visual (Scratch-like) programming language. With its fun, Lego-like coloured blocks, CoBlocks, it is the ideal solution for junior pupils. CoSpaces Edu provides access to scripting languages for more advanced coding too. Therefore, more advanced coders can create scripts to add interactions and events or even create games. Teachers can create 3D scenes and virtual models for their subjects at Cospaces Edu. They can also encourage students to be creative and create their own 3D scenes and learning models of objects, phenomena and processes (Levina & Konyukhov, 2019).
One of the first Software Development Kits (SDK) for developing AR applications was Vuforia AR. Vuforia uses computer vision technologies, as well as tracking flat images and simple three-dimensional real objects in real time. The latest versions of Vuforia can recognize text and cylindrical markers. The image rendering capability allows developers to position and orient virtual objects such as 3D models and media content. They blend with the real scene when displayed on mobile devices. Unity recently partnered with Vuforia to integrate this AR platform into the Unity game engine (online: https://developer.vuforia. com/). The great possibilities of the integrated successful implementation of these platforms occur in the least amount of time. For example, the Unity and Vuforia platform was successful in the course "3D design for Mobile Augmented reality" at The Norwegian School of IT. In the course, students learned to make efficient, optimized and visually coherent content for Augmented Reality apps for mobile devices (Kjellmo, 2013).
The present research of the authors was devoted to designing an AR spatial visualization training system. The system consists of a manual controller and a visualization-training task. In the process of manual controller design, there was a necessity to think of an experiment to generate intuitive manipulation. In the process of preparing the training task, by analysing spatial training factors, a new visualization-training task was designed. In the process of AR integration, the system was implemented by Qualcomm AR in Unity3D with Vuforia portal and the final AR-based spatial visualization ability training system is completed (Chang & Chen, 2015).
Unity provides for multiple options SDKs which can be used for AR development. Vuforia and ARCore are the two most popular SDKs. ARCore provides better plane detection, pose tracking, motion tracking, and image recognition than Vuforia. The only downside of ARCore is that it runs only on certain older mobile phones, but all phones released in the past 3 years have ARCore enabled in them. ARCore is an SDK provided by Google, which allows for smooth computer vision, plane detection and motion tracking in certain Android mobile phones. ARCore allows for better AR experiences since it can detect planes (in proper lighting conditions) in 2 seconds approximately. ARCore does not require a specific kind of hardware since most of the latest processors are capable enough to provide computing power required by ARCore. Because of Unity's popularity, ARCore development comes built in with Unity (Kapoor & Naik, 2020).
Vuforia SDK supports different types of targets, both 2D and 3D, including multi-target configurations, cylinder targets to track images on a cylindrical surface, image targets without markers, frame markers, and cloud recognition targets to track 1 million targets simultaneously. The SDK provides features like localized occlusion detections using virtual buttons and image target selection in real time, and has the capability to reconfigure and create target sets depending on the scenario. It also supports text target acquisition to recognize and track words. Below are some features of this platform (Amin & Govilkar, 2015): • Provide faster local detection of targets with the capacity of tracking 5 targets simultaneously. • Efficient tracking in low light conditions, even if the target is partially covered.
• Extended tracking capabilities, which enable the app to keep tracking targets and helps maintain a consistent reference for augmentations of objects even when the targets are no longer visible in real time camera view. The Vuforia SDK Architecture has components such as (Tran, online: https:// www.academia.edu/7028565/AR_with_Vuforia): • Camera. It ensures that every preview frame is captured and passed efficiently to the tracker. • Image Converter. The pixel-format converter converts from the camera format to a format suitable for OpenGL ES rendering and for tracking internally. • The tracker component contains computer vision algorithms that detect and track real-world objects in camera video frames. The results are stored in a state object that is used by the video background renderer and can be accessed from the application code. • Video Background Renderer. Rendering the camera image stored in the state object. • Application Code. Query the state object for newly detected targets, markers or uploaded states of these elements. • Rendering of augmented graphics overlay.
• Device Database. It is created using the online Target Manager.
• Cloud Database. It can be created using the Target Manager or the Vuforia Web Services API. • User-Defined Targets. This feature allows for creating targets on the fly from the current camera image. • Word targets. The Vuforia SDK can recognize words and track them similarly to other type of targets, with two available recognitions, "Words" and "Characters".

An Example of the Authors' Implementation of Methodology
To illustrate our approach to the study of AR development platforms, we will show an example of one task. It will be created as a project in an integrated development environment. The students' task is to create a real-time label for activating virtually animated objects which form an AR. We based our work on the integrated approach of S. Semerikov and his colleagues. According to their approach, ideas are developed using standard objects and implemented in a visual design environment. Assigning new properties to standard objects and creating new ones is performed in the associated objectoriented programming environment (Syrovatskyi, Semerikov, Modlo, Yechkalo & Zelinska, 2018).
Students implemented this project in three stages: creation of tags; working with the scene; compilation of the project for mobile platforms.
The Unity Platform was chosen for the project. It has a free version compatible with Windows. To create the project, students used such components as: Unity 2019.4.5f1, Android Build Support, iOS Build Support, Vuforia Augmented Reality Support, WebGL Build Support, and Windows Build Support.
At the first stage, students created a project. To use Vuforia in the Unityproject, students registered on its official website (online: https://developer.vuforia. com/) and received a license. This is required to create the Vuforia plugin. Our students created ARTag. A tag (ARTag) is a marker to the appearance of a virtually animated object within the real world. To create it, students deploy a tags database. In general, everyone could choose any image as a tag. For example, in one of the student projects, such an image was the Hryvnia -the Ukrainian national currency.
In the second stage, students worked with the scene. They had to add a plugin camera and a database to the project. To test the effectiveness of the marker, developers had to turn on the camera on the laptop, expand the project and show the hryvnia banknote or its image.
Next, students worked with models from the Asset Store. The model is an animated virtual object. In addition to the store, advanced students had the opportunity to create it themselves, for example in 3D Max Studio. For example, a condor bird was developed as an object.
To check the correctness of the import of the model into the project, developers check the ability to control its parameters such as: position, image size, and rotation.
Later, using ImageTarger, students linked the label to the model. This is a father-daughter relationship. As a result, the condor became a subsidiary of the hryvnia. Now, if a student photographs a hryvnia with a smartphone and points the camera at the condor image, the bird will fly away. This will happen because it is downloaded with the finished animation.  In the third stage, students compile the project for mobile platforms. In the first stage, students needed to download the .apk file to their smartphones and install the application. The next step is to download the library of objects needed to compile the application to the phone. To compile the whole project, we also need to download the library system (which depended on the OS version of the mobile phone). Then, the scenes that are being worked on need to be transferred. The object is compiled together with the libraries and must now be copied to the phone in a folder within the internal storage of the phone.
The most interesting part is the demonstration of a created virtual object through a smartphone, whose camera we direct on the hryvnia (or the corresponding QR code); we will see a flying condor (Figure 2).

Creation of AR Objects with Unity
The behaviour of objects is controlled by the Components are attached to them. Unity's built-in components can be very versatile but we need to go beyond their capabilities to meet our own needs. Unity l allows you to create your own components using scripts that allow you to activate objects and change their settings. The program supports two programming languages: C# and UnityScript, a language specifically designed for use with Unity (similar to JavaScript) (Indraprastha & Shinozaki, 2009).
The script interacts with Unity's internal mechanisms by creating a class derived from the built-in MonoBehaviour class. The class name is taken from the name you provided when creating the file. The class name and filename must be the same so that the script component can be attached to the object. No code will be activated unless the script instance is attached to the object.
The first step is to get a link to the component you want to work with. This is done using the GetComponent () function. The object components are stored as variables. Here is an example in C#: The variable can be seen in the Inspector window. Finding objects is possible when there is some information through which they can be identified.
Unity's script is not like a traditional program where the code runs all the time until it completes its task. Instead, Unity periodically delegates script management when calling certain declared functions. As soon as the function completes its execution, control returns to Unity. These functions are known as event functions because they are activated by Unity in response to events that occur. Unity uses a naming scheme to determine which function to call for an event. Unity has many features of events.
The key concept in programming is to change the position, state and behaviour of objects right before drawing a frame. Such a code in Unity is usually placed in the Update function. Update is called before the frame is drawn and before the animations are calculated: void Update() { float distance=speed*Time.deltaTime*Input.
GetAxis("Horizontal"); transform.Translate(Vector3.right * distance); } Sometimes it is advisable to be able to make additional changes at a time when the object of the scene worked with the functions Update and FixedUpdate and calculated all the animations. An example is when a script code has to override an animation effect (say, make the character's head return to the target in the scene). In such situations, students can use the LateUpdate function: if (Input.GetKey(KeyCode.UpArrow)) transform. Rotate(2, 0, 0); if (Input.GetKey(KeyCode.DownArrow)) transform. Rotate(-2, 0, 0); } It is useful to be able to call on the initialization function before any updates occur. The Start function is called before the first frame or physics of the object is updated. The Awake function is called for each object when the scene is loaded. For different objects, the Start and Awake functions are called in a different order, all Awake will be executed before the first Start is called. This means that the code in the Start function can use everything that was done in the Awake phase.

Using the UnityGUI to Create Augmented Reality Objects
By creating augmented reality objects, students can immediately work with a graphical user interface (GUI). This will concern programming controls (objects of the Controls class) using UnityGUI.
UnityGUI controls the use of a special OnGUI() function that calls each frame as long as the script in which it resides runs.
The following GUI.Button() code is called only every second, so the button will appear and disappear. The user can only click on the button when it is visible: / * Flashing button example * / // JavaScript Function OnGUI() { if (Time.time % 2 < 1) { if (GUI.Button(Rect(10,10,200,20), "Meet the flashing button")) { print ("You clicked me!"); } } } As a conclusion, students can use any desired logic to control the display and functionality of GUI controls. Three key pieces of information are required to determine GUI control: Type, Position, and Content. Note that this is a structure, a function with two arguments. The types of control are determined by calling the Unity GUI class or GUILayout class function. All other types of controls are described on the developer's site, in the Controls section.
The second argument for GUI controls is the content that will be displayed in the control. To display text, you must pass a string as an argument, for example, as follows: / * String Content example * / // JavaScript function OnGUI() { GUI.Label (Rect(0,0,100,50), "This is the text string for a Label Control"); } To display a picture, students must declare a variable of type Texture2D and pass its name as an argument, for instance: There is also a third option in the GUI control that allows you to display both text and pictures together. You can pass a GUIContent object as a "content" argument and define a picture line to display in GUIContent. / * Using GUIContent to display an image and a string * / // JavaScript var icon : Texture2D; function OnGUI() { GUI.Box(Rect(10, 10, 100, 50), GUIContent("This is text", icon)); } Finally, we will talk about the creation and implementation of augmented reality work. It is impossible not to mention the call-backs which are used when it comes to the appearance and disappearance of objects in the display of any camera. Instead of waiting for answers to continue running the program, JavaScript keeps executing while waiting for other events.
The MonoBehaviour class, which is the parent of each script created by students in Unity, has methods that are called when an object becomes visible / invisible to any of the existing cameras. A message is sent to all scripts attached to the renderer. This is useful for avoiding computations which are only needed when the object is visible. OnBecameVisible() is called when an object is visible to any camera, whereas OnBecameInvisible() is called when the object is not visible.
To zoom in or out on an object when it is displayed on the screen, follow these steps: • add the object to the Vuforia database; • create an ObjectTransform script and connect it to an object whose scale will be resized; • implement the script: • run and check the result.

The Pedagogical Aspects and Conditions of the Introduction of AR Technologies in the Educational Process
The processes of implementation of VR and AR technologies are quite active and have a wide range of uses. In the near future, augmented reality will become a popular method for learning at schools, universities, colleges, and even for children in home schooling. The effectiveness of the use of AR in education is due to three features: Contextuality is the natural introduction of virtual objects into the surrounding space so that they do not seem something superfluous and alien. The actual environment and virtual objects, which are essentially just pieces of code, are shown together and in a complex way -and thus create a single holistic picture.
The second advantage of using AR in education is interactivity. This means that you can interact with virtual objects as if they were real: move, relocate, and even destroy them; only the physical aspects, such as touch, smell, feel, etc. are absent. This level is still unattainable using present technologies.
The third feature is spaciousness. Educational AR applications offer interaction with three-dimensional virtual objects which have their own coordinates in space. The user can move freely in space to view the augmented reality object from different angles.
The visual representation of the object of study and its visualization arouses interest. Live animations with which you can fully interact are much more interesting than static pictures and schematic images.
In education, AR-applications are effective because they allow you to visually study and work with devices or objects, access to which is extremely difficult to obtain in real life.
In today's realities in education, the use of AR and VR technologies has a number of limitations. The introduction of such technologies is associated with many financial and material difficulties: the high cost of equipment, lack of a large number of quality programs and, consequently, the need to develop them, and, most importantly, little experience in using this technology from teachers who need additional training.
The total number and variety of existing applications using AR and VR technologies specifically designed for education is quite modest. To change the situation, of course, requires state support for such projects and the presence of initia-tives by the educational community. Creating even a small VR application, for example, in the field of history, requires the involvement of many specialists: historians, artists, programmers, cultural specialists, etc., as well as appropriate technical support. This requires support from the state and major corporations which are interested in training professionals with competencies in modern areas of information technology.
It is clear that the use of AR technologies in education will have a significant effect but the standard time limits for school lessons and classes in universities and colleges will significantly disrupt existing programs because the time spent using these technologies will change the curriculum. This will increase the time spent by teachers and lecturers on the preparation of relevant educational material. Therefore, for the introduction of AR technology in the educational process, there is a need to adjust educational programs and curricula in order to include new disciplines specializing in AR technologies or the inclusion of relevant modules or topics in existing disciplines. In addition, it is necessary to make changes in the evaluation of labour for teachers.
The use of technologies such as AR and VR reality not only make educational programs innovative, but also significantly strengthen the position of educational institutions on the market of educational services. The use of AR-and VR-reality technologies by educational institutions contributes to their perception as modern, advanced and high-tech educational institutions.
Although VR and AR technologies have a great potential for improving student achievement, they can be a significant distraction. Examples of the use of technology show an increase in interest in the learning process. However, in the case of excessive fascination with the form to the detriment of the content, the effect may be reversed.
In order to determine the prospects for the introduction of AR technologies in the educational process, as well as to identify the attitude of the teaching staff and student audience to new learning technologies, we conducted a survey in the form of an expert interview. It was attended by 16 respondents from the teaching staff and 48 university students of various specialties.
The opinions and assessments of the experts involved regarding the use of specialized AR applications are extremely positive. Teachers are ready to use AR applications in their professional activities, provided they are adapted to the conditions of teaching disciplines. In addition, respondents spoke in favour of a positive outlook for the overall use of AR applications in the educational process, emphasizing the special relevance of such technologies in practice-oriented specialties such as biology, medicine, physics, and chemistry.
Due to the unprecedented speed of development and introduction of digital technologies in all spheres of human activity, educational institutions are actively implementing the latest learning forms that not only improve the quality of education, but also increase competitiveness of educational institutions on the global educational market.

Conclusions
The augmented reality technology has a great educational potential. It creates opportunities for the transfer of elements from the virtual world into the real one. Augmented reality can complement the things that we are able to see, hear, or feel with virtual, sometimes non-existent or ideal objects.
The conducted survey allows researchers to speak about the high degree of relevance and demand in the fields of higher and secondary education for the use of the latest AR and VR technologies, as well as to remark upon the very active process of implementing virtual education technologies in Ukrainian and foreign educational institutions.
Therefore, the problem of developing a methodology for teaching students to create such applications and services is in demand. In particular, this problem is relevant in the case of training future teachers of computer science. After all, they will teach future generations these and newer technologies. The possibilities of augmented reality in combination with 3D modelling and interactivity are of particular importance for students of natural and technical specialties. In this work, based on the analysis of different platforms for creating applications with augmented reality, we have developed our methodology based on an integrated example of creating an AR-project in Unity, which is implemented at Ternopil National Pedagogical University.
Our students implemented it during the following stages: creating tags; work with the scene; and, compilation of the project for mobile platforms. In the process of learning, we observed students' interest in the objects of study. It can be argued that the technologies of AR and VR reality, which are actively updating every day, have a great potential for development and future prospects in education.
Este documento contiene uno de los componentes de tales técnicas. Los autores analizaron varias plataformas para crear aplicaciones de realidad aumentada. Unity, Vuforia y 3d-Studio fueron elegidos entre ellos. Utilizándolos, los autores desarrollaron una parte del contenido de la educación. Contiene instrucciones para crear una aplicación de realidad aumentada. El documento contiene el relato de los autores sobre el proceso de formación de futuros profesores de informática en la Universidad Pedagógica Nacional Ternopil Volodymyr Hnatiuk (Ucrania). Según el estudio, los autores afirman que los estudiantes mostraron un interés significativo en las tecnologías de realidad aumentada y el contenido de su formación. P a l a b r a s c l a v e: realidad aumentada, realidad virtual, kit de herramientas para desarrolladores de software de realidad aumentada, kit de desarrollo de software, entorno de desarrollo integrado