The use of cloud computing technology in professional training of future programmers

. The article provides a brief analysis of the current state of the study of cloud technologies by future software engineers at foreign and Ukrainian universities. The author experience in the application of cloud technologies in the training of future software engineers in Ukraine is presented. The application of cloud business automation systems, online services to monitor the implementation of the software projects, Google services for collaboration, planning and productivity while studying professional disciplines and carrying out diploma projects is described. Based on the survey conducted at Stackoverflow, the state of application of cloud technologies by software engineers around the world has been analyzed. The cloud technologies that are not studied at the analyzed universities of Ukraine and those that are not popular with software developers in the world, but studied at Ukrainian universities by future software engineers are outlined. Conclusions are made on the modernization of training programs for future software engineers. Topics for the study of cloud technologies by future software engineers in the content of professional disciplines are proposed.

IT professionals, who are able to work with this technology. Therefore, there appears a need to study cloud computing in the process of training of future programmers in the institutions of higher education.
The aim of the research is to compare the current state of the future programmers training for cloud computing during their study in the institutions of higher education with the labor market requirements for the training of IT professionals in the field of cloud computing.

Brief analysis of the current state of future programmers' training for the use of cloud computing technology
Due to the development of cloud computing technology, in universities, where future programmers are trained, courses on cloud computing are being introduced.
In particular, at the University of Liverpool at the Faculty of Humanities and Social Sciences, students are introduced to cloud-based systems while doing their Master's Degree and postgraduate study [5]. In addition, for all students, The University of Liverpool provides a range of cloud-based tools and platforms, allowing them to access their network drive (M drive) and campus applications when they are off-campus [14]. According the Nanyang Technological University curriculum, first-year Bachelor students have the opportunity to study such elective course as Cloud Computing and its Applications [2]. Such issues are not fully covered in the process of future programmers' training in Ukraine. Only in the last few years the students of Ukrainian universities have been offered to study cloud computing technology. It is proved by the results of Google Search and analysis of curricula of Ukrainian universities (table 1).
Thus, future programmers study cloud computing technology during their professional training in the institutions of higher education at different educational levels (Bachelor's, Master's, Doctor's). It has to be mentioned that from 2 to 6.5 ECTS credits are allocated for these courses. Content of the courses includes the study of different cloud systems (IaaS, PaaS, SaaS), virtualization and distributed systems, private cloud systems (Microsoft System Center, OpenStack), cluster solutions, grid systems, cloud platforms (Microsoft Azure, Amazon Web Services, Google Cloud Platform, Google Compute Engine, IBM Cloud).

The use of cloud computing technology in the professional training of future programmers in Ukraine
It has to be said that cloud technology is used in the training of future programmers in Ukraine. In particular, for enhancing communication [23], in STEM education [13,15,24], for organizing laboratory and practical classes [4, 11, 16, 18-21, 27, 28], for studying databases by future IT-specialists [12,26], etc. Due to the demand of the labor market in programmers, who are capable of working with cloud computing technology, since 2016 in Bohdan Khmelnitsky Melitopol State Pedagogical University the Department of Informatics and Cybernetics has introduced a course "Cloud Technology" for the students undergoing their training in 122 Computer Science. In addition to the introduction of the course "Cloud Technology" into the process of future programmers' gLite, Globus Toolkit training, the lecturers of the Department of Informatics and Cybernetics constantly use a variety of cloud technology while teaching professional courses to the students of the specialty 122 Computer Science and 015.39 "Vocational Education. Digital Technology".
In particular, while doing the course "IT Project Management" future programmers get acquainted and use cloud business automation systems (Gantter, Basecamp, Bitrix24) in laboratory classes and in their self-study. The students can use the service of placing the system Bitrix24 in the cloud.
After setting up the system and introducing students as its users, the teacher can plan the work of students and manage tasks, controlling the timely completion of these tasks. Students can manage the time and control other resources expenditures for the completion of class assignment. This way they practically learn the term "deadline", learn how to manage their time effectively. The trackers, used in the Bitrix24 system, help to monitor the completion of tasks, keeping to deadlines, and allow users to easily control the work of subordinates. The advantage of the system is that the tasks can be represented in the form of a Gantt chart -a classic bar chart, which clearly shows the time frame of the tasks in the sequence in which they must take place during the project.
Looking at the chart, both a teacher and a student immediately see how many tasks there are on the project, how many of them are completed and how many are in progress, which tasks are overdue, and which of them do not have a deadline. The system also allows users to make and display performance reports; it allows a teacher to identify how well each student is working.
It is also necessary to use information systems to monitor the implementation of the software project. Currently, there exist free systems that are just as good as fee-paying systems: Git based on GitHub or Bitbucket. As it is noted in [3,22], the use of Git and GitHub helps not only to track changes in versions, but also to show students the ways to organize and collaborate on projects using practice-oriented methods. GitHub [25] is positioned as a web service for hosting projects using the Git version control system, as well as a social network for developers. With this service, students can create an unlimited number of repositories, each of which is provided with a wiki, a tracking system, and there is also an opportunity to review code and collaborate on a project.
While doing professional courses, future software engineers, working on a software project, use the following Google cloud services: Google Calendar -for work planning; Google Meet and Google Chat -for voice and text messaging, Google Groups -for ads and group discussion; Google Sites -for creating an electronic portfolio, for content management and hosting; Google Drive -for saving files; Google Docs -for work with documents; Google Keep -for teamwork and productivity; Google Form -for creating your own surveys.
While doing the lecture course "Software Testing" future programmers are invited, using a cognitive approach, to create metal maps based on the course materials. For example, this is how a mental map of testing types was developed (figure 1).
While doing this course in laboratory classes, students are taught to create UML diagrams and tests for software based on UML diagram variants. To do this, they use such web platforms as Lucidchart, Creately, Draw.io, Gliffy, which have the functions of collaboration (access or editing).
We consider the use of cloud technology in the future programmers' professional training to be an appropriate one when preparing their graduation work (diploma paper). The students can present the text of the Diploma thesis to the teacher by means of Google Docs. The functions of joint viewing and editing allow the teacher to monitor student's progress in writing the thesis.
It is advisable for a teacher, who is reviewing several thesis projects, done by future programmers, to use Git and GitHub. They provide a teacher with the following opportunities: to put the tasks and assessments online; to look through student listings (program codes), monitoring the time of their placement and authorship; to set a deadline, i.e. to ban the recording of works from a certain moment; to comment not only on the whole project, but also on certain lines of the program; to point out shortcomings in the work performed and give instructions for tasks. Working with GitHub, a student can use his or her own and shared repositories at any time; automatically receive checking reports and teacher's comments.
The methodology of working with Git requires a teacher to: 1) clearly formulate the task, 2) set this task to the developer (student), 3) check the student's understanding of the task, 4) periodically check the result of the task completion during the student's work on it, 5) send back an unsatisfactory result to the developer for revision, 6) mark a satisfactory result, 7) carry out the final check of the software product developed by a student (students), 8) in case of completion close the task as a completed one, otherwise send it for revision.
The functions of a student, using Git, are to receive a task from a teacher, start doing it, present the result in the system, and if the task is returned for revision -to review it and send it back to the system.
The algorithm of work with Git and the general picture of what is going on in the process of students' and teacher's work on the project, can be presented schematically ( figure 2).
Work on such algorithm is conducted as follows: 1) a teacher sets tasks for a student (developer), 2) a student works on the actual branch of the project and makes it a local branch, 3) in this branch a student solves the task, 4) a student sends the branch with the completed task to the working repository, 5) a teacher takes this branch from the working store and checks it, 6) if the task is completed correctly, a teacher merges this branch with the current branch of the project in the main repository or allows the student to do it.
Using cloud services in this way, future software engineers learn to work with the technology which they will use in their future professional activities.

Labor market analysis in terms of professional training of IT specialists in the field of cloud computing technology
In the process of professional training of future programmers we are aimed at the fact that the training of future programmers should be a modern one and they should get acquainted with the latest software and the latest technology. In this regard, we analyzed Stackoverflow data as for the tools the developers use. Based on the analysis of the Developer Survey, conducted at Stackoverflow [1], we have identified which cloud technology is used by programmers in the world (table 2).

Conclusions
Based on the comparison of this survey data with the analysis of the curricula of the above mentioned universities (table 1), we have identified that technology that is not studied in the target universities of Ukraine and technology that is not popular with software developers in the world but taught in Ukrainian universities (table 3). Therefore, according to the analysis, in our opinion, curricula for future programmers should be revised and modernized in accordance with current trends in the IT industry. Curricula should include topics, aimed at acquaintance with cloud computing technology used in programming. It is recommended to introduce a separate course (for example, "Cloud Technology" or "Cloud Computing") or separate topics into the process of professional training. Examples of such topics are given in the table 4).
In addition, in the process of future programmers' training the attention should also be paid to the use of modern general-purpose cloud technology while studying professional disciplines, namely: services for work planning, messaging, teamwork, creating web resources, saving files, conducting surveys etc. The introduction of a wide range of cloud technology in future programmers' training will increase the quality of students' preparation for future professional activities.