|
Cloud Computing DCC030 and DCC049, 2023/2 |
|
Class time:
Time commitment:
Academic credit: 4
Course format: Lecture
Asynchronous study: Students who cannot attend
the lectures and assignment sessions synchronously may watch the recorded
videos. Our lectures are expected to have in-depth discussions on the day’s
subject while the pure information-based lecture content will be available as
video recordings.
Instructor’s information
Ítalo Cunha
Associate professor, Universidade Federal de
Minas Gerais, Brazil
E-mail: cunha@dcc.ufmg.br
Webpage: http://www.dcc.ufmg.br/~cunha
Ítalo Cunha is an associate professor at the Computer Science Department at UFMG, Brazil. He developed his Ph.D. research at Technicolor Research and Innovation and graduated from Université Pierre et Marie Curie in 2011. Ítalo worked as an Associate Visiting Research Scholar at Columbia University during 2019. His research focuses on improving network performance, reliability, and security. His contributions provide better visibility on Internet topology and routing dynamics; help network operators troubleshoot failures and performance problems; support identification and mitigation of cybersecurity threats; and empower novel networking and security research.
What
is this course about?
Cloud computing is the delivery of computing resources or applications over a network, as a utility (like water or electricity). Cloud computing allows customers and enterprises to pay for resources they use, while not owning any infrastructure. Cloud computing has revolutionized how applications are delivered to users and enterprises; reducing costs, improving availability, allowing dynamic scaling on demand, and improving performance.
In this course we will discuss the motivations and trade-offs of moving to the cloud. We will study the technologies behind the main components of cloud computing: infrastructure, resource sharing, development platforms, and applications. The cloud computing infrastructure is based on large datacenters that benefit from economies of scale; resource sharing is achieved through efficient virtualization of compute, network, and storage; flexible and powerful frameworks provide development platforms supporting different paradigms for building applications. This course will cover these pieces in depth and how they combine to support cloud computing. Students will also obtain hands-on experience with a set of programming assignments that will employ modern cloud computing technologies and exercise best programming/DevOps practices.
What background knowledge do I need
before taking this course?
Prerequisites: DCC205 (Data Structures) or an equivalent course.
You are supposed to have experience in a high-level programming language and in employing data-structures, as taught in DCC205. Understanding of computer architecture, computer networks, and databases as taught in DCC006 (Computer Architecture 1), DCC023 (Computer Networks) and DCC011 (Introduction to Databases), are beneficial but not assumed.
What will I learn in this course?
A student who has met the objectives of this course will be able to:
What will I do in this course?
Mastery of the subject matter of this course will be evaluated in the following ways:
Programming and DevOps assignments: Students will develop and deploy services to exercise course material, in particular: monitoring, elasticity, and management of a cloud native application; use and compare different storage approaches; and develop data analytics applications in multiple programming frameworks.
Short video on advanced topics related to cloud computing: Students will form groups to review a recent research paper related to cloud computing and prepare a short video describing the technology and relating it to material seen in the course.
Midterm exam: There will be a midterm exam in this class covering topics discussed in the first 3 weeks. The midterm will focus on the conceptual and theoretical aspects of the course. After each exam you will have the opportunity to boost your grade by designing one new challenging exam question and answer.
Comprehensive final exam: A comprehensive final exam will be designed to test students’ overall understanding of the whole course materials, with a focus on the theoretical aspects of the course. It is designed to be a comprehensive exam with a longer exam time. It covers everything you have learned from this class.
How can I prepare for the
class sessions to be successful?
● Prior reading of the textbook materials before class is always highly recommended. Engaging in discussions during class is encouraged.
●
It is your responsibility to
check the course website for any important announcements. You will need to
download course slides, assignments, instructions, and any other necessary
information from
● It is recommended that you should start to work on every assigned course work early. Allocate time to work on assignments each week to make continued progress.
● After the midterm exam grade is announced, you are encouraged to craft one new challenging exam question and answer as an optional bonus (5 bonus points) to boost your midterm grade.
What
required texts, materials, and equipment will I need?
The main book for this class is:
[DC] The Cloud Computing Book: The Future of Computing Explained. Douglas Comer. , 1st ed.
What optional texts or resources might be helpful?
Additional supplementary material will be added to Sakai. Other recommended open-access material:
[FG] Cloud Computing for Science and Engineering. Ian Foster and Dennis B. Gannon. MIT Press, 1st ed. Available at: https://cloud4scieng.org/chapters/
[DWDL] Learning Spark. Jules S. Damji, Brooke Wenig, Tathagata Das, and Denny Lee. O'Reilly, 2nd ed. Available at: https://databricks.com/p/ebook/learning-spark-from-oreilly[A1]
[MMDS] Mining of Massive Datasets. Jure Leskovec,
Anand Rajaraman, and Jeff Ullman. Cambridge University Press, 3rd ed. Available
at: http://www.mmds.org/
[OPS] Edge Cloud Operations: A Systems Approach. Peterson, Baker, Bavier, Williams and Davie. https://ops.systemsapproach.org/
Additional public resources will be used in the programming
assignments and practice exercises.
How will my grade be determined?
Total grade is 100%, composed of:
● Programming assignments: 12.5% points each, for a total of 50%
● Midterm exam: 15%
● Final exam: 25%
● Video: 10%
What are the course policies?
Communications:
Email is the best way to contact me (cunha@dcc.ufmg.br).
In general, you should expect a response to your message within 48 hours during
weekdays or 72 hours on the weekends. Please include [DCC-CloudComp]
in the email subject line. Another way to get help outside lectures is to post
questions on the online forums/discussions.
Assignment
Deadlines:
Late coursework submissions will not be accepted unless you communicate with me
prior to the due date and justify the need for an extension.
Discussion Guidelines:
Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor. Active interaction with peers and your instructor is essential to success in this course, paying particular attention to the following:
● Be respectful of others and their opinions, valuing diversity in
backgrounds, abilities, and experiences.
● Challenging the ideas held by others is an integral aspect of
critical thinking and the academic process. Please word your responses
carefully and recognize that others are expected to challenge your ideas. A
positive atmosphere of healthy debate is encouraged.
● Read your online discussion posts carefully before submitting
them.
Academic Integrity:
As a student, you
should abide by the academic honesty standard of the university. For all
graded work, students should pledge that they have neither given nor received
any unacknowledged aid.
Estimated course schedule?
|
Date |
Class topic/unit name |
Pre-class work for
students |
Planned |
Assignments due |
|
Weeks 1-2 |
Foundations, motivation, use cases, services, infrastructure |
[DC] Chapters 1-4 |
Introduction Lecture |
Assignment 1 announced |
|
Week 3 |
Virtualization I, MapReduce |
[DC] Chapters 5, 11 |
Lecture |
|
|
Week 4 |
Automation and Orchestration |
[DC] Chapters 9, 10 |
Lecture |
Assignment 1 due, Assignment 2 announced |
|
Weeks 5-6 |
Programming paradigms |
[DC] Chapters 12, 13, 14 |
Lecture Midterm |
|
|
Weeks 7-8 |
Virtualization II |
Chapters 6-8 |
Lecture |
Assignment 2 due, Assignment 3 announced |
|
Week 9-10 |
Monitoring, orchestration, and DevOps |
[DC] Chapters 10, 15 |
Lecture |
Video assignment announced |
|
Week 11-12 |
Edge computing, security, privacy, complexity |
[DC] Chapters 16, 17, 18; [OPS] Chapters 3-6 |
Lecture |
Assignment 3 due, video due |
The book is not actually free, but can be obtained as a courtesy from Databricks. [A1]