Cloud Computing

Tufts Cloud Computing | CS 118 | Fall 2022

Syllabus


Meeting Times: MW, 4:30 - 5:45PM
Location: JCC 160


1   Description

Society relies on cloud computing---i.e., the practice of developing and using software services that run on top of rented, remotely-located software and hardware---for almost everything. For example, we rely on it when shopping (e.g., Amazon), when conducting financial transactions (e.g., online brokers), when traveling (e.g., flight-booking software), when entertaining ourselves (e.g., Netflix), when collaborating at work (e.g., Google Docs), and even when getting medical diagnoses (e.g., radiology scans in the cloud).

All members of society are incentivized to have a basic understanding of cloud computing due to our reliance on it. Software developers must understand it because a lot of today's software is designed to run in cloud computing environments. Policymakers must understand it to create security & privacy regulations that govern cloud providers' use of customers' data. The general public must be aware of it so that they can evaluate policy decisions, make informed decisions about which clouds to use, and grok how the software and services they use in their everyday lives work.

This course will cover foundational aspects of cloud computing. We will cover: 1) Why cloud computing has emerged as the dominant paradigm for developing and using software; 2) Important distributed-systems background that is needed to understand and evaluate cloud technologies; 3) The software and hardware technologies that make cloud computing possible, and 4) How to program for cloud environments. If time allows, we will discuss security/privacy and emerging trends in cloud computing.

Key outcomes: After completing the course, students will be able to:

  1. Articulate why cloud computing has emerged as the dominant paradigm for computing in the 21st century.
  2. Understand, contrast, and evaluate the software and hardware technologies that form the basis of most cloud-computing environments. Examples of such technologies include: virtualization, distributed storage, and databases.
  3. Understand various technologies for developing and running software in the cloud. Some possibilities include: 1) Infrastructure-as-a-service tools to allow developers to launch virtual machines or containers, such as AWS EC2; 2) Platform-as-a-service frameworks to allow developers to create applications using higher-level building blocks sold by the cloud providers, such as AWS EMR; 3) Frameworks for deploying distributed applications in the cloud, such as Kubernetes.

2   Instructors and CAs

Picture of Raja Sambasivan

Instructor: Raja Sambasivan (He/Him/His)
Office hours: Wed, 5:45-6:45
Location: JCC 453 (In-person only)
E-mail: raja AT cs[.]tufts[.]edu

Picture of Sarah Abowitz

CA: Sarah Abowitz (She/Her/Hers)
Office hours: Fri, 4:15-5:15
Location: JCC 449
E-mail: Sarah.Abowitz AT tufts [.] edu

Picture of Chase Pinkerton

Instructor: Chase Pinkerton (He/Him/His)
Office hours: Tu, 3:00-4:00
Location: JCC 515
E-mail: Chase.Pinkerton AT tufts [.] edu

 

3   Prerequisites

  • For undergraduates: COMP 40 (Machine Structure & Assembly Language Programming). Though not required, having taken COMP 111 (Operating Systems), COMP 112 (Networking), or COMP 117 (Internet-scale distributed systems) will help significantly.
  • For PhD students and Master's students: a graduate or undergraduate course in computer systems, networking, or distributed systems taken at any university.
  • If you are not sure you have the background needed for this class, please email one of the instructors! We will meet with you to discuss your background and the skills you should independently acquire to do well in this class. We want everyone to excel in this class.

4   Evaluation goals & structure

The final course grade will be calculated as follows:

Item Percentage of final grade
Homeworks 30%
Projects 30%
Reading summaries and Q & A 25%
Team presentations 10%
Meet your friendly prof. 5%

Students will be assigned the following grades based on the percentages above.

Grade Interval
A 90 - 100%
B 80 - 89.9%
C 70 - 79.9%
D 65 - 65.9%
F < 65%

We may make these grade intervals more generous, but we will not adjust them to be less so. We will use +/- grading.


5   What are the various assignments about?

*Paper summaries: Students must submit summaries for most required readings. Most paper summaries are worth 20 points. One paper summary in each course module is worth 100. Summaries must be posted to the relevant discussion threads on Canvas. Please see this link for more information about how to read research papers and write your summaries.

Homeworks: These will be individual written assignments that will be handed in via Gradescope. We will assign about one written assignment per course module. We will also assign one additional homework assignments that will allow you to express your cumulative understanding of a set of readings in a creative way.

Projects: Most projects will be group programming assignments done in groups of three. We will assign two to three projects during the semester.

Team presentations: At the beginning of most lectures, one team will present their summary and answers to any questions posed about the reading. This presentation should last between 10-15 min. After presenting, teams must turn in a PDF of their slides on Canvas under the 'Team presentation' assignment.

Meet your friendly prof: During the course of this semester, you must meet your course instructor (Raja) at least once during the semester during his office hours, either in-person or virtually. This meeting is a vehicle for your professor to get to know you, your interests, and your concerns. It is meant to be a friendly, fun chat.

6   Office hours

Raja, Sarah, and Chase's office hours will be announced the first week of class.

Please come to office hours so that we can get to know every one of you. Valid reasons to come to office hours include, but are not limited to: chatting about the course, discussing any of the readings, discussing course projects, discussing research ideas or anything you find cool about the class, or just wanting to say hi and introduce yourselves.


7   Where should I look for important information?

  • Course website: This website contains invaluable resources to help you with your project and paper critiques. It is a living document that will be updated regularly throughout the semester. Please check it frequently.
  • Canvas: You will submit reading summaries for readings as replies to discussions on Canvas. We will also use Canvas to host your grades. Course recordings will be made available via the Echo360 tab of Canvas.
  • Piazza: All course announcements will be posted here. You can also use Piazza to ask questions to the instructors or to the class. Please check this board frequently and subscribe to new notifications.
  • Gradescope: Written homeworks will be submitted, graded, and handed back here.

8   Course policies

Attendance: We encourage you to attend class and participate in discussions. Doing so will help foster a lively, positive class environment for both you and your fellow classmates. However, attendance is (sadly) not mandatory.

Extensions & Late policy: You may miss up to one paper summary per
course module. But, you cannot miss the summary worth 100 points. Apart from these policies, no extensions will be even for paper summaries. Homeworks and projects can be submitted up to seven days after the due date and will incur a 20% deduction in total score.

Extra credit easter egg: For 5 points of extra credit added to Homework 0, post a private note on Piazza with a link to a picture of your favorite pre-historic large animal. This note must be private, addressed only to your instructor and both your CAs and submitted by Monday, September 12th.

Collaboration: Please talk to other people and share ideas! Much of this class is collaborative. We strongly encourage you to discuss ideas and obtain feedback on drafts from your classmates.

  • Paper summaries: Please write these up individually. After submitting a summary, you may look at other students' summaries on canvas to get a sense of how they understood the reading.
  • Homeworks: We expect you to work individually. After completing a question, you may discuss your answers and obtain feedback from other members of the class. You must write up answers to questions individually.
  • Projects: We expect you to work in teams of three. You may work individually if mandated by the class size. You may use or modify any open-source codebase as part of your project. The core of your code, the entirety of your writeups, and the entirety of your presentations must be written by you and your teammates. Each team member must contribute equally and their contributions must be explicitly listed in each of the project documents (code, writeup, presentation). If you feel that a team member is not pulling their weight or if you feel your teammates are assigning you insufficient work or inappropriate work, please come talk to us.
  • Team presentations: You will prepare slides on select topics and present them in class in teams of three. The core presentation must be created by you and your teammates and you must explicitly cite any external resources you use. Team members must speak for equal amounts of time during presentations. You are not allowed to adapt or use existing presentations on the topic that you find online. This is because we want you to have to think deeply about best to present ideas to the class; doing so will greatly enrich your own understanding of the material.

Academic Integrity: This course will strictly follow the Academic Integrity Policy of Tufts University. Students are expected to finish course work independently when instructed and to acknowledge all collaborators appropriately when group work is allowed. Submitted work should truthfully represent the time and effort applied. Please refer to Tufts' Academic Integrity Policy, available here.


9   Diversity statement

The instructors and CAs of this class welcome students from all backgrounds. We view diversity and differences in viewpoints as critical strengths to be celebrated, not squashed. This is an especially important to emphasize in systems because, as you will see, often the answer to many questions is "it depends."

We expect that all members of this class contribute to a respectful and inclusive environment for every other member of the class. This does not mean we cannot disagree or have different ideas. It does mean we must consider perspectives other than our own, though they may differ from our own beliefs/experiences. If something in class or in the course materials makes your uncomfortable, please arrange a time to talk with me about ways I can improve the course. Alternatively, you can arrange to speak with the CS Department Chair (Jeff.Foster@tufts.edu) about providing feedback that is anonymous to me.


10   Accommodations and wellness

Accommodations for COVID19: The course instructors realize that we are all (still!) doing our best in a difficult time. As a result of the pandemic, we know you might be experiencing stress or might be more strained for time. If you are experiencing any such difficulties, please come talk to us and we will do our best to help you succeed in the class.

Accommodations for Students with disabilities: Tufts University values the diversity of our body of students, staff, and faculty and recognizes the important contribution each student makes to our unique community. Tufts is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the Tufts experience. If a student has a disability that requires reasonable accommodations, they should please contact the StAAR Center (formerly Student Accessibility Services) at StaarCenter@tufts.edu or 617-627-4539 to make an appointment with an accessibility representative to determine appropriate accommodations. Please be aware that accommodations cannot be enacted retroactively, making timeliness a critical aspect for their provision.

Children in class: All exclusively breastfeeding babies are welcome in class as often as is necessary. For older children and babies, I understand that unforeseen disruptions in child-care often put parents in the position of having to choose between missing class to stay at home with a child and leaving them with someone you or the child does not feel comfortable with. While this is not meant to be a long-term child-care solution, occasionally bringing a child to class in order to cover gaps in care is perfectly acceptable.

Student wellness: As a student, you may experience a range of challenges that can interfere with learning, such as strained relationships, increased anxiety, substance use, feeling down, difficulty of concentrating, and/or lack of motivation. These mental health concerns or stressful events may diminish your academic performance and/or reduce your ability to participate in daily activities. There are resources at Tufts to help. You can learn more about confidential health services available on campus here. For mental health emergencies, please contact the CMHS front office at 617-627-3360 during regular business hours or the counselor-on-call at 617-627-3030 after hours.

Academic support: The StAAR Center (formerly the Academic Resource Center and Student Accessibility Services) offers a variety of resources to all students (both undergraduate and graduate) in the Schools of Arts and Sciences, and Engineering, the SMFA, and The Fletcher School; services are free to all enrolled students. Students may make an appointment to work on any writing-related project or assignment, attend subject tutoring in a variety of disciplines, or meet with an academic coach to hone fundamental academic skills like time management or overcoming procrastination. Students can make an appointment for any of these services by visiting go.tufts.edu/TutorFinder, or by visiting go.tufts.edu/StAARCenter.

In case of emergency: If you, a family member, or a close friend are experiencing an emergency or crisis: absolutely do not worry about contacting me until you have some free time. In collaboration with other university resources, we will take care of getting your course work back on track after the crisis has passed.


11   Acknowledgments

The course policies and course descriptions are informed in part by the New Computer Science Faculty Workshop and numerous other classes at Tufts and other universities. The course syllabus is informed in part by Greg Ganger, Majd Sakr, and George Armvrosiadis's 15-719 Cloud Computing class, and Orran Krieger and Peter Desnoyer's Cloud Computing class. The course website's theme is based on Pelican Alchemy and Jason K. Moore's Mechanical Engineering Capstone Course at UC Davis.