Teaching cloud computing: a software engineering perspective
This short papers discusses the issues of teaching cloud computing from a software engineering rather than a business perspective. It discusses what topics might be covered in a senior course on cloud software engineering.
đĄ Research Summary
The paper argues that teaching cloud computing from a softwareâengineering perspective, rather than a purely businessâoriented view, better prepares senior undergraduate students for the realities of modern software development. It begins by critiquing existing curricula that focus mainly on service models (IaaS, PaaS, SaaS), costâsaving case studies, and highâlevel business benefits. While such topics are valuable, they often leave students without a deep understanding of the technical challenges involved in building, deploying, and maintaining cloudânative applications.
The authors propose a twelveâweek, projectâcentric course that integrates theory, handsâon labs, and teamâbased software engineering practices. Learning outcomes are explicitly defined: students should be able to provision virtualized and containerized infrastructure, design microservice architectures, implement continuous integration/continuous delivery (CI/CD) pipelines, automate testing and monitoring, model performance and cost, and apply security controls such as identityâandâaccess management and secret handling.
Curriculum structure is detailed week by week. The first two weeks introduce cloud fundamentals and virtualization concepts. Weeks three and four cover Docker and Kubernetes, emphasizing container orchestration, service discovery, and scaling policies. Weeks five and six shift to microservice design patterns, API gateways, and resilience techniques (circuit breakers, bulkheads, graceful degradation). Weeks seven and eight focus on infrastructureâasâcode (Terraform, Ansible) and CI/CD tooling (Jenkins, GitLab CI, GitHub Actions). Weeks nine and ten introduce observability stacks (ELK, Prometheus, Grafana) and automated testing frameworks (test containers, smoke tests). The final two weeks address cost modeling, security hardening (IAM policies, network segmentation, secret management), and a capstone project where teams must define a Service Level Agreement (SLA), implement faultâtolerance mechanisms, and present a costâperformance analysis.
To support the labs, the course leverages a hybrid infrastructure: free tiers of public cloud providers (AWS, Azure, GCP) combined with an onâcampus OpenStack sandbox. All lab environments are delivered as Docker images and Helm charts, enabling reproducibility. Assignment submission and grading are automated through GitHub Classroom, with static analysis, deployment success rates, and SLA compliance feeding into a quantitative score. The assessment scheme allocates 30âŻ% to a written exam, 40âŻ% to lab assignments, 20âŻ% to the capstone project, and 10âŻ% to presentations and reports, ensuring a balanced evaluation of both conceptual knowledge and practical competence.
The paper also discusses pedagogical challenges. Rapid evolution of cloud services can render course material obsolete; the authors mitigate this by treating the syllabus as a âliving documentâ that incorporates recent openâsource projects, blog posts, and conference talks rather than static textbook chapters. Cost management is addressed by using provider free credits and limiting resource quotas. To bridge gaps in prerequisite knowledge, a preâcourse bootâcamp on Linux, networking, and basic programming is recommended.
Finally, the authors outline future research directions. They plan longitudinal studies tracking student outcomes such as job placement, employer satisfaction, and selfâreported confidence in cloudânative development. They also envision extending the curriculum to emerging paradigms like serverless computing, edge computing, and AI/ML pipelines, thereby keeping the program aligned with industry trends.
In summary, the paper provides a concrete, evidenceâbased roadmap for integrating cloud computing into a softwareâengineering curriculum. By emphasizing handsâon infrastructure automation, microservice design, DevOps practices, and nonâfunctional requirements, the proposed course equips graduates with the endâtoâend skills needed to design, build, and operate robust cloudânative systems in professional settings.
Comments & Academic Discussion
Loading comments...
Leave a Comment