TCSS 462/562-F'22: Software Engineering for Cloud Computing

TCSS 462/562:
(Software Engineering for)
Cloud Computing

csu-logo

Announcements Syllabus GRADING Schedule Assignments

Home


Cloud Software Design Analysis Term Project
TCSS 462/562 will feature a team-based term project focused on building a serverless cloud native application or a related cloud application. Students have the opportunity to propose a term project topic, or work on an assigned project. Please note that this course focuses more on learning new cloud technologies and the differences with cloud software development, as opposed to traditional software engineering concepts. Term projects should include a performance and cost analysis. Students will build prototype-quality cloud software to perform a performance and cost evaluation to contrast design tradeoffs of alternative cloud services and software architectures. Students will learn about new cloud technology as well as analytical skills important for work in industry. For example, while working as a software engineer, for a given software application, would it be better to leverage a relational database service such as Amazon's RDS? Or would the more performant and cost effective solution involve deploying and managing a database using a virtual machine hosted by Amazon EC2? With cloud computing, there are many ways to implement backend application architectures. Good analytical skills to assess performance and cost of system implementations are essential. This course aims to explore new cloud technologies while teaching evaluation skills to help aspiring software engineers and cloud architects make good design choices when developing cloud systems.

NO Midterm or Final Exam
This quarter with TCSS 462/562 offered as an in-person class with lectures additionally streamed online and recorded. There will be NO Midterm or Final Exam. In lieu of exams, there will be 2 online quizzes offered online at roughly the end of week 5, and week 9. Quizzes will be implemented online using the Canvas system and will allow the use of notes, books, and online resources. Quizzes will review material from roughly the class lectures in a mostly objective format. Make-up quizzes will not be offered. Addressing a missed quiz for reasons such as illness requires making arrangements with the instructor. The term project serves in place of a final exam. The term project provides groups with the opportunity to aggregate together all skills learned throughout the course for the final project. Other assessment used in the course includes project status reports, in-class activities, class presentations, and tutorials.

Class Presentations
For TCSS 562:
During the quarter, each term project group will prepare an in-class presentation. In lieu of a live presentation, groups can prerecord a presentation and be available to answer questions. Presentations will be scheduled during week 9 or 10 of the course. Groups will choose to present either:

(1) A CLOUD TECHNOLOGY SHARING PRESENTATION: where the focus is on presenting a specific cloud computing service or technology including a demonstration of how to use the service which exercises the user interface and/or programmer APIs

Examples include: Amazon EFS, Amazon RDS, FaaS platforms besides those presented in class, CaaS platforms, IaaS platforms besides AWS EC2, object-storage besides Amazon S3, Heroku, Serverless Databases (e.g. Dynamo DB and others), Elastic BeanStalk, Azure DocumentDB, Azure BlobStorage, and many many others. Consult the instructor for suggestions.

--OR--

(2) A REVIEW OF A CLOUD-COMPUTING RELATED RESEARCH PAPER: The idea is to present the key contributions of the paper while critiquing strengths and weaknesses.

For TCSS 462:
In lieu of an in-class presentation, students enrolled in TCSS 462 will submit peer reviews of class presentations. To receive full credit, students should submit a minimum of 4 peer reviews (approximately 1 per day) of the presentations. Presentation peer reviews will be completed using a worksheet provided by the instructor. In addition to the reviews, students will write two questions about content in the presentation. These can be questions to help clarify content from the presentation that was not clear, or any related questions inspired by the presentation. To ensure intellectual depth of questions, questions should not have yes-no answers. These questions will be captured by the presentation peer review worksheet.
For TCSS 562:
On days TCSS 562 students do not deliver a presentation they will submit a minimum of 1 peer review per day, for a total of 3 peer reviews for the quarter. Peer review structure will follow as described above.
Extra Credit:
Students submitting more than 4 peer reviews of presentations (TCSS 462) or 3 peer reviews (TCSS 562) will be eligible for extra credit at the end of the quarter. A maximum of 2% extra crtedit is possible if completing a valid peer review for every presentation in the class (excluding the presentation delivered by the student).

Tutorials and Readings
This course offers many tutorials that assume only limited to no background with cloud computing. Tutorials are incremental in that they build off knowledge gained from previous tutorials. Completing tutorials provides the necessary background to complete the term project and to progress towards completing an MS Capstone or Thesis project in Cloud Computing. Weekly suggested readings will be posted to the schedule page, and tutorials throughout the quarter are posted on the assignments page.

For TCSS 462: The lowest tutorial grade will be automatically dropped.

Grading Policy
Weights are assigned to the different elements of the course as listed below. Points are added up at the end of the quarter and weighted accordingly to determine a total percentage score. The percentage score is translated into a final decimal point (4.0 max) grade.

Course ElementWeight
Tutorials20%
Project Status Reports / In-Class Activities / Miscellaneous 10%
Online Quizzes (approx. 2)20%
Class Presentation (TCSS 562)
Presentation Summaries (TCSS 462)
15%
Final Project/Paper/Presentation/Demo35%

UW Grading Scale

Due Dates / Submitting Assignments
All assignments are due at 11:59 PM on the due date unless specified otherwise. There is a 36-hour grace period on all late assignments. These assignments will be marked as late in Canvas, and the cumulative timeliness of assignments may be referred to for grade curving/rounding decisions and for future employer/letters of recommendation, etc. Assignments submitted from 36 to 48 hours late will receive a 5% late penalty. After two days, each subsequent day an assignment is late will result in an additional late penalty of 5% per day for a maximum of 15% for up to 4 days. Late submissions more than 96 hours late will receive a zero score without prior arrangement with the instructor. When possible, assignments will be posted at least two weeks prior to the due date. The details of each homework will be posted HERE. Completed homeworks will be submitted through Canvas.

Academic Integrity and Collaboration Policy
To quote the UWT statement of values, "our fundamental purpose is to educate students for life as global citizens." Students are active participants in their education and are expected to uphold high standards of academic conduct. Any action that subverts the educational process or misrepresents student knowledge and abilities constitutes academic dishonesty.

In this course some assignments and all quizzes, exams, etc. must be completed individually. When collaboration is permitted for an assignment, this will be noted in the instructions. With respect to student collaboration, these actions are acceptable:
  • Contacting the instructor for help with, or clarification on, an assignment.
  • Utilizing the class discussion board regarding an assignment without posting solutions.
  • Discussing an assignment in general terms with other students without sharing solution details.
  • Including details about assignments on your resume or LinkedIn profile.
  • Maintaining assignment solutions (aka source code) online in *private* GitHub repositories, or in a *private* Google Drive or Dropbox folder to share with collaborators as needed.
These actions are STRONGLY discouraged:
  • Posting solutions (aka source code) to assignments on your public web page, or personal GitHub repository after the term.
  • Providing (binary) executable files of your projects on public internet sites after the term.
These actions are not acceptable:
  • Sharing your assignment solution with another student. This could be directly, or indirectly. Indirect is where an action such as posting a solution on a public web page or repository results in another student obtaining and copying the solution. Source code and binary executable files are both considered as solutions. It is a best practice to not store binary files on source code repositories.
  • Sitting with another student and "walking them through" the solution by telling them how to solve the problem in detail.
  • Discussing the procedure(s) for completing an entire assignment or large portions of an assignment in detail with another student.
  • Receiving solutions from other students, the Internet, or other sources which enables avoiding solving the problems featured by the assignment to obtain answers based on plagiarism, and then submitting it as your own work. Be extremely careful here. If there is doubt regarding the use of internet resources a best practice is to simply ask if it is permissible. For this course, use of numerous resources is allowed to enable a larger scope for the term project. The original contribution focuses on the system analysis (e.g. performance and cost evaluation)
  • Sharing materials (e.g. notes, calculators, papers, books) during a test or individual quiz.
  • Copying material from another student and slightly changing answers for an individual homework assignment or quiz/exam.
Group assignments operate similarly, with members of the same group freely able to collaborate with one another, but different groups being limited as above. Students found to violate the academic integrity policy may be subject to forfeiture of credit for assignments, failure of the course, and/or disciplinary action by the University.