Design and Implementation of a Ukrainian-Language Educational Platform for Learning Programming Languages Andrii Vasyliuk , Taras Basyuk and Vasyl Lytvyn Lviv Polytechnic National University, Bandera str.12, Lviv, 79013, Ukraine Abstract The article analyzes the existing methods and known systems that provide tools for learning programming languages and describes the mechanisms for evaluating these skills, which made it possible to identify the main shortcomings of the existing approaches and showed the relevance of the research. In the process of analyzing the subject area, the existing recommendation methods were reviewed and analyzed, and a joint filtering method was chosen, which is implemented through a unified layout of the system user's video settings matrix. 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. A description of the functionality of the educational platform was carried out using the algebra of algorithms, which provided the means to optimize its software construction. The result of the research was the design and implementation of a platform for learning programming languages with the possibility of educational video content searching. The created platform for learning programming languages works in prototype mode and implements the described functionality. Keywords 1 Programming language, training, platform, information system 1. Introduction As you know, knowledge is an important factor in the process of formation of any personality. Since we live in the 21st century, in the world of technology, the most convenient way for us to learn will be interactive systems, online guides, video courses, and audiobooks. All these force you to look for different platforms, mostly free or with a trial period, to go to distant pages of results to get what you want. However, not everyone thinks about the reliability of the data, its integrity and its usefulness. Nevertheless, this topic is most appropriate within the framework of a higher education institution, because the educational program is not often updated and does not always correspond to modern trends. Therefore, students remain at the level of "classics", which leads to the impossibility of solving the latest problems in the field of programming [1, 2]. Yes, basic knowledge is undeniably necessary, however, the way these basics are delivered is somewhat outdated. Not only science does not stand still, but also pedagogy, approaches to learning and psychology: it is about the possibility of interactive learning with the consolidation of the learned material. As you know, for primary grades of junior schools, there is a program called "Steps of Informatics", which involves providing interaction between a beginner programmer and the curriculum. The purpose of this course is to develop algorithmic and logical thinking, to master practical skills in using a graphic editor and programs to support the study of academic subjects. In institutions of higher education, there is a problem with the learning and practical implementation of new algorithms for students. It often happens that even quite simple algorithms can be difficult to master, and the format with supporting video content in this aspect only helps to master the educational material. MoMLeT+DS 2023: 5th International Workshop on Modern Machine Learning Technologies and Data Science, June 3, 2023, Lviv, Ukraine EMAIL: Andrii.S.Vasyliuk@lpnu.ua (A. Vasyliuk); Taras.M.Basyuk@lpnu.ua (T. Basyuk); Vasyl.V.Lytvyn@lpnu.ua (V. Lytvyn) ORCID: 0000-0002-3666-7232 (A. Vasyliuk); 0000-0003-0813-0785 (T. Basyuk); 0000-0002-9676-0180 (V. Lytvyn) © 2023 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) In this way, it will be possible to create a platform that combines learning with the ability to search for video content on educational topics. This approach will be able to improve the level of students' education, encouraging them to complete the tasks set in higher education, to show their creative ideas and non-standard solutions. In addition, it is possible to attract senior students who will be able to contribute to the development of the system. This will make it possible to implement a continuous educational process and ensure communication between students of different years of study [3]. For this purpose, it is planned to develop a platform for learning programming languages. This platform will include lectures, the study of which will allow you to understand the basic algorithms, approaches and patterns taught in various programming languages [4], as well as instructions for completing the task and a personal account with the ability to view your rating and success. In addition, it will be possible to find appropriate video content on educational topics using the tools of the developed platform. The specified topic is relevant today, as questions of creativity, non-standard solutions to problems, as well as an interesting way of assimilating educational material in the field of programming are of great interest to both teachers and students. The development of such platforms is important for science, as the collected statistics will make it possible to take into account the cognitive characteristics of students and personalize the learning process. For students, it is an opportunity to demonstrate their skills, knowledge, share experience with others and receive advice from others, improve their skills and approaches. 1.1 Analysis of recent researches and publications 1.1.1 Known methods of study In order to choose the appropriate type of e-learning, it is necessary to examine many factors: the requirements of the person who will follow it, the tasks that this type offers, the ways in which it recommends thematic educational materials, and exactly how the results are evaluated. If you take into account all the aspects described above, you can choose the most correct method of assimilation of information for a person, and it will, accordingly, improve learning productivity. The following main types of e-learning are distinguished [5]: ● Web training. This option of e-learning involves the use of web browsers, so students who choose it, have access to the offered educational materials almost always. Given that browsers support the playback of audio and video files, web-based learning is a very flexible tool for both students and teachers. However, both parties must be connected to the Internet to download or view educational courses and interact with each other. ● Training based on video materials. This method appeals to people who are bored with presentations or e-books. Video recordings are a more interesting tool for presenting information, as they can contain animation elements, full or excerpted interviews with scientists or experts, case studies captured on camera, or computer screen recordings with relevant comments. Since video materials are on the web, they can be accessed at any time and as many times as you want, and the mechanisms of video players, such as speeding up or slowing down the video or rewinding to any minute, allow a person to watch the recording at the desired speed, which ensures learning at a comfortable pace. ● Webinars and virtual classes. Webinars are educational seminars held online through special programs for video conferencing. As for virtual classes, their difference from ordinary classes is that teachers and students can be in different places, and not physically in the same classroom. Accordingly, virtual classes can include webinars. These options of e-learning contribute to the establishment of cooperation between people, as well as the education of students from all over the world in a common field with the possibility of direct and instant consideration of issues. ● Mobile learning. Given that most people today have mobile devices, this type of e-learning is quite common. For example, students can receive study materials and homework remotely on their smartphones. However, mobile learning has made the most significant contribution to organizations: it allows them to train their employees more easily, following the Bring Your Own Device policy. This policy made mobile learning a separate, full-fledged format of e-education, and not just another component of a web-based online learning program. ● Coeducation. In general, people learn more easily when they can communicate with others, and this is what this type of e-learning focuses on. Its goal is to build an environment where students and teachers can work together and share ideas with each other. In this way, collaborative learning resembles traditional group learning that takes place outside of the Internet. In fact, web resources such as social media have a huge impact on student communication. Forums, messengers, chats and other platforms that promote social learning and encourage students to communicate are integral elements of learning management programs. In this way, the additional, parallel use of social networks, such as Twitter, Facebook, or Telegram, will help to realize for all participants of the educational process an environment where they can exchange questions and relevant information, help each other and generally form friendly relations, which will ultimately create a positive atmosphere for learning. Learning in a team with colleagues is a critical point that may be missing for a person who wants to use e-learning methods. ● Microlearning. This method of e-learning offers to break information into small portions that are easier to absorb. Thanks to this, the student can fully concentrate on the chosen course and, accordingly, better remember what it is about. However, this approach requires more time to teach all the necessary educational material, because it provides information on only one specific topic at a time. Microlearning can be combined with other types of e-education. For example, if it is used together with elements of joint or mobile learning, the process of acquiring new knowledge by a person becomes more effective and more coordinated. ● Individual e-learning. Individual courses are developed on the necessary topics directly following the requirements of a predetermined group of people. Such training is adaptive, which is different from the other types of e-learning mentioned above. It does not include all general materials in the course, but only those that a specific user really needs to know. Because of this, the development of individual courses is quite difficult. In the process of their creation participate different experts from relevant fields, designers of information systems and experienced developers of educational programs. Given the scalability problems of such educational systems, most companies and organizations that want to have their own software for individual e-learning do not implement it themselves but turn to corporations that specialize in this. Whichever method of e-learning a student chooses for himself, it will definitely help him get good results. But today, individual e-learning is considered the most effective option, thanks to its adaptive aspect. As mentioned earlier, for a large part of people, interaction with computer technologies is a daily thing, and therefore they have plenty of time and opportunities for learning. As a result, if they are also offered to use adaptive educational programs, they will process only information that is really useful to them, will not burden themselves with unnecessary or already familiar theories, and therefore will study more productively. Platforms for learning programming languages with the possibility of adaptability are designed to provide a higher level of personalization of learning than other systems [6]. By analyzing the knowledge and skills of an individual student, they dynamically generate a course plan and adjust the level of difficulty. Thanks to adaptive learning, an important innovation in education was emerged – the ability to immediately change the discipline program based on the student’s knowledge. The information system determines which material the user perceives better and which worse, after which it adjusts the course in real-time. That means it changes the approach on an individual level to make sure that the user has fully familiarized himself with the topic before moving on to the next one. Accordingly, adaptive learning is optimized, and teachers do not need to make additional checks to see if students have really studied the lectures well. 1.1.2. Analysis of known systems Usually, e-learning platforms provide Learning Management Systems (LMS). They are developed in the form of applications, web technologies or cloud systems that connect to other applications already available to a person. An effective system of adaptive e-learning allows teachers to qualitatively manage such elements as user registration, course content, calendars, user access to courses, as well as communication between users, their certifications and notifications [7, 8]. Next, five different adaptive eLearning systems will be covered, namely Surgent CPA Review, Knewton, CogBooks, DreamBox, and Exercism. ● Surgent CPA Review [9] is a system aimed at preparing the user to pass the Certified Public Accountant exam, which acts as a reliable financial advisor that helps individuals, businesses and other organizations plan and achieve their financial goals. The Surgent CPA Review assesses a person’s overall skillset and identifies their weaknesses and strengths. Using artificial intelligence, Surgent CPA Review identifies what the user doesn’t know and tells them what they need to study to pass the exam. Advantages: free period of use, unlimited time of use until the user passes the CPA exam successfully. Disadvantages: there is no offline version of the system. ● Knewton [10] is a company specializing in adaptive learning. Its platform personalizes educational content and provides courses for higher education in mathematics, information technology and engineering. Knewton enables organizations, schools, and developers to offer customized learning to any student or employee. Its technology allows you to analyze a person’s performance in real-time. In addition, the platform provides adaptive learning technologies that other developers can use to build their own adaptive learning systems. Disadvantages: the system contains only pre-verified, agreed-upon courses, which makes it impossible for all users to publish them and, accordingly, slows down the process of updating existing ones. A person can only choose the courses that he likes, without the possibility of directly combining them or specifying his own ultimate educational goal. Another disadvantage is the lack of explanations for generating individual recommendations logic: the user may not understand why he was offered to study such educational materials and not others. ● CogBooks [11] is an adaptive learning platform that creates customized courses for users. It is constantly being improved and more precisely adapted to the student’s needs, improving his productivity. Currently, the platform offers 9 academic disciplines: agricultural sciences, biological sciences, business, health and well-being, history, mathematics, philosophy, physics and psychology. In addition, the company offers services for creating individual applications for educational institutions. The CogBooks system can be connected to the LMS as a cloud-based tool so that the student can enjoy the benefits of adaptive learning without installing new applications. However, integration is currently only possible with Moodle, Blackboard, Canvas, D2L, Schoology, and some other websites. In addition, according to user reviews [12], many initially found it difficult to work with the system due to a large number of buttons and links, which makes navigation not user-friendly. Another drawback of CogBooks is the somewhat superficial explanation of the correct answers in case the user makes a mistake during the tasks. ● DreamBox [13] is an adaptive online math learning application that includes curriculum-based tasks for children ages 5 to 14. This system was created to help students stay motivated in every lesson and receive the right instructions at the right time from the very beginning. As for the disadvantages of DreamBox, the interface is only in English, so children learning math with this app must have at least a basic knowledge of the language. In addition, the games are quite bulky, so they take a long time to load and, accordingly, take more time for teachers and students. It can also cause the child to lose concentration and interest. ● Exercise. An online free and open-source programming platform offering code practice and mentoring in 50 different programming languages [14, 15]. The website differs from other coding platforms in that it requires students to download exercises through a command-line client, solve the code on their own computers, and then submit solutions for feedback, where they can also view the solutions of other students [16]. Advantages of Exercism: a sufficient selection of competitions, a large selection of programming languages to learn, the presence of detailed instructions with examples, and quick response of the system to user requests. Disadvantages of Exercism: there is no “favorite” option if you liked the task; there is no option for sparring with users; there is no rating table of participants; a limited number of social networks to connect. The conducted analysis showed that in the process of creating the system, it is necessary to take into account a number of features: the simplicity of the interface, giving the user the opportunity to change the course at will. Constant monitoring and analysis of the student’s success is also an important function. 1.2 The main tasks of the research and their significance The purpose of the research is the design and construction of platforms for learning programming languages. The research conducted will provide a means of learning programming languages through a variety of them, including educational video content. To achieve the goal, it is necessary to solve the following main tasks: analyze the existing approaches, methods and software tools that are used in the field of studying, and evaluating the skills of mastering programming languages; to determine the main tasks that arise at the same time; design a software system using an object-oriented approach and display created diagrams in accordance with the UML language notation; choose a recommendation engine for searching for video content, describe the functionality using the algebra of algorithms, to develop of a Ukrainian-language educational platform for learning programming languages. The research results solve the actual scientific and practical task of creating a methodological approach and software for learning programming languages. 2. Major research results At the beginning of the research, it is necessary to carry out a systematic analysis of the subject area, which should begin with the construction of a tree of goals [17,18]. With the help of this method of system analysis, it is possible to display various types of goals: personal, professional, those for the fulfillment of which a month or year is allocated, or which are long-term. The goal tree allows you to visualize a full-fledged system of specific decisions aimed at reaching the main, global reference point step by step. This kind of approach is unique because it depicts not only a general list of individual tasks but also their interactions and connections. At the same time, secondary goals are a tool for achieving other, primary goals, and together they lead to the successful achievement of the set goal. Figure 1: The tree of goals of a platform for learning programming languages The conducted analysis made it possible to develop the structure of the future platform, the type of which is presented in Fig. 2. Figure 2: The structure of the educational platform for learning programming languages According to the given structure, the designed platform should consist of the following functional parts: learning subsystem, recommendation subsystem, video content selection subsystem, testing subsystem. As for the video material, in the process of analyzing the subject area, the existing recommendation methods were reviewed and analyzed, and a joint filtering method was chosen, which is implemented through a unified layout of the system user's video settings matrix. The information domain of the collaborative filtering system consists of users who express their preferences for different videos [19]. Ratings (advantages) are usually presented in the form of a triple (users, videos, reviews). Recommender systems typically use rating criteria, such as 0-5 stars. The set of all evaluated triples forms a sparse matrix, which is called the evaluation matrix. Pairs (user, video), where the user did not rate the video, are unknown values of this matrix, as shown in Table 1. Table 1 An example of a sparse matrix of video scores Position Video #1 Video #2 Video #3 User #1 4 ? 2 User #2 1 2 ? User #3 ? 5 4 Using a recommendation system based on joint filtering presents us with two tasks: ● calculate the rating or preference that the user will give for a specific video (the purpose of such a forecast is to set unknown values in the rating matrix); ● form recommendations, that is, create a ranked list of N-elements for the corresponding user. Let's singularly decompose the matrix X (a set of user ratings) of size n x m, which contains real or complex numbers [20]. The result will be multipliers in the form of m x rT, as shown in formula 1, where U (matrix of "attributes" of users) - a matrix of size n x r will consist of the real or complex unitary matrix, S of size r x r (rectangular diagonal matrix), and VT, which will be a unitary matrix of dimension m x r. The unified form of all matrices is shown in formula 2. ' 𝑋["#$] = 𝑈["#&] 𝑆[&#&] %𝑉[$#&] ' (1) 𝑥(( … 𝑥(" 𝑢(( … 𝑢(& 𝑠(( … 𝑠(& 𝑣(( … 𝑣(& ' ( ⋮ ⋱ ⋮ -=( ⋮ ⋱ ⋮ -( ⋮ ⋱ ⋮ -( ⋮ ⋱ ⋮ - (2) 𝑥$( … 𝑥$" 𝑥"( … 𝑥"& 𝑠&( … 𝑠&& 𝑣$( … 𝑣$& The Singular Matrix Decomposition method is used to predict the ratings of videos that have not been rated by users, and then serve the videos with the highest predicted ratings to users [21]. An example of a matrix layout is shown in formulas 3 and 4, where the rows of the matrix define users of the system, the columns of the matrix define videos, and the value user is evaluated for a particular video. 1 1 1 0 0 3 3 3 0 0 4 4 4 0 0 А=5 5 5 0 0 (3) 0 2 0 4 4 0 0 0 5 5 0 1 0 2 2 After carrying out the singular expansion of the matrix A, the following matrices U, S, VT are obtained as a result, as indicated in formulas 4-6: 0.13 0.02 0.41 0.07 0.55 0.09 𝑈 = 0.68 0.11 (4) 0.15 −0.59 0.07 −0.73 0.07 −0.29 12.4 0 𝑆= (5) 0 9.5 0.56 0.59 0.56 0.09 0.09 𝑉' = (6) 0.12 −0.02 −0.12 −0.69 −0.69 After multiplying the matrices U, S, VT, we get the resulting matrix B, which is given in formula 7: 0.92 0.95 0.92 0.01 0.01 2.91 3.01 2.91 −0.01 −0.01 3.90 3.01 2.91 0.01 0.01 𝐵 = 4.82 5.00 4.82 0.03 0.03 (7) 0.70 0.53 0.70 4.11 4.11 −0.69 1.34 −0.69 4.78 4.78 0.32 0.23 0.32 2.01 2.01 Comparing matrix A with matrix B, it can be seen that the difference between the elements is very small, in other words, the result of multiplication B (after SVD) almost corresponds to the original matrix A (before SVD). As part of this work, the svds() function of the SciPy library [22] is used to implement the method of singular matrix factorization. It forms a sparse matrix of video ratings created by system users [23]. The sparsity of the matrix means that in a large number of videos, each user receives only a small part of the video, so most of the values in the matrix are empty. After processing the input data, the svds() function returns a matrix containing the approximate estimated prediction value for each video, filling the gaps in the matrix. Then, according to the user who requested the calculation recommendation (authorized on the website) to obtain the predicted rating data, the result set forms a sorted sample of the user's video ID (from best to worst) and prepares a list of URLs [24, 25]. The next stage was modeling the work of the educational platform using the algebra of algorithms [26].The first stage of the implementation of the algebra of algorithms is the description of unit terms and the synthesis of sequences, which is given below. Formed uniterms: O(c) – uniterm of course opening; O(l) - is the uniterm of the opening of the lecture; O(t) - is the opening unit term of the test; S(a) - is the uniterm of saving the answers of the cross-checker; S(r) - is the unit term for saving the user's results; G(rec) - is the unit term for the formation of recommendations; Sh(rec) – a unit term for displaying a list of recommendations; O(up) – user profile uniterm; Sh(pg) - is the uniterm of the formation of traversal graphs; O(ch) - is the chat uniterm; u1 – authentication data verification condition; u2 - is the unit term for selecting the completion of training stages or statistical data on the completion of training, u3 - is the unit term for selecting statistical data on the completion of training or chat. As a result of the use of the apparatus of the algebra of algorithms, the following sequences and eliminations were synthesized: S1 - sequence of learning stages: S2 – the sequence of saving the results of the training stages: S3 - recommendation generation sequence: S4 - sequence of system operation in case of availability of authentication data and selection of completion of training stages: S5 - sequence of system operation in case of availability of authentication data and selection of statistical data on training: L1 – checking for authentication data: L2 – selection of training stages or statistical data on training: L3 – selection of statistical data on training or chat: 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 [26], we subtract the common unit terms by the sign of the elimination operation and obtain the following formula of the algebra of algorithms: The given description of the work of the educational platform using the algebra of algorithms allowed us to optimize its structure and determine the main design direction. The next stage of the research was the design of the system using an object-oriented approach [27-29]. The design of a software product is necessary in order to create a clear technical task with the division of responsibilities, to see the capabilities and functionality of the program before the start of development, and to understand the algorithm of actions. In the absence of a project, there is a high probability of not getting a ready-made solution. Namely, at the beginning of the design, a use case diagram was created (Fig. 3). Figure 3: Use case diagram The following usage options are available to the “User”: “Register in the system”, which includes the extension “Report a registration error”; “Log in to the system” with the extension “Report an authorization error”; “Create/edit course”, which is available only to the teacher and includes “Create/edit lecture”, “Create/edit test tasks”, “Create/edit practical task” and “Add glossary”; “View educational materials”, which includes “Download glossary” and “Perform control tasks”; “To pass a test”; “View educational recommendations”; “View performance data” and “Interact interactively”, which includes “Write a message in the chat” and “View answers to questions”. The class diagram represents the static view of the program. It is used not only to visualize, describe and document various aspects of the system, but also to build executable software code. A class diagram describes the fields and operations of a class, as well as the constraints imposed on the system. This diagram is widely used in the modeling of object-oriented systems, because it is the only UML diagram that can be directly displayed in object-oriented languages. The constructed class diagram, which generally demonstrates the system architecture, is shown in Fig. 4. Figure 4: Class diagram The main classes that the system will contain are: ● Teacher. This class will store data that only teachers, working with the system under development, will have; ● Student. This class will store data that only students will have; ● User. This is a generalized class for teachers and students that will contain data that is common to them; ● Registration and authorization window. This class will read data from the appropriate windows, check it against the ones available on the system, and grant or deny the user access to the system; ● Data. Will include methods for accessing the database; ● Main interface. Will be responsible for switching from the menu to other windows; ● User profile. Will read the user’s data from the Data class and display it in the profile; ● Test results. Will store and display the formed list of educational recommendations.; ● Course window. This class will store the list of available courses, as well as their content: the corresponding lectures and tests for them; ● Chat window. It will provide communication between users by sending messages from one client to another. The sequence diagram for the developed system is shown in Fig. 5. Figure 5: Sequence diagram First, the user enters a login and password interacting with the registration and authorization window. In the future, the system receives user data from the database and verifies the data entered by the user, and grants the latter access. After that, the user can choose to switch to courses in the menu of the main interface. To display the content of the courses, the system opens a separate course window with which the user interacts directly. The course window accesses system data to query the list of courses, lecture content, tests and passes test results to an object of the same name that analyzes the user's responses and generates learning recommendations. The next stage was the construction of the system, which is implemented in the form of a cross- platform desktop application. The system is programmed using the Javascript language [30] and uses the MYSQL relational database management system [31]. Platform and involves the use of two software clients: one for teachers and the other for students. Each user of the system must have his own profile, and therefore windows for authorization and registration in the system were created. User data after registration is stored in the system database and checked when attempting to log in. When the user has successfully logged into the system, the main menu window opens (Fig. 6). Four main navigation buttons are available on it: "Courses", "Profile", "Chat" and "Video". Figure 6: System main menu window Teachers can create courses and add lectures to them using a text editor and locally from a computer, as well as test tasks (Fig 7) using the appropriate template. Figure 7: Creation of test tasks in the system Students can view the lecture materials, after which they can take tests (Fig. 8). Figure 8: Testing process in the system As a result of testing, the system analyzes the user's answers and generates an individual list of training recommendations for him (Fig. 9). Figure 9: An example of generating individual recommendations for a student Also, on the basis of the given recommendations, in order to better master the material, the user is shown the appropriate Ukrainian-language video content (Fig. 10) Figure 10: Recommended Ukrainian-language video content 3. Conclusion As a result of the conducted research, the existing methods and known systems that provide tools for learning programming languages were analyzed. As the analysis showed, today there are many software systems, but all of them are characterized by certain shortcomings, from paid access to the application to limited functionality, which makes the design and construction of a platform for learning programming languages an actual task. In the process of analyzing the subject area, the existing recommendation methods were reviewed and analyzed, and a joint filtering method was chosen, which is implemented through a unified layout of the system user's video settings matrix. Object-oriented design of the software system was carried out by constructing a set of diagrams in UML notation, three of which (diagrams of use cases, classes and sequence) are presented in the work. Based on the conducted research, the design and implementation of the platform was carried out. The created software product works in prototype mode and implements the described functionality. Further research will be aimed at creating a mobile version of the system, eliminating conflicts, and expanding functionality in accordance with the specified requirements. 4. References [1] С. Simone, L. Howles, Designing the Online Learning Experience: Evidence-Based Principles and Strategies, Stylus Publishing, 2021 [2] N. Dabbagh, R. Marra, J. Howland, Meaningful Online Learning: Integrating Strategies, Activities, and Learning Technologies for Effective Designs, [3] K. Rudestam, Handbook of Online Learning in Higher Education, Fielding University Press, 2021 [4] C. Petzold, Code: The Hidden Language of Computer Hardware and Software, Microsoft Press, 2022 [5] A. Dyro. Adaptive Learning In Education: The Next Gen Of Educational eContent. URL. https://elearningindustry.com/adaptive-learning-in-education-next-gen-econtent [6] S. Kosslyn, Active Learning Online: Five Principles that Make Online Courses Come Alive, Alinea Learning, 2021 [7] S. Foreman, The LMS Guidebook: Learning Management Systems, Association for Talent Development, 2017 [8] 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. [9] Surgent CPA Review. URL. https://www.surgentcpareview.com [10] Knewton. URL. https://www.knewton.com [11] CogBooks. URL. https://www.cogbooks.com [12] M. Wetten, E. Serafin. Adaptive Learning Pilot – Reflections on Student Experience. URL. https://www.academia.edu/13912408/Adaptive_Learning_Pilot_-_Reflections_on_Student _Experience [13] DreamBox. URL. https://www.dreambox.com [14] J. Cook. Exercise your coding skills: rejuvenated platform empowers thousands of developers to learn a new language for free. URL. https://bit.ly/2pHq0Hr. [15] Get really good at programming. URL. https://exercism.io/. [16] V.Brasseur. Improve your programming skills with Exercism. URL. https://red.ht/37jvJEj. [17] S. Tilley. System Analysis and Design (MindTap Course List), Cengage Learning, 2019. [18] J. Valacich, J. George, J. Hoffer. Modern Systems Analysis and Design, Pearson, 2020. [19] Adomavicius, G., Tuzhilin, A., Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. //IEEE Transactions On Knowledge And Data Engineering, 2015,17(6), pp.734-749. [20] Mediakov O., Basyuk T. 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. [21] H. Nelson, Essential Math for AI: Next-Level Mathematics for Efficient and Successful AI Systems, O'Reilly Media, 2023 [22] J. Nunez-Iglesias, S. Walt, H. Dashnow, Elegant SciPy: The Art of Scientific Python, O'Reilly Media, 2017 [23] M. Cohen, Practical Linear Algebra for Data Science: From Core Concepts to Applications Using Python, O'Reilly Media, 2022 [24] O. Naum, L. Chyrun, O. Kanishcheva, V. Vysotska, Intellectual System Design for Content Formation. In: Computer Science and Information Technologies, Proc. of the Int. Conf. CSIT, 2017, pp. 131-138. [25] Basyuk T., Vasyliuk A. Approach to a subject area ontology visualization system creating // CEUR Workshop Proceedings. – 2021. – Vol. 2870 : Proceedings of the 5th International conference on computational linguistics and intelligent systems (COLINS 2021), Lviv, Ukraine, April 22–23, 2021. Volume I : main conference. – Р. 528–540. [26] V. Ovsyak, ALGORITHMS: methods of construction, optimization, probability research. – Svit, 2001. [27] S. Sundaramoorthy, UML Diagramming: A Case Study Approach, Auerbach Publications, 2022 [28] P. Mrzyglocki, UML Summarized: Key Concepts and Diagrams for Software Engineers, Architects and Designers, Independently published, 2023 [29] B. Shamile, Software Development with UML Diagrams, Independently published, 2022 [30] D. Flanagan, JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language, O'Reilly Media, 2020 [31] D. Nichter, Efficient MySQL Performance: Best Practices and Techniques, O'Reilly Media, 2022.