ADA502 Cloud Computing and Software Systems
Course description for academic year 2024/2025
Contents and structure
Cloud computing and the Internet-of-things (IoT) constitute key enabling technologies for digital transformation and most software systems today involve the application of cloud computing services interoperating with IoT devices equipped with sensor and actuators.The course covers methodology and technologies that are used to develop modern software systems, which employ a combination of web application front-ends, cloud-based compute-, middleware-, storage- and security services, and IoT devices.
Technologies, that will be covered include databases (relational and non-relational), networking protocols (TCP, HTTP, WebSockets), messaging (MQTT), distributed architectures (REST APIs, microservices), as well as continuous integration and deployment using Git, Docker, and Kubernetes.
The students will gain experience working with major cloud platforms such as Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform (GCP). The programming language used in the course will predominantly be Python.
Learning Outcome
Knowledge
The student
- can explain cloud computing models and the services provided by common cloud computing platforms
- can relate the software architectural principles providing the foundation for integrating cloud computing and IoT
- has a comprehensive overview of the protocols and middleware used to develop IoT and cloud computing software
- can enumerate the components of IoT devices and associated computing and communication capabilities
Skills
The student
- can apply frameworks and programming models supporting the deployment of software components on cloud computing platforms
- can develop web applications providing access to cloud-based applications and data services
- can assess the applicability of various cloud-based database/storage paradigms for storing sensor-, application-, and meta-data
- can integrate IoT devices with sensor and actuators into cloud-based software systems solutions by applying appropriate network programming protocols and technologies.
General competency
The student
- can assess the applicability of cloud-based computing services and middleware in the development of software systems
- can identify safety and security requirements and apply standard technology solutions in systems employing cloud computing services and IoT devices
- can apply automated test and deployment pipelines in the development of software systems using state-of-the-art technologies such as containers.
Entry requirements
None
Teaching methods
Lectures, labs on programming, and group work.
Compulsory learning activities
Software product and software technology assignments and one final report based on the assignments.
In order to take the examination all the course requirements must be approved.
The number of assignments will be announced at the beginning of the semester.
Assessment
30-minutes oral exam. Grading scale A-F, where F is a fail.
Examination support material
None
More about examination support material