Propuesta de temario en un curso en cloud computing basado en competencias para la ESCOM-IPN

At the present time where the fourth industrial revolution is brewing, it is essential for careers such as computer engineering and the like; coupling the curricular contents of the study plans to be consistent with their achievement. The objective of this work is to find the most relevant contents for a Cloud Computing course, in terms of the proposals generated by the most recent studies on the subject, in order to provide students with the competencies that contribute in convenient ways to their professional development In the area. Different proposals for syllabi published in research articles were analyzed and based on their impact on the competences required by the market, the topics that made up this proposal were selected. The different approaches presented by each of the investigated proposals were notorious, however, the most relevant of all of them has been brought together in the proposed agenda.


Introduction
A fundamental task of every educational institution in the preparation of its students is to propose an academic plan that responds to the needs of today's society, which is beginning to go through a new stage known as the fourth industrial revolution or industry 4.0. This is characterized by the development of important technological advances in the areas of artificial intelligence, massive data processing and huge interconnection of devices and computer systems that act as providers of digital information.
This new technological revolution, as has happened with its predecessors, promises to streamline production processes, which will have repercussions on economic and social improvements, hence it is necessary to review and update the programs of the different subjects that make up the courses offered.
Such is the case of computing in the cloud or cloud computing (CC), a technological component that allows the collection of data, its massive processing and its distribution and exchange between the different interconnected devices.

Problem Statement
In order to update the topics that make up the compulsory subject of Distributed Systems taught in the seventh semester of the engineering career in Computer Systems of the Higher School of Computing of the National Polytechnic Institute (Mexico) without modifying the existing curriculum, we propose to find the most relevant content in terms of the proposals generated by the most recent studies on the subject to provide students with the skills that contribute to their professional development in this area.

Background
Since 1982 in Mexico there is a National Association of Education Institutions in Information Technologies (Aniei), which has, among other functions, to guide and recommend higher education institutions in the area of information technology and computing on the relevance of the topics in the study plans to train competent professionals who contribute to the development of the country.
La Aniei -in a recent publication on IT professional profiles (Sanchez et al., 2019)recognizes that there is a trend towards cloud computing due to the fact that various technologies such as artificial intelligence, big data and the internet of things they need this service as an accessible platform for their implementation.
Traditionally, computing services and their consumption had been carried out through distributed applications designed ad hoc; however, computing in the cloud exposes a paradigm shift that forces us to review related courses, as is the present case.
Cloud computing offers great technological advantages, among which the low cost associated with the solutions implemented in IT stands out, since instead of acquiring an expensive infrastructure of equipment and licenses, only the necessary is rented while paying for the resources busy on demand. The economic impact is also growing, with a study by Gartner forecasting revenue from cloud computing of $ 302 billion.
Statistics reported on some portals (eg, Galov, December 4, 2020) indicate that providing access to data from any location is the main reason why companies adopt cloud computing. Likewise, it is indicated that approximately one third of the budget that companies allocate to IT is for cloud services, while experts indicate that in 2019 60% of the workload was executed in the cloud. The latter affects an optimization in energy use and a Vol. 9, Núm. 18 Julio -Diciembre 2020 reduction in expenses for the acquisition of hardware, which reduces the carbon footprint and allows small and medium-sized companies to acquire technology.
However, despite the importance of the topic of cloud computing, there are currently serious deficiencies in the preparation of professionals trained in the area. As Foster et al. (2018), not only is there a UK skills shortage in the area, but also a global research survey among academics and industries indicates that organizations are experiencing losses due to a lack of experts. Therefore, a practical approach is required in the agenda to acquire the necessary experiences for the good performance of the graduate professional.

Cloud computing
For the definition of cloud computing we will use the one offered by the National

Institute of Standards and Technology (NIST):
Cloud computing is a model for enabling convenient, ubiquitous, on-demand network access to a shared pool of configurable computing resources (for example, networks, servers, storage, applications, and services) that can be provisioned and released. quickly with minimal administration effort or service provider interaction (Mell y Grance, 2011, p. 2).
This model is made up of three services known as Software as a service (SaaS), Platform as a service (PaaS), and Infrastructure as a service (IaaS). In SaaS, the service includes the execution of software for the user with the provider's infrastructure (eg, the Gmail mail service, the Google Docs text editor and the Dropbox online storage service, among others). In PaaS, the service provider offers a platform on which the applications developed with the API and the libraries of the same provider are executed, so that it is possible to create applications such as those made with web .net, running on Windows cloud instances Azure. Finally, in IaaS, the service consists of virtual hardware infrastructure, such as virtual machines, storage space and connection networks, which can be configured and executed by users.
There are also three basic models of cloud access: public, private, and hybrid. In the case of the public, a provider provides the infrastructure and services, which are available by subscription to any interested user via the Internet. In the private model, the cloud is available to users within a company thanks to its own data center. Finally, in hybrid clouds we have a Vol. 9, Núm. 18 Julio -Diciembre 2020 mix of private and public clouds, which begin to be used when the capabilities of the private cloud are insufficient.
Cloud computing is the product of decades of research and development in different technologies including virtualization, computer networks, and distributed computing systems, through cluster development and mesh computing (grids), as shown in figure 1.

Study cases
Teaching cloud computing comes with a number of challenges, including the diversity of background knowledge that instructors need to master. In this sense, it is possible to affirm that cloud computing is a multidisciplinary area due to the fact that concepts from various fields are involved, such as operating systems, databases, computer networks and distributed systems. For this reason, a cloud computing course is studied at the advanced levels of careers that do not specialize in this paradigm, as is the present case.
Vol. 9, Núm. 18 Julio -Diciembre 2020 Next, we will expose the revised antecedents that include the proposed topics, as well as the most relevant associated competencies; later, we will make the selection of the most suitable topics based on their impact on the needs of the growing market. We have expressed the general competencies for each case study with the intention that each educational center develop its specific competences based on the criteria defined by the collegiate body of teachers.
In the research by Foster et al. (2018) indicate that modern cloud technologies include various tools that are constantly changing due to the competition that exists between cloud service providers, which not only generate new designs and implementation of concepts, but also produce changes in graphical interfaces and command lines. This forces instructors to update frequently with steep learning curves, which can lead to reluctance on the part of those involved. This, in addition, causes that the graphic material elaborated and the textbooks are losing validity semester by semester, which makes it difficult to maintain an updated bibliography.
Another element of difficulty to consider is the number and diversity of cloud service providers, as each offers different tools and technologies, as well as its own interfaces. In Foster et al. (2018) recommend using more than one cloud service provider to focus on concepts and avoid mechanization. Some of these providers and associated pages are listed in Figure 2. Vol. 9, Núm. 18 Julio -Diciembre 2020 Figura 2. Proveedores de servicios en la nube Fuente: Foster et al. (2018) In the same work, the following areas of knowledge are proposed as the most relevant: • Fundamental concepts of the cloud.
• Computational abstractions in the cloud.
• Cloud storage resources.
• Resources of interconnection networks in the cloud.
• Elasticity and scalability in the cloud.
• Development, monitoring and maintenance in the cloud.
• Orchestration in the cloud.
• Software development using cloud API.
• Cloud programming models and Frameworks.
• Security, privacy, policies and ethics in the cloud.
• Internet of things.
• Artificial intelligence and cloud-based machine learning.
Vol. 9, Núm. 18 Julio -Diciembre 2020 As can be seen, in the last two topics proposed, computing in the cloud is a key technology that serves as a support platform for other important areas of IT, such as artificial intelligence, big data and the internet of things.
On the other hand, in the work of Chen et al. (2012) proposes a basic cloud computing course to use technologies that support different subjects that make up a study plan for largescale data processing, analysis and visualization. A map with the technologies and associated courses is shown in Figure 3. MapReduce is a technique developed by Google to process large amounts of data efficiently, which makes it relevant for use in big data, and is built on a distributed file system.
In view of its relevance, cloud service provider AWS developed an implementation of Vol. 9, Núm. 18 Julio -Diciembre 2020 MapReduce known as Elastic Map Reduce. Although it is not reported at work, it is possible to infer that if a laboratory is available or if students have personal computers, it is possible to process large amounts of data without having to pay a cloud service provider.
Likewise, in the work Rodríguez et al. (2014), the following topics are proposed as fundamental in a cloud computing course: • Introductory concepts.
• Deployment models: public, private and hybrid.
• Virtualization and data centers.
• HPC architectures and clusters.
• NoSQL database and big data.
• Cloud programming and software environments.
• Emerging software environments: Open Source, Eucalyptus and Nimbus.
• Life cycle and methodology for cloud computing.
• Practices that can be on PaaS or SaaS.
• Legal aspects of cloud computing, fundamentally SLA for cloud (Service Level Agreement).
With a total assigned time of 23 hours both for the theoretical part and for some associated practices, in this case a set of minimum topics was thought to support different subjects of the study plan. Among the fundamental competencies, the student must have knowledge of the fundamentals of cloud computing, the associated assistive technologies, their advantages and limitations, the techniques for creating and using the cloud, and the fundamentals of MapReduce as a programming model.
In the work of Border (2013) it is emphasized that the strength of developing applications in the cloud does not come from implementations on a single server or from working with a single technology, but from implementing solutions that include multiple services on different servers located in centers. data from around the world. For this reason, the author emphasizes the importance of students having the necessary knowledge to manage the way the different servers interact. From this perspective, the author places the following technologies and services as fundamental to be reviewed in a cloud computing course: Vol. 9, Núm. 18 Julio -Diciembre 2020 • Firewalls, which includes knowledge of the use of ports and protocols to monitor traffic.
• Addressing and subnetting with the purpose of configuring single data entry and egress points.
• Encryption to solve the security issues of data traveling to and from the cloud.
• • Scripting to facilitate the use of languages such as Java, .NET, and PHP in addition to the graphical interface.
• Storage architectures that allow knowing the forms of replication, since this is one of the most important reasons to use the cloud.
• Virtualization and the implications it has.
• Segregation of services, which involves issues such as traffic distribution and storage of system images for migration.
• Characterization of the workload on the servers to prevent the barrappoint effect.
• Federated identity for business-to-business management of cloud resources.
• Load balancing and its management in the cloud.
• Content delivery network to allow users to access content on closer servers.
As can be inferred, in this case there are topics and competencies that require those seen above, and which focus on the management of the resources that make up the different technologies provided by cloud service providers.
In the study by Breivoid and Crnkovic (2014) it is mentioned that, in the area of cloud computing, students feel more motivated to learn when they observe how the concepts are applied in the real world. In other words, in addition to showing them the cases where they have interacted with well-known cloud applications such as social networks, videoconferences, data stored in the cloud, etc., they should become familiar with business and enterprise-level areas where the cloud computing, for example: • In data analysis and computation where large parallel processing capacities are required, and where it is possible to use tools such as storage and elastic computation to be able to carry it out.
• In software development and testing where the cloud computing infrastructure can be used to realistically model its implementation.
Vol. 9, Núm. 18 Julio -Diciembre 2020 • Global business-to-business collaboration to share information and data as well as process and tool development, made possible by cloud computing.
The authors recommend introducing these examples in order to help the student understand the abstract nature of cloud computing. Among the key knowledge areas that Breivoid and Crnkovic (2014) mention are the following: • Architecture for the cloud, which includes those that meet system requirements such as availability, interoperability, performance, maintainability, performance, reliability, and scalability.
• Design for resilience, which involves the inclusion of elements such as redundancy, fault tolerance, and associated techniques such as dynamic backups and recovery.
• Security in the cloud, which implies knowing the advantages and disadvantages of having a cloud service provider, its security threats and possible solutions.
• Migration to the cloud, which includes the ability to evaluate the costs and design decisions necessary for an organization to carry out this task.

Discussion
A model of the cloud computing architecture is presented in the work of Demchenko et al. (2013), which has six layers (figure 4). In this model we can see that, in the cases reviewed so far, the topics covered correspond to layers three, four and five. In other words, everything that has to do with the orchestration of virtual services, cloud services (infrastructure, platforms, applications, software) and access / delivery services. Seen from this perspective, it makes sense to expose the topics according to this grouping to jointly review those that are in the same layer.
The following is the proposed syllabus for a semester cloud computing course, bearing in mind that competencies in initial topics are essential to achieve competencies in subsequent topics. Likewise, and for the reasons stated in the case studies, it has been avoided to specify the cloud service provider, which will depend on the decision of the teacher or group of teachers in charge of the course, although it is recommended to use two or more Elasticity and scalability.

6.4.
Resources of interconnection networks.

Conclusions
At the end of this research we have been able to verify, through the articles reviewed, an enormous concern of the academic community to find the topics that best meet the common objective of providing the best tools to students to successfully face the associated development areas with this fourth industrial revolution.
Definitely, one of the most complicated problems that educators face in the area of computing in the cloud has to do with the speed with which the tools change and are updated, as well as the great variety of providers, since each of they offer different interfaces and procedures. These changes are driven by market demands and competition among cloud service providers. This in turn causes that there is no consensus on which is the best provider of cloud services in pedagogical terms, that is, there is no one provider that covers all the available technological tools or a fixed agenda that is better adapted to the multiple market needs.
It is possible to observe at least three trends in terms of how to teach cloud computing to undergraduate students: the first is to group a basic core of knowledge that allows to form the necessary skills to address other topics that are part of this computer revolution, such as artificial intelligence, big data and the internet of things. The second tends to address issues related to massive data computing, given the importance of technological areas such as data mining or big data. And a third related to the management and interconnection of cloud services, in order to provide the desirable characteristics of a distributed system such as fault tolerance, replication, high availability and reliability. Throughout this work we have tried to Vol. 9, Núm. 18 Julio -Diciembre 2020 bring all of them together in a single agenda, which we hope will have the necessary impact on our future professionals.

Future lines of research
As future lines of research are to make an evaluation of all possible cloud service providers, to locate the most pertinent in the support of this agenda, mainly due to their adaptability, ease of use and availability characteristics.
Another area of research would focus on finding the most efficient mechanisms to incorporate new technological developments provided by cloud service providers, employing didactic strategies for education 4.0, which allow to mitigate the overload for teachers and students in the pronounced curves of learning required in this field.