Cloud Computing EN.601.419/EN.601.619

Administrivia

  • Instructor: Soudeh Ghorbani
  • TAs: Sougol Gheissi (sgheiss1@jhu.edu) and Sai Kiran Uppu (kiran@jhu.edu)
  • Lecture time: Tuesdays and Thursdays, 3-4:15pm Eastern Time
  • Location: Zoom (email the instructor if you did not receive the invitation)
  • Office hours: By appointment
  • Piazza discussion board

Course Description

Clouds host a wide range of applications that we rely on today. In this course, we study common cloud applications, traffic patterns that they generate, critical networking infrastructures that support them, and core networking and distributed systems concepts, algorithms, and technologies used inside clouds. We will also study how today's application demand influences the network's design, explores current practice, and how we can build future's networked infrastructure to better enable both efficient transfer of big data and low-latency requirements of real-time applications. This course's format will be a mix of lectures, discussions, assignments, an exam, and a project designed to help students practice and apply the theories and techniques covered in the course.
Prerequisites: EN.601.226 or permission. Recommended: a course in operating systems, networks, or systems programming. Students can only receive credit for one of 601.419/619.

Acknowledgment: This course is influenced by and uses materials from Hopkins Cloud Computing Security, Google Cloud Platform Specialization, UIUC Cloud Specialization, University of Washington Distributed Systems, and Stanford CS244. We particularly thank Joel Coffman and acknowledge Google's and Amazon's support through their cloud platform grants.

Goal and Topics

The goal of this course is to get familiar with the foundational cloud systems. We will cover the following topics:
  • Datacenters
  • Software-defined networks (SDN) and network programmability
  • Congestion control and load balancing in datacenters
  • Verification
  • Big data systems
  • Cloud storage
  • Virtualization

Grading Policy

The class is graded as follows:
  • Project (45%)
    • Proposal (5%)
    • Checkpoints (10%)
    • Midterm presentation (10%)
    • Final presentation (10%)
    • Final report (10%)
  • Paper reviews (15%)
  • Assignments (15%)
  • Participation (15%)
  • Final exam (10%)
  • Topic presentation (optional/extra credit 5%)

Project

The project is an important component of this course. The goal is to either build a functional system, conduct high-quality novel research, or reproduce (and ideally build upon) the results of a significant paper related to cloud computing. You may work in groups of 2 to 3 people. The steps in the project are as follows:
  • Project proposal: During the first month of the class, you should think about the topic you want to work on and find partners. You are welcome (and encouraged) to explore your own ideas. However, you can also talk with the instructor, who will suggest some topics (you need to set an appointment). You will need to submit a project proposal. The proposal should be at most one page and include each of the following:
    • The problem you plan to address
    • What will be your first steps to attack the problem
    • What the most closely related work is, with either (a) citations of at least 2 similar systems (if you are building a system), or (b) at least 3 academic paper citations (if you are working on a research project, either conducting original research or reproducing others' research). You should explain why your proposed problem is different than those or why your proposed solution is better. You should actively search for related work, not just cite systems and papers that the instructor mentions.
    • Who the people on your team are and how you plan to partition the work among the team
  • The proposal can be short. It should simply demonstrate that you have a plausible project and know how to attack it. The instructor will give a grade for the proposal, and either approve the project or ask for a revision.
  • Checkpoints: Every two weeks from the date that you submit your proposals, each team should provide a status report describing the progress since the last checkpoint and their contribution.
  • Midterm presentation: Give a presentation in class describing what problem you are solving, why existing approaches will not solve your problem (if you are building a system or conducting original research), why you selected that particular paper for reproducing their results (if you are reproducing cloud research), your solution approach, and your progress in your solution. You must demonstrate progress in your solution.
  • Final report: This is a short report suitable for submission to a workshop. It should clearly state the system being built or the problem being solved, its importance, related work, your approach, evaluation, and results, conclusion, discussion of limitations, and future work. The paper should be at most eight pages. But you will be judged on results, not page count!
  • Presentation: At the end of the course, we will have a presentation session. This will be an opportunity for the students and the instructor to ask questions about your project and to see the cool work that you've done.
Dates for the above steps will be announced on Piazza. In general, you are encouraged to meet with the instructor and seek advice on the project as often as you like.

Can a project be shared with another course's project or independent research? It is OK, and often a good idea, to work on a class project that complements your other ongoing projects and has a related topic. However, you should identify the piece of the larger project that you are working on for this course, with separate pieces for other courses. Check with your other instructors as well.

Paper Reviews

For each class, we usually will have one assigned paper that you should read prior to class and be ready to discuss during the class. You should submit one paper review for each class on Pizza publicly (so that it is visible to the instructor and other students) by 5:00pm the day before the lecture for which the paper was assigned. This review should be relatively short (about one paragraph). It should not summarize the paper or repeat it; we have all read the paper already. Instead, your review should include at least two comments on the paper that supply information not in the paper itself. For example, a comment might be:
  • A suggestion to build on or extend the paper's ideas in future work
  • A criticism of the paper
  • An advantage of the paper (not discussed in the paper)
  • An alternative solution for the solutions discussed in the paper
  • A response to another student's comment
You are encouraged to read and comment on the other students' reviews. However, please write down notes on your own thoughts independently prior to reading other students' reviews. Collaborating with other students to write reviews is not permitted. Your reviews should ideally include original ideas that do not appear in the other students' reviews. However, If you independently make similar points, that is acceptable. Each review will be given a score in the [0,2] range. We will ignore the two lowest paper review grades which means that you may skip any two paper reviews without affecting your grade. You will receive a deduction of one letter grade for missing more than two reviews.

Assignments

There will be 2 or 3 assignments during the semester, which includes introducing several tools for experimental research in cloud computing and written questions covering roughly the first 1/3 and 2/3 of the course. You may work alone for assignments.

Late policy

For reviews, assignments, and project milestones: up to 24 hours, 30% deduction, with no submissions accepted past 24 hours late. We accommodate special medical circumstances, such as a death in the family or hospitalization (email the instructor).

Participation

You are expected to attend all sessions of the class. The general policy is that a student will automatically receive a deduction of one letter grade for missing more than three lectures. Class sessions combine lectures, discussions of reading, and presentations by students. In all cases, the class is focused on discussion. Please comment, question, and interact!

Final exam

There will be a final exam covering all the topics we discuss in the course, as well as the papers that you review. The exam will be open notes and open papers but closed laptop.

Topic Presentations

Each student can optionally sign up for a presentation on a topic during the semester. The goals are for you to learn more about particular areas of interest related to our assigned readings or your project more deeply, and give an overview of what you learned to the rest of the class. Here is what you should do:
  • Within three weeks after the class starts, specify your topic preferences (up to 5 topics). For each topic, you can find related readings from the References section of the course's webpage. You are welcome to discuss the topics and the readings with the instructor. The instructor will take your preferences into account while assigning the topics (and presentation dates). The topic assignment will be announced on the class schedule.
  • To prepare for your presentation, pick one "primary paper" to cover in-depth, and a related paper. You can contact the instructor for paper suggestions.
  • At least ten days before your presentation date, tell the instructor what papers you plan to cover and arrange a meeting time with the instructor to go over your initial draft presentation. The instructor will then approve the papers or suggest other papers you should cover instead or in addition to what you pick.
  • Prepare a presentation on your topic. The presentation should do two things. First, it should describe the primary paper and how it relates to the course topics (this should take roughly 15-20 minutes of your presentation). Second, it should summarize the related paper (this should take roughly 5-10 minutes of your presentation) and compare it to your primary paper, the required reading, and/or other research in this area.
  • Prepare 2 (or more) discussion questions. You should lead a 10-15 minute discussion during or after your presentation.
  • Meet with the instructor to discuss your draft presentation at least one week before your presentation.


Ethics

The strength of the university depends on academic and personal integrity. In this course, you must be honest and truthful, abiding by the Computer Science Academic Integrity Policy:

"Cheating is wrong. Cheating hurts our community by undermining academic integrity, creating mistrust, and fostering unfair competition. The university will punish cheaters with failure on an assignment, failure in a course, permanent transcript notation, suspension, and/or expulsion. Offenses may be reported to medical, law, or other professional or graduate schools when a cheater applies. Violations can include cheating on exams, plagiarism, reuse of assignments without permission, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition. Ignorance of these rules is not an excuse.
Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at anyone else's solutions (including program code) to your homework problems. However, you may discuss assignment specifications (not solutions) with others to be sure you understand what is required by the assignment.
When you are allowed to use fragments of source code from outside sources, such as on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.
Falsifying program output or results is prohibited.
Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor, TA or CAs, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.
On every exam, you will sign the following pledge: "I agree to complete this exam without unauthorized assistance from any person, materials, or device. [Signed and dated]". Your course instructors will let you know where to find copies of old exams if they are available."


Report any violations you witness to the instructor. You can find more information about university misconduct policies on the web at these sites: (a) For undergraduates: http://e-catalog.jhu.edu/undergrad-students/student-life-policies/, (b) For graduate students: http://e-catalog.jhu.edu/grad-students/graduate-specific-policies/, (c) the departmental honor code: https://www.cs.jhu.edu/academic-integrity-code

Personal Wellbeing

  • If you are sick please notify me by email so that we can make appropriate accommodations should this affect your ability to attend class, complete assignments, or participate in assessments. The Student Health and Wellness Center is open and operational for primary care needs. If you would like to speak with a medical provider, please call 410-516-8270, and staff will determine an appropriate course of action based on your geographic location, presenting symptoms, and insurance needs. Telemedicine visits are available only to people currently in Maryland. See also https://studentaffairs.jhu.edu/student-life/student-outreach-support/absences-from-class/illness-note-policy/
  • The Johns Hopkins COVID-19 Call Center (JHCCC), which can be reached at 833-546-7546 seven days a week from 7 a.m. to 7 p.m., supports all JHU students, faculty, and staff experiencing COVID-19 symptoms. Primarily intended for those currently within driving distance of Baltimore, the JHCCC will evaluate your symptoms, order testing if needed, and conduct contact investigation for those affiliates who test positive. More information on the JHCCC and testing is on the coronavirus information website.
  • All students with disabilities who require accommodations for this course should contact me at their earliest convenience to discuss their specific needs. If you have a documented disability, you must be registered with the JHU Office for Student Disability Services (385 Garland Hall; 410-516-4720; http://web.jhu.edu/disabilities/) to receive accommodations.
  • Students who are struggling with anxiety, stress, depression or other mental health related concerns, please consider connecting with resources through the JHU Counseling Center. The Counseling Center will be providing services remotely to protect the health of students, staff, and communities. Please reach out to get connected and learn about service options based on where you are living this fall at 410-516-8278 and online at http://studentaffairs.jhu.edu/counselingcenter/.
  • Student Outreach & Support will be fully operational (virtually) to help support students. Students can self-refer or refer a friend who may need extra support or help getting connected to resources. To connect with SOS, please email deanofstudents@jhu.edu, call 410-516-7857, or students can schedule to meet with a Case Manager by visiting the Student Outreach & Support website and follow "Schedule an Appointment".


Classroom Climate

As your instructor, I am committed to creating a classroom environment that values the diversity of experiences and perspectives that all students bring. Everyone here has the right to be treated with dignity and respect. I believe fostering an inclusive climate is important because research and my experience show that students who interact with peers who are different from themselves learn new things and experience tangible educational outcomes. Please join me in creating a welcoming and vibrant classroom climate. Note that you should expect to be challenged intellectually by me, the TAs, and your peers, and at times this may feel uncomfortable. Indeed, it can be helpful to be pushed sometimes in order to learn and grow. But at no time in this learning process should someone be singled out or treated unequally on the basis of any seen or unseen part of their identity.

If you ever have concerns in this course about harassment, discrimination, or any unequal treatment, or if you seek accommodations or resources, I invite you to share directly with me or the TAs. I promise that we will take your communication seriously and to seek mutually acceptable resolutions and accommodations. Reporting will never impact your course grade. You may also share concerns with the Department Head (Randal Burns, randal@cs.jhu.edu), the Director of Undergraduate Studies (Joanne Selinski, joanne@cs.jhu.edu), the Assistant Dean for Diversity and Inclusion (Darlene Saporu, dsaporu@jhu.edu), or the Office of Institutional Equity (oie@jhu.edu). In handling reports, people will protect your privacy as much as possible, but faculty and staff are required to officially report information for some cases (e.g. sexual harassment).

Family Accommodations Policy

You are welcome to bring a family member to class on occasional days when your responsibilities require it (for example, if emergency childcare is unavailable, or for health needs of a relative). In fact, you may see my children in class on days when their school is closed. Please be sensitive to the classroom environment, and if your family member becomes uncomfortably disruptive, you may leave the classroom and return as needed.

University Policy on Incompletes

The university recognizes that the Fall 2020 semester is surrounded with uncertainty and many students may find themselves in unexpected situations where study is difficult if not impossible. Students who are confronted with extraordinary circumstances that interfere with their ability perform their academic work may request an incomplete grade from the instructor. While approval of such a request is not automatic, it is expected that faculty will make every effort to accommodate students dealing with illness in the family and other pandemic-related hardships. The instructor and student must establish a timetable for submitting the unfinished work with a final deadline no later than the end of the third week of the Spring 2021 semester (February 12, 2021). Exceptions to this deadline require a petition from the instructor to the student's academic advising office by February 12, 2021. When entering an Incomplete grade in SIS, faculty must include a reversion grade which represents the grade the student will receive if s/he does not complete the missing work by the agreed-upon deadline.

Deadlines for Adding, Dropping and Withdrawing from Courses

Students may add a course up to September 11, 2020. They may drop courses up to October 12, 2020 provided they remain registered for a minimum of 12 credits. Between October 12 and November 13, 2020, a student may withdraw from a course with a W on their academic record. A record of the course will remain on the academic record with a W appearing in the grade column to indicate that the student registered and then withdrew from the course. For more information on these and other academic policies, see https://e-catalogue.jhu.edu/engineering/full-time-residential-programs/undergraduate-policies/academic-policies/grading-policies/

The Office of Academic Support at JHU

All programs are free to students, please see below for specifics:
  • PILOT Learning: Peer-Led Team Learning
    • Students are organized into small study teams who meet weekly to collaborate on faculty-developed problems-sets. Students work together as a team to solve problems.
    • A trained student leader acts as captain and facilitates the weekly meetings using various strategies to foster a collaborative learning environment.
    • Registration opens on August 31st at 9pm EST; registration will remain open throughout the semester if space allows.
    • Contact: Ariane Kelly, ariane.kelly@jhu.edu. Instagram: @jhupilot

  • Learning Den Tutoring Program - Small Group Tutoring
    • Small group, tailored tutoring of 4 students or less which is headed by one tutor. Visit the website (above) to access zoom links for drop-in sessions
    • Tutors can assist with but are not limited to: (a) Review and strengthening of subject-specific material knowledge, (b) Assist with homework-like problems, (c) Course-specific study skills and exam preparation.
    • Contact: Kaitlin Quigley, quigley@jhu.edu. Instagram: @jhulearningden

  • The Study Consulting Program
    • Students work one-on-one with a study consultant to set academic goals and develop customized strategies for success. Areas addressed include but are not limited to: (a) Time management, (b) Note taking and test preparation, (c) Mastering large amounts of information.
    • Contact: Dr. Sharleen Argamaso, sharleen.argamaso@jhu.edu. Instagram: @jhustudyconsulting

  • The Writing Center
    • Undergraduate and graduate students in KSAS/Whiting School of Engineering can schedule 50-min sessions with a Writing Center tutor to look over a draft of written work (up to 10 pages) or a personal statement for graduate study
    • Contact: Robert Tinkle, rtinkle1@jhu.edu
    • Web Address: https://krieger.jhu.edu/writingcenter/

Project Ideas

How can you pick a good research project topic? Your taste for projects will evolve over the years, but to get started, here are a few places to look.

Workshops and Conferences

Browse programs at top conferences to see current research topics. Workshops often contain early work on "hot" new directions, raising more questions than answers. These are good conferences and workshops to check out when looking for papers to present on a certain topic, or to see current areas of research when looking for project inspiration:

Survey Papers

Readings

The required papers are listed on the schedule. There is no required textbook. If you need a refresher for networks and distributed systems, you might take a look at standard books such as