TCSS 462/562: |
|
In this course we will introduce and explore cloud computing and software and systems design concepts for the cloud. We will introduce cloud computing delivery models and explore cloud service alternatives that can be harnessed to support the development of cloud native applications. The term project offers the opportunity to engage in building a serverless cloud native application to contrast performance and cost trade-offs of various system designs and compositions. The focus, unlike a traditional software engineering course, is not on executing a waterfall, spiral or agile software process within the class, but to focus on introducing new cloud technologies to enable building a prototype application while teaching good systems analysis skills. The goal is to build functioning prototypes of a native cloud application to enable evaluation of design alternatives and their corresponding cost and performance implications for deployment in the cloud. The theme for Fall 2024 is to leverage generative AI to enable project teams to implement multiple versions of an equivalent serverless application or workflow in multiple programming languages (e.g. Java, Python, C#, Node.js, Ruby). This will enable teams to compare performance and cost trade-offs of programming languages on serverless platforms. With cloud computing there are many alternatives for implementing cloud applications with different architectures and configurations. The focus of the course is to practice systems implementation and evaluation skills to learn how to better identify good cloud software designs. This course introduces important analysis and evaluation skills to support further learning to help aspiring software engineers and cloud architects make good design decisions when developing cloud systems. The Fall 2024 course will leverage material from the textbooks: Cloud Computing Theory and Practice, and Cloud Computing Concepts, Technology & Architecture as well as hands-on tutorials to introduce Infrastructure-as-a-Service cloud, serverless computing, and containerization. In addition to the term project, students will prepare one class presentation (TCSS 562 only) on either: (1) a cloud technology sharing talk demonstrating a specific cloud technology or service (e.g. AWS services: App Sync, SNS, Dynamo DB, Elastic Beanstalk, Amazon Cognito, Amazon Inspector, ElastiCache, etc., Azure services, Google cloud services, etc.), or (2) a cloud-computing related research paper. Time at the end of select lectures will be set aside to offer lab time and Q&A to support completing cloud computing tutorials and to foster group work for term projects. |
TCSS 462/562 in Fall 2024 will be offered as an in-person class streamed online via Zoom and recorded. Lectures for TCSS 462/562 will be live-streamed and recorded using Zoom at 3:40pm on Tuesdays and Thursdays during Fall Quarter from BHS 106. Students are strongly encouraged to participate by attending lectures in person. In-person and remote participants will be able to ask questions and interact with the instructor and other students. Student collaboration will be catalyzed using a class discord server and group project support features provided in Canvas. For this course, there will be two in-person medium length quizzes. The course features a group project. Groups are responsible for organizing meetings based on the specific availability of the group. The final project involves performing a case study to contrast design trade-offs for a cloud application implemented by project teams. This involves programming, experimentation, writing a project report (TCSS 562 only), or a project presentation (TCSS 462). There will be no final exam in lieu of the final project. |
Instructor |
Lecture Location | ||
Wes Lloyd Office: CP 229 and Zoom Office Hours: T 2:30-3:30p CP 229 F 1:00-2:00p Zoom or by appointment E-mail: wlloyd <@> uw.edu |
Fall Quarter 2024 |
School of Engineering and Technology, University of Washington-Tacoma, Tacoma, WA 98402 USA © 2024 University of Washington |