Module Code: |
H9CPP |
Long Title
|
Cloud Platform Programming
|
Title
|
Cloud Platform Programming
|
Module Level: |
LEVEL 9 |
EQF Level: |
7 |
EHEA Level: |
Second Cycle |
Module Coordinator: |
Horacio Gonzalez-Velez |
Module Author: |
Adriana Chis |
Departments: |
School of Computing
|
Specifications of the qualifications and experience required of staff |
MSc and/or PhD degree in computer science or cognate discipline. Experience lecturing in the field. May have industry experience also.
|
Learning Outcomes |
On successful completion of this module the learner will be able to: |
# |
Learning Outcome Description |
LO1 |
Demonstrate in-depth knowledge of core cloud-based services. |
LO2 |
Critically analyse advantages and disadvantages of different cloud-based architectures and technologies/services. |
LO3 |
Formulate and produce new code libraries that implement advanced programming constructs in order to create secure, dynamic, configurable, robust, scalable cloud-based applications. |
LO4 |
Construct and present a complex dynamic cloud-based application through selecting relevant cloud related architectural patterns and services taking into account the evaluation and assessment of application design, development, and testing methodologies. |
LO5 |
Identify and ethically apply best practices for continuous integration, delivery and deployment of cloud-based applications. |
Dependencies |
Module Recommendations
This is prior learning (or a practical skill) that is required before enrolment on this module. While the prior learning is expressed as named NCI module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).
|
No recommendations listed |
Co-requisite Modules
|
No Co-requisite modules listed |
Module Content & Assessment
Indicative Content |
Introduction to Cloud Concepts
Review of different architectures for distributed computing (e.g. client-server, multitier architecture); review of versioning control.
Cloud Delivery Models. Cloud Core Services (e.g. computation, storage, databases). Elastic Load Balancing. Auto-Scaling.
|
Introduction to Developing/Programming on Cloud
Systems Development Lifecycle. Working with a Cloud SDK. Errors and Exceptions. Application and Infrastructure monitoring.
|
Deployment
Continuous Integration and Continuous Deployment. Deployment and Testing Strategies.
|
Introduction to Identity and Access Management
Overview of IAM. Authentication with IAM. Authorization with IAM
|
Object Storage Services
Introduction to Cloud Storage Services. Protecting Data and Managing Access to Cloud Resources.
|
NoSQL Services
Introduction to NoSQL. Partitions and Data Distribution. Read/Write Throughput. Streams and Global Tables.
|
Caching for Scalability
Caching Overview. Caching Strategies. Explore different caching services (e.g. CloudFront, ElastiCache).
|
Containers
Introduction to Containers. Containers vs. Hardware Virtualization. Microservices – Use Case for Containers.
|
Application Integration/Messaging Services
Introduction to Message Queues. Investigate different message queues services (e.g. Amazon SQS, Amazon SNS).
|
Serverless Computing
Introduction to Serverless Computing, Deployment of Serverless Applications. Functions as a Service (FaaS) platform. Execution Models for Invoking FaaS. Overview of Deploying FaaS Functions.
Case Study: an implementation of a FaaS platform (e.g. AWS Lambda: Overview of AWS Lambda, Execution Models for Invoking Lambda Functions, AWS Lambda Permissions, Authoring and Configuring Lambda Functions, Deploying Lambda Functions).
|
Cloud-based RESTful API
Application Programming Interfaces. Creating a RESTful API. Testing a RESTful API. Deploying a RESTful API. Invoking a RESTful API. Monitoring a RESTful API.
|
Orchestration/Workflow Coordination in Distributed Applications
Workflow Coordination in Distributed Applications
|
Assessment Breakdown | % |
Coursework | 60.00% |
End of Module Assessment | 40.00% |
AssessmentsFull Time
Coursework |
Assessment Type: |
Project |
% of total: |
60 |
Assessment Date: |
n/a |
Outcome addressed: |
1,2,3,4,5 |
Non-Marked: |
No |
Assessment Description: Develop a complex dynamic cloud-based application through selecting relevant cloud related architectural patterns and cloud-based services. |
|
End of Module Assessment |
Assessment Type: |
Terminal Exam |
% of total: |
40 |
Assessment Date: |
End-of-Semester |
Outcome addressed: |
1,2 |
Non-Marked: |
No |
Assessment Description: The exam will assess learners’ knowledge and understanding of cloud technologies. |
|
Reassessment Requirement |
Coursework Only
This module is reassessed solely on the basis of re-submitted coursework. There is no repeat written examination.
|
Reassessment Description This module is reassessed solely on the basis of re-submitted coursework which evaluates all the learning outcomes.
|
NCIRL reserves the right to alter the nature and timings of assessment
Module Workload
Module Target Workload Hours 0 Hours |
Workload: Full Time |
Workload Type |
Workload Description |
Hours |
Frequency |
Average Weekly Learner Workload |
Lecture |
No Description |
36 |
Per Semester |
3.00 |
Practical |
No Description |
24 |
Per Semester |
2.00 |
Independent Learning Time |
No Description |
190 |
Per Semester |
15.83 |
Total Weekly Contact Hours |
5.00 |
Module Resources
Recommended Book Resources |
---|
-
Ian Foster, Dennis B. Gannon. (2017), Cloud Computing for Science and Engineering, MIT Press, p.392, [ISBN: 9780262037242].
| Supplementary Book Resources |
---|
-
Sean Keery, Clive Harber, Marcus Young. (2019), Implementing Cloud Design Patterns for AWS, Second Edition. Packt Publishing, [ISBN: 9781789136203].
| Recommended Article/Paper Resources |
---|
-
E. Jonas, J. Schleier-Smith, V.
Sreekanti, C.C. Tsai, A. Khandelwal, Q.
Pu, V. Shankar, J. M. Carreira, K.
Krauth, N. Yadwadkar, J.E. Gonzalez, R.
A. Popa, I. Stoica and D. A. Patterson. (2019), Cloud Programming Simplified: A Berkeley
View on Serverless Computing, EECS Department, University of
California, Berkeley. Technical Report
No. UCB/EECS-2019-3,
-
R. Buyya et al.. A Manifesto for Future Generation Cloud
Computing: Research Directions for the
Next Decade, ACM Computing Surveys, 51 (5), p.105:1,
-
I. Baldini et al.. (2017), Serverless Computing: Current Trends and
Open Problems, In: Chaudhary S., Somani G., Buyya R.
(eds) Research Advances in Cloud
Computing. Springer, Singapore,
| Other Resources |
---|
-
[Website], AWS. AWS Lambda, [Accessed September 1st 2019],
-
[Website], IBM. IBM Cloud Functions, [Accessed September 1st 2019],
-
[Website], Apache OpenWhisk, [Accessed September 1st 2019],
-
[Website], Google. Google Cloud Functions, [Accessed September 1st 2019],
|
Discussion Note: |
Approved to allow for publication of parent programme on NCI website. |
|