Lec 1
Lec 1
Course Overview
1
Agenda for Today’s Class
2
Send/Receive data over a network
3
How are these apps architected?
Internet is a key enabler for these applications
Internet
4
What is the Internet?
l Take 2-3 mins and write down what you think is
the Internet
5
What is the Internet?
l The Internet is not a particular kind of network
l There are many different types of networks
l Cellular, WiFi, Ethernet, Optical networks, etc.
6
What does the Internet look like?
7
First Half of the Course
l Study fundamental network communication
concepts via the case study of the Internet
8
First Half: Fundamental Questions
l How to write applications that can communicate over the
network?
l Socket programming, Web and HTTP Assignment 1
Part a
User Remote
device services
Internet
10
If you are designing a Facebook-like service,
what would be your design goals?
11
Service Provider Design Goals
l Scalability
l Scale to support millions/billions of users
l Availability
l Services should be highly available, despite failures
l Low latency
l Customers should be able to access services with low
latency
12
To scale, applications are hosted
in large data centers
l 10,000+ servers common in large-scale data centers
l Single “applications” spread across many servers
13
Datacenters with 100,000+ Servers
14
Distributed Applications
l Typical applications have many distributed
components
l E.g., a bing search query touches > 100 machines
*Design, Lessons and Advice for Building Large Scale Distributed Systems by Jeff Dean, Google Senior Fellow and lead of Google AI, 2009
17
Second Half: Fundamental Questions
l How to coordinate between different components of a
distributed application?
l Time synchronization, logical clocks, election algorithms
Assignment 3
18
Course Organization
Make sure you carefully go over the course outline
19
Course Teaching Methodology
l Synchronous (live lectures) on Zoom
l Lectures will be recorded
l Recordings will be uploaded on YouTube
20
Learning the Material
l Attend lectures
l Participate in class discussions
l You are responsible for everything covered in class
l Attend tutorials
22
Course Grading
l Programming assignments
l Total 35% of the grade
l Three programming assignments
l Programming language: Python
l Exams:
l Final: 30% (Comprehensive)
l Quizzes
l 35% of the grade, N-2 policy, Announced in outline
23
Programming Assignments (PA)
l Goal: Practice designing, implementing and
debugging networked applications and protocols
24
Policies: Write your own code
l All assigned work must be done individually (unless
specified otherwise)
e !
l
iz
Students must be prepared to explain any program code
r
they submit
g ia
All submissions are subjectla
l
’t P to plagiarism detection
o
Students cannot n
copy code from the Internet
D
l
28
Warnings
l Assignments will take a lot of time
l Need to understand the problem and protocol, and then
carefully design
l Can take 5x more time to debug than “initially program”
l Start early
29
Course Staff
30
Instructor
l Instructor
l Dr. Zafar Ayyub Qazi
l Assistant Professor at LUMS, 2018-present
l Email: zafar.qazi@lums.edu.pk
l Webpage: http://web.lums.edu.pk/~zafar/
l Academic background
l Postdoctoral Scholar at UC Berkeley, 2016-2017
l PhD in CS, SUNY Stony Brook, 2010-2015
l BSc in CS, LUMS, 2009
l Area of Research
l Distributed Systems and Networks
31
Teaching Assistants
l Maleeha Masood
l Muhammad Basit Awan
l Hayat Awais Malik
l Taimoor Tariq
l Talal Touseef
l Syeda Mashal Abbas Zaidi
l Adnan Abbas
l Sadia Zubair
l Abdul Monum
32
What do I expect from you?
33
I Expect Three Things
l Try to attend every class
34
Questions?
35
Next Class
l Overview of the Internet
36
Thank you!
37