Peculiarities of organizing the workspace using machine learning methods Taras Basyuk a, Andrii Vasyliuk a, Lyubomyr Demkiv a a Lviv Polytechnic National University, Bandera str.12, Lviv, 79013, Abstract The article analyzes the space organization topic, defines its characteristics, and gives the factors that contribute to the conduct of this research. As a result of the research, an analysis of the subject area was carried out, and it was shown that today there is a limited set of tools (libraries) used in the process of pattern recognition, among the most famous are: DeepFace, TensorFlow and OpenCV. A description of the concepts of machine learning and recommender systems is given, which makes it possible to determine the main principles of their construction. A systematic analysis of the subject area was carried out and a tree of goals was built, which showed the subordination and interrelationship of goals in achieving the general goal. A mathematical description of the subject area was carried out using the algebra of algorithms, which provided the means to minimize created models by the number of uniterms. The presented models give a complete idea of the system construction features. The design of the software system was carried out using an object-oriented approach and the display of created diagrams in accordance with the notation of the UML language. The study presents diagrams of use cases and classes, which simplified the understanding of the information system functioning features for organizing the workspace using machine learning methods. The result of the research was the design and implementation of the system using a relational database and the Android Studio environment. The created software product works in prototype mode and implements the described functionality. Keywords 1 Workspace, machine learning, algebra of algorithms, UML design, information system 1. Introduction The workspace is where people spend a large part of their day. You can often hear complaints about how difficult it is to cope with tasks, and how much time and nerves it takes to look for something on the table or in drawers. You can hear the standard answers to this: it is fatigue, the need to rest, it is necessary to change the environment, work, etc. At the same time, the reason may be on the surface and consist in the fact that irritation may be caused by banal clutter or inconvenient organization of the workspace [1,2]. However, not everyone manages to easily organize their space, because not everyone has a developed spatial perception and creative thinking, which plays an important role in this process. A lot of information on organizing things can be found on the Internet [3], but the mentioned recommendations refer to general trends and well-known trends, which are not always relevant for a wide range of users. In view of that, the following main problems are highlighted in the process of organizing the workspace: considerable time consumption, understanding that there is an insufficient level of creativity and spatial vision, unwillingness to "understand" all the intricacies of organizing the space. 1 MoMLeT+DS 2022: 4th International Workshop on Modern Machine Learning Technologies and Data Science, November, 25-26, 2022, Leiden-Lviv, The Netherlands-Ukraine EMAIL: Taras.M.Basyuk@lpnu.ua (T. Basyuk); Andrii.S.Vasyliuk@lpnu.ua (A. Vasyliuk); lybomyr.i.demkiv@lpnu.ua (L. Demkiv) ORCID: 0000-0003-0813-0785 (T. Basyuk); 0000-0002-3666-7232 (A. Vasyliuk); 0000-0002-2802-3461 (L. Demkiv) © 2022 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Wor Pr ks hop oceedi ngs ht I tp: // ceur - SSN1613- ws .or 0073 g CEUR Workshop Proceedings (CEUR-WS.org) 1.1 Analysis of recent researches and publications 1.1.1. Domain analysis and known libraries The conducted analysis showed that with all the variety of systems, there are currently no software applications that are focused on the workspace organization. And this is not surprising, since this task belongs to the process of pattern recognition, namely their identification and further presentation taking into account ergonomic features. To date, the optimal recognition algorithm has not been developed; there are several leading libraries that manage to recognize images on the pictures, search for identical individuals on the network. However, the goal of finding the location of the object or its identification was not achieved. The world's leading companies in the information technology field, such as Google, Microsoft, Facebook, Apple, Intel, have created departments for the image recognition libraries development [4,5]. In particular, FaceBook has developed an algorithm called DeepFace, which will allow visual analysis, comparison and identification of human faces with an accuracy of up to 97.25%. DeepFace uses a 3D modeling technique to scan an object, but the algorithm itself is built taking into account the "frontalization" process. Further, the obtained data are converted into numerical values and processed for further comparison [6]. Google has developed an open software library for machine learning called TensorFlow [7]. It allows solving the task of building and training a neural network for the purpose of automatically finding and classifying images, achieving the quality of human perception. While the reference implementation runs on single devices, TensorFlow can run on many parallel processors, both CPUs and GPUs, relying on the CUDA architecture to support general-purpose computing on GPUs) [8]. TensorFlow's computations are expressed as stateful dataflow graphs. OpenCV is an open source library of computer vision, image processing, and general purpose numerical algorithms. Implemented in C/C++, also developed for Python, Java, Ruby, Matlab, Lua and other languages. Free for academic and commercial use - distributed under the terms of the BSD license. OpenCV provides various classifiers that can be used to recognize faces, eyes, cars, and many other objects. These classifiers, however, are quite simple, they are not trained using machine learning technologies, so when recognizing people, the accuracy will be approximately 80% [9]. Object recognition technologies have achieved high results, but they are insufficient for the everyday tasks implementation with the use of insignificant hardware resources. In this regard, it is necessary to improve object recognition algorithms and machine learning methods. 1.1.2. Application of machine learning methods in the subject area Machine learning is a branch of artificial intelligence and computer science that focuses on using data and algorithms to mimic the way humans learn, gradually improving their accuracy. Machine learning refers to a class of computer algorithms that learn from examples rather than being explicitly programmed to perform a task. It learns to formulate a general rule from a set of concrete examples. Thus, just like human learning, the computer becomes able to improve its performance based on the acquired knowledge. The difference is that at the current state of our knowledge, a computer needs a lot more training examples than humans. There are three main parts in the machine learning algorithm [10]: ● decision making process: In general, machine learning algorithms are used for prediction or classification. Based on some input data, which may or may not be labeled, the algorithm will estimate the data pattern. ● error function: the error function is used to evaluate the prediction of the model. If there are known examples, the error function can make a comparison to assess the accuracy of the model. ● model optimization process: If the model can provide a better fit in the training set, then the weights are adjusted to reduce the discrepancy between the known example and the model estimate. The algorithm will repeat this evaluation and optimization process, autonomously updating the weights until an accuracy threshold is reached. The growing interest in machine learning is due to the same factors that made data mining and Bayesian analysis popular [11]. Namely, an increase in the amount and variety of available data, computational processing that is cheaper and more powerful, and affordable data storage. All of this means you can quickly and automatically build models that can analyze larger, more complex data and deliver faster, more accurate results. At the same time, by building accurate models, the organization has a better chance of identifying profitable opportunities or avoiding unknown risks [12]. As for this subject area, the application of machine learning methods will be carried out to create a recommender system. There are two main paradigms for building recommender systems - collaborative filtering and content filtering. Collaborative filtering is suitable for systems that are based on models of previous user behavior. The model can be built solely from the behavior of one user or (more efficiently) from the behavior of other users who share similar traits. Given the behavior of other users, collaborative filtering uses knowledge about groups to form recommendations based on shared traits. Essentially, the recommendations are based on the automatic collaboration of several users and filtering on those who show similar traits or behavior [13]. Another method of recommender systems is content-based filtering. In this method, a user profile is created to provide information about the types of items of interest to the user based on the keywords used to describe the items [14]. The content-based filtering method creates a profile for each element (based on a set of discrete attributes and features) that is used to characterize the element in the system. The system then creates a profile for the user based on a weighted vector of item characteristics (from items the user has previously rated or purchased and from items the user is viewing) [15]. The main problem with content-based filtering is that this method depends on the quality of elements and users' metadata description. This brings many limitations to the system that collaborative filtering helps to overcome. The last method does not depend on the quality and availability of metadata elements, but only on the behavior of users. Thus, it can be concluded that for the complete description of metadata elements systems, it is more appropriate to use content-based filtering, and for systems with a limited amount of data or its absence - collaborative filtering. 1.2 The main tasks of the research and their significance The purpose of the research is the design and implementation of organizing the workspace system using machine learning methods. The conducted research will provide the means to create a methodological basis in this direction, which will allow determining the strategy for the given task implementation. To achieve the goal, the following main tasks must be solved: analyze the existing approaches, methods and software tools used in the field of organizing the workspace; to determine the main tasks that arise at the same time; carry out a systematic analysis of the subject area; conduct a mathematical description of the subject area using the algebra of algorithms; design the software system using an object-oriented approach and display the created diagrams in accordance with the UML language notation; to develop a software system for organizing the workspace using machine learning methods. The results of the research solve the actual scientific and practical task of creating a methodological approach and software for solving the task of organizing the workspace. 2. Major research results At the initial stage of creating a system, it is necessary to carry out a system analysis, which is a sequence of actions to establish structural connections between the elements of the studied system [16]. For this, it is necessary to build a tree of goals. It is created to analyze a problematic situation and visualize its results. It consists of a general goal (the top of the tree, which shows what needs to be achieved) and sub-goals, the fulfillment of which will allow the main goal to be achieved. The general goal is: "Creating a system for organizing the workspace." Sub-goals have been defined to achieve the general goal: • Data collection - a goal related to data analysis regarding system functionality and user interaction research. Includes: • carrying out analysis of the subject area; • analysis of literary sources; • analysis of systems of analogues; • formation of requirements for the designed system. • System design and construction is a goal related to requirements visualization and system development. Includes: • development of a conceptual model; • database schema design; • selection of tools and system development; • creating a prototype. • Providing recommendations is a goal related to satisfying user needs. • processing of user wishes/requirements; • analysis of workspace and objects; • providing of space organization options. • System quality criteria: • reliability - the system's ability to work without failure during a specified period of time under specified conditions; • productivity - a criterion responsible for the speed of task performance; • convenient interface – a criterion responsible for the convenience of interaction with the user; • performance is a criterion responsible for the ability of the system to perform the assigned functions. The tree of goals of the designed system is shown in Fig. 1. Creating a system for organizing the workspace Data collection System design and construction Providing recommendations Reliability Productivity Convenient interface Performance Figure 1: Tree of goals Further research was aimed at building models of system functioning using the algebra of algorithms apparatus. The first stage of the implementation of the algebra of algorithms was the description of uniterms and the synthesis of sequences [17], which is given below. Formed uniterms: I – uniterm for logging into the system; L is the unit term of authorization of an existing user; N – uniterm for registration of a new user; T is the uniterm of testing; S(s) is the space scanning uniterm; Rs(s) is the uniterm of repeated space scanning; S(o) – uniterm of object scanning; Rs(o) – uniterm of repeated scanning of objects; Rec – a uniterm for forming a list of recommendations for organizing the workspace; u1 – condition for checking the absence of authentication data; u2 is the uniterm of the check for a successful scan of space, u2 is the uniterm of the check for a successful scan of objects. As a result of the use of the apparatus of the algebra of algorithms, the following sequences and eliminations were synthesized: S1 - sequence of system operation in case of creating a new user, successful scanning of space and objects: S2 - sequence of system operation in the case of creating a new user, successful scanning of space and unsuccessful scanning of objects: S3 – sequence of system operation in the case of creating a new user, unsuccessful scanning of space and successful scanning of objects: S4 – sequence of system operation in the case of creating a new user, unsuccessful scanning of space and unsuccessful scanning of objects: S5 – sequence of system operation in case of user existence, successful scanning of space and successful scanning of objects: S6 – sequence of system operation in case of user existence, successful scanning of space and unsuccessful scanning of objects: S7 – sequence of system operation in case of user existence, unsuccessful scanning of space and successful scanning of objects: S8 – sequence of system operation in case of user existence, unsuccessful scanning of space and unsuccessful scanning of objects: L1, L11, L12, L13, L14 - check for the presence of a user: L2, L21, L22, L23,L24 - check for the success of scanning the workspace: L3, L32, L32, L33, L34 – check for successful scanning of items: The general formula without substituting nested eliminations will look like this: After substituting the eliminations, the general formula will look like this: The next stage is the substitution of the corresponding sequences in the elimination. As a result of using the properties of the algebra of algorithms [17], we subtract the common uniterms by the sign of the elimination operation and obtain the following formula of the algebra of algorithms: The next stage of the research was the design of the system using an object-oriented approach [18, 19]. Namely, at the beginning of the design, a diagram of use cases was created, made in the Visual Paradigm software environment. The use case diagram shows a view of the system that allows: • define the common boundaries and context of the simulated software; • formulate general requirements for the functional behavior of the designed system; • develop the initial conceptual model of the system for its further detailing in the form of logical and physical models; • prepare source documentation for the interaction of system developers with customers and users. The diagram defines two main actors - the User and the Administrator, which are connected by a generalization relationship, that is, all the actions that the User can perform, as well as some additional ones defined by the corresponding role, will be available (Fig. 2). Figure 2: Diagram of use cases So, the main precedents for the User actor are: • Log in. • Includes login input - this will allow the user to enter a unique identifier to identify the latter. • Includes entering a password - this will allow the user to go through the authentication process to access the system. • Extends the password recovery precedent - will allow the user to recover a lost password. • Extends login to the system using social network resources - will allow the user to log in through social networks, including Facebook, Linked, etc. • Determine priorities/preferences – implemented by conducting a short survey to form individual preferences. • Scan the workspace - involves taking a photo of the workspace that needs to be organized. • Includes checking for correctness - checking that the space is photographed correctly and that there are no redundant/deficient elements. • Extends Accept the result - if everything is photographed correctly, then the result is saved. • Expands Scan again - if the photo is incomplete or contains extra elements, then you need to scan again. • Includes Determine the size of the working space - after a successful scan, the system determines the size of the space on which it is necessary to organize. • Scan objects - involves photographing objects that must be additionally placed within the workspace. • Includes check for correctness • Extends Accept the result - if everything is photographed correctly, then the result is saved. • Extends Repeat scanning - if the photo is incorrect, there is an opportunity to repeat this process. • Includes Determine Dimensions - determines the size of each item to be placed • Includes Determine type and number of objects - performs type detection and counts the number of objects. • Create recommendations - after processing all received data, the system displays possible options for organizing the workspace. • Enables Show placement of objects - recommendations are presented as placed objects in the scanned space. • Expands Unable to locate - if there is no option given the input data, the system issues a message about the impossibility of locating. • Enables Relocation - allows you to display a different location recommendation. • Includes Save result - save the received results. The main precedents of the Administrator actor are: • Change the methods of functioning - will allow the administrator to make changes to the algorithms by which the system works. • Expands Update/change the work algorithm - the ability to update the algorithms of the system's operation. • Extends Change the parameters of operation - the ability to change certain parameters during the operation of the system. • Modify database - allows the administrator to modify the database in which all results will be stored. • Expands Add field - the ability to add a new field. • Extends Refresh data - the ability to refresh data. Next, according to the concept of object-oriented design, a class diagram will be constructed. The class diagram is the basis of any software project documentation and without its implementation further correct construction is impossible. It allows you to formalize the logical model of the program at the level of structural elements of the system and provides a static representation of the structure of the program. The class diagram of the designed system is shown in Fig. 3. Figure 3: Class diagram At the initial stage of development, 6 classes were created: User, Space, Object, Test, Admin, Recommendation. The User class contains the following attributes – id string, login string, pass string, name string, age int, email string and the following operations – Add(), Update(), Delete(), GetUser(). Designed to describe information about the user. The Test class contains the following attributes – id string, question 1 string, question 2 string, question 3 string and the following operations – Add(), Update(), Delete(), GetAnswears(). It is intended for testing to determine user priorities/preferences. The Space class contains the following attributes – id string, width float, length float, height float and the following operations – Add(), Update(), Delete(), GetPerimeter(), GetArea(), GetVolume. Intended for displaying workspace parameters. The Object class contains the following attributes – id string, width float, length float, height float and the following operations – Add(), Update(), Delete(), GetQuantity(), GetArea(), GetVolume. Defines the characteristics of individual objects that must be located on the plane. The Recommendation class contains the following attributes – id string, id_user string, id_test string, id_space string, id_object string and the following operations – Add(), Update(), Delete(), GetData(), ProcessData(), GiveRecommendation(), ModifyRecommendation( ). It contains recommendations that will be generated for the user. The Admin class contains the following attributes id string, login string, pass string, permissions bool and the following operations GetAdmin(), GetPermissions(), Add(), Update(), Delete(), Modify(). It contains a description of the features of the administrator's interaction. In order to display the features of the interaction between individual objects, a sequence diagram was constructed. This type of diagram is one of the ways to formalize usage scenarios, and its advantage is that at the initial stages of describing the scenarios, it is possible to find out the composition of interacting components and describe the flow of messages between them. The sequence diagram for the designed system is shown in Fig. 4. It shows three system objects - User, System and Database. After logging in to the User's system, the User begins to go through the main flow in the system - passing the test, scanning the space, scanning objects and receiving recommendations. Figure 4: Sequence diagram The development of any system cannot be complete without a choice of methods for solving the task. After analyzing the literary sources, a decision was made to use the pattern recognition method in tandem with the recommendation engine to cover the user's needs. The basis of the developed system is a recommendation engine based on the content-based filtering method [20]. This method is chosen because such a model does not require any extraneous data, as the recommendations are specific to a particular user. At the same time, the model can cover the specific interests of the user and recommend niche items that interest him. Considering the recommended type of system, the main stages of the latter are: • the information gathering phase, which involves gathering user information to create a user profile/model for predictive tasks, including user attributes, behavior, or content of resources accessed by the user. In the process of collecting information, we will use the technology of explicit feedback, which involves providing ratings for preferences through the system interface, in order to build and improve the model. • learning phase, a learning algorithm is applied to filter and use user features based on the feedback collected in the information gathering phase. • prediction/recommendation phase – recommends which items the user might prefer. This can be done either directly from the data set collected in the information gathering phase, which can be memory-based or model-based, or through the observed actions of the system through the user. Since the organization of personal space depends on a number of factors, subjective factors are also planned to be taken into account in the process of forming tests/recommendations. In particular, according to studies [21], it can be seen that people with a more mathematical mindset like everything to be organized, on shelves and clearly. At the same time, creative people prefer "conditional chaos". Therefore, in order to provide better recommendations in the system, it is planned to use the studies of Roger W. Sperry [22], which allow including in the test the question of determining the hemisphere that is dominant in an individual user. Namely, studies have shown that people dominated by the left part are usually analytically oriented, and the right, respectively, are more creative [23]. Therefore, determining whether a user perceives information better with the right hemisphere or with the left directly depends on how exactly he needs to arrange objects on his desktop. The next stage was the design of the system, which, based on the analysis, was decided to be implemented in the form of a client-server system, while the client part was implemented in the form of a mobile application running under the control of the Android operating system. As an integrated development environment, Android Studio [24, 25], specially developed by Google Corporation for the Android operating system, is used. The MySQL software [26,27], which provides support for distributed applications and is included in most cloud platforms, was chosen as the database management system. The development architecture is based on the Rest API technology, which is a server framework of a mobile application that offers significant scalability necessary for the pattern recognition process [28]. In order to integrate the pattern recognition method into the system, ready- made Python libraries were used, namely, Crab is a flexible, fast recommendation engine for Python, which integrates classic recommendation algorithms and information filtering into ready-made Numpy, Scipy, and Matplotlib packages [29, 30]. The developed prototype of the application is presented in fig. 5-8. Registration in the application is available in four ways: through email, Apple (if the application for IOS is expected in the future), Facebook and Google account [31]. To display a typical work scenario, the "Continue with Email" option is selected. After selection, you will be transferred to the next page, where you need to enter your email and registration data: First name, last name, age and password. After successful entry, click the "Sign up" button, as a result, the system will redirect us to the created profile. Figure 5: Home page and created profile After clicking on the middle icon, you can proceed to the first step, which is to pass the test. After completion of which you can see a screen where the system congratulates you for passing and there are two options: take the test again by clicking "Take test again" or continue by clicking "Next" (Fig. 6.) Figure 6: Testing After clicking the "Next" button, the user goes to the next step, namely: space scanning. After clicking on "Let's scan", the system goes into scanning mode, covering the area of space. After selecting the "Next" button, the user goes to the third step, namely: scanning objects. After scanning, there are two buttons: Save - save the item and Retake - repeat the scan. In this way, element-by-element scanning of all objects is carried out. (Fig. 7) Figure 7: Scanning process Next, the entered data is processed. After all the data has been processed, the system displays possible options for placing objects in space (Fig. 8). Figure 8: Formed options for elements placement 3. Conclusion As a result of the conducted research, the existing methods and known systems that provide tools for organizing the workspace were analyzed. An analysis of the subject area was carried out, and it was shown that today there is a limited set of tools (libraries) that are used in the process of pattern recognition, among the most well-known are: DeepFace, TensorFlow and OpenCV, and therefore the lack of necessary tools makes the task of designing and implementing a work order system urgent. The next stage of the work was a systematic analysis of the subject area with the formation of dissection goals and their presentation in the form of a goal tree. Next, a mathematical description of the subject area was given using the apparatus of the algebra of algorithms, which provided the necessary background for the formation of mathematical support. Object-oriented design of the software system was carried out by constructing a set of diagrams in UML notation, some of which (use case diagrams, classes and sequences) are presented in the work. Based on the conducted research, the system was designed and implemented in Android Studio. The created software product works in prototype mode and implements the described functionality. Further research will be directed to the verification and approval of the obtained results and expansion of the functionality. 4. References [1] C. Blakeman, Rehumanizing The Workplace By Giving Everybody Their Brain Back. Crankset Group Publishing, 2020 [2] M. Thompson, Working Space: An Insight into the Creative Heart. Hardie Grant Books, 2013 [3] D. Charnas, Work Clean: The life-changing power of mise-en-place to organize your life, work, and mind. Rodale Books, 2016 [4] C. Bishop, Pattern Recognition and Machine Learning. Springer, 2006 [5] U. Braga-Neto, Fundamentals of Pattern Recognition and Machine Learning. Springer, 1st ed., 2020 [6] DeepFace – The Most Popular Open Source Facial Recognition Library, URL. https://viso.ai/computer-vision/deepface/ [7] A. Geron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. O'Reilly Media, 2019 [8] D. Storti, CUDA for Engineers: An Introduction to High-Performance Parallel Computing. Addison-Wesley Professional, 2015 [9] J. Howse, J. Minichino, Learning OpenCV 4 Computer Vision with Python 3: Get to grips with tools, techniques, and algorithms for computer vision and machine learning, Packt Publishing, 2020 [10] C. Huyen, Designing Machine Learning Systems: An Iterative Process for Production-Ready Applications, O'Reilly Media; 1st edition, 2022 [11] N. Shakhovska, N. Boyko, P. Pukach, The information model of cloud data warehouses // Advances in Intelligent Systems and Computing (AISC). – 2019. – Vol. 871: Advances in intelligent systems and computing III. Selected papers from the International conference on computer science and information technologies, CSIT 2018, September 11-14, Lviv, Ukraine. – P. 182–191 [12] O. Mediakov, T. Basyuk, Specifics of Designing and Construction of the System for Deep Neural Networks Generation // CEUR Workshop Proceedings. – 2022. – Vol. 3171 : Computational Linguistics and Intelligent Systems 2022 : Proceedings of the 6th International conference on computational linguistics and intelligent systems (COLINS 2022). Vol. 1 : Main conference, Gliwice, Poland, May 12-13, 2022. – P. 1282–1296. [13] G. Blokdyk, Collaborative filtering Second Edition. 5STARCooks, 2021 [14] T. Basyuk, A. Vasyliuk, V. Lytvyn, Mathematical Model of Semantic Search and Search Optimization, Proceedings of the 3rd International Conference on Computational Linguistics and Intelligent Systems (COLINS-2019). Volume I: Main Conference, Kharkiv, Ukraine, April 18-19, 2019, Vol-2362: pp.96-105. [15] O.Veres, P. Ilchuk, O. Kots, Data Science Methods in Project Financing Involvement, Proceedings of the 16rd International Conference on Computer Sciences and Information Technologies (CSIT- 2021). Volume 2, pp. 411-414. [16] A. Dennis, B. Wixom, D. Tegarden, Systems Analysis and Design: An Object-Oriented Approach with UML. Wiley, 2015. [17] V. Ovsyak, ALGORYTMY: metody pobudovy, optymizatsiyi, doslidzhennya virohidnosti. – Svit, 2001. [18] D. Pilone. UML 2.0 Pocket Reference: UML Syntax and Usage, O'Reilly Media, 2006. [19] A. Vasyliuk, T. Basyuk, Construction Features of the Industrial Environment Control System, Proceedings of the 5rd International Conference on Computational Linguistics and Intelligent Systems (COLINS-2021). Volume I: Main Conference, Kharkiv, Ukraine, April 22-23, 2021, Vol- 2870: pp.1011-1025. [20] C. Charu, Aggarwal Recommender Systems: The Textbook, Springer, 2016 [21] P. Barber, D. Legge, Perception and Information. Routledge, 2019 [22] M. Gazzaniga, Tales from Both Sides of the Brain: A Life in Neuroscience. Ecco, 2015 [23] N. Hammond, Left Brain vs. Right Brain: What Does This Mean for Me? URL. https://www.healthline.com/health/left-brain-vs-right-brain [24] B. Zapata, Android Studio 2 Essentials. Springer, 2016 [25] S.Uzayr, Mastering Android Studio. CRC Press, 2022 [26] V. Grippa, S. Kuzmichev, Learning MySQL: Get a Handle on Your Data. O'Reilly Media, 2021 [27] D. Nichter, Efficient MySQL Performance: Best Practices and Techniques. O'Reilly Media, 2022 [28] M. Masse, REST API Design Rulebook. O'Reilly Media, 2011 [29] A. Agresti, M. Kateri, Chapman Foundations of Statistics for Data Scientists: With R and Python. Chapman & Hall/CRC Texts in Statistical Science, 2021 [30] W. McKinney, Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. O'Reilly Media, 2017 [31] E. Burnette, Hello, Android: Introducing Google's Mobile Development Platform. Pragmatic Bookshelf, 2015