TCSS 562-S'18: Software Engineering for Cloud Computing

TCSS 562: Software Engineering for Cloud Computing

csu-logo

Announcements Syllabus Grading Schedule Assignments

Home


Prerequisites: None

Textbook
None required
Cloud Computing, A Hands-On Approach
Cloud Computing Concepts, Technology & Architecture
Cloud Research Papers
Instructor:
Wes J. Lloyd
Office: Cherry Parkes 229
Office Hours: TBA, or by appointment
E-mail: wlloyd <@> uw.edu
Tel: (253) 692-5681

Course Information
In this course we will introduce and explore cloud computing and software and systems design concepts for the cloud. We will engage in the exploration of cloud service alternatives which can be harnessed to deploy and implement cloud-based applications. The term project will feature building and prototyping cloud-based solutions for a single component of a multi-tier / SOA application. The focus, unlike a traditional software engineering course, is not on executing a waterfall, spiral or agile software process, and performing tedious software engineering "busy work", rather we will focus on teaching good systems analysis skills. The goal is to build a "good-enough" functional prototypes of a backend cloud application component to afford evaluating the tradeoffs of different cloud services and technology choices for good implementation and deployment.

Course Topics:
  1. Infrastructure-as-a-Service Cloud
  2. Platform-as-a-Service Cloud
  3. Software-as-a-Service Cloud
  4. Virtualization in the cloud
  5. Serverless Computing
  6. Containerization
  7. Software Engineering practices for the cloud: DevOPS
  8. Engineering cloud systems for optimal performance and cost
  9. Benchmarking, performance evaluation
  10. Cloud Systems Design Decisions, and Tradeoff Analysis
Learning Goals / Objectives:
Student learning goals for TCSS 562 include:
  1. Analyze trade-offs between different cloud applications deployments.
  2. Compare the advantages and disadvantages of various cloud computing platforms and service offerrings.
  3. Analyze the performance and scalability of underlying cloud technologies and services through benchmarking and testing.
  4. Apply metrics to quantify performance of cloud computing platforms and services to support comparison of system design alternatives.
  5. Recommend design alternatives for cloud systems development supported by quantitative and qualitative assessment.
  6. Practice software design and prototyping towards benchmarking and comparing cloud systems. Recognize the unique challenges of developing cloud systems.
  7. Participate effectively in a team to carry out benchmarking and prototyping tasks to produce a system analysis.
  8. Develop and practice good presentation skills to help communicate system design tradeoffs.
  9. Explain recent research results in cloud computing and identify their pros and cons.

Institute Support
Please maintain communication with the Institute advisors regarding your studies and notify them of any personal or learning struggles. It's important to reach out early: http://www.tacoma.uw.edu/institute-technology/academic-advising

Institute Labs
Key cards for access to the INSTTECH general development labs (DOU 110, SCI 106/108) are available at the Campus Safety Office (DOU 180) on the first day of the quarter. If you registered late, it can take two or more business days after you register before your key card is ready. Additional information about the Institute computer labs can be found at: http://www.tacoma.uw.edu/institute-technology/technology-labs

Campus Information, Resources, Policies, and Expectations
Please refer to the general University of Washington - Tacoma Campus Information and Course Resources Policies, and Expectations available online here:
UWT Campus Information - Course Resources, Policies, and Expectations