Lectures - CSCI 353, Spring 2022 Department of Computer Science [ Home | Description | Lectures | Videos | Labs | Programming | Piazza ] Lectures - CSCI 353, Spring 2022 Within 24 hours after a lecture is over, I will post the lecture slides I used in the section below. For a preview of future lectures, please see the tentative slides section below. To download all the PDF files below in one command (so you can study for exams), do the following inside a terminal in Ubuntu 16.04:
wget -r -l 1 --user=USERID --password=PASSWORD http://merlot.usc.edu/cs353-s22/lectures.html where USERID and PASSWORD are the user ID and password used to access protected content from our class web site. But please note that the lecture slides can change at any time without notice. Therefore, it's a good idea to re-run the above command often to synchroniza your copy with the server! Information About Live Lectures on Zoom Live lectures will be recorded in Zoom. For serucity reasons, you must sign into your Zoom account using USC Shibboleth SSO (Single Sign-On). Please note that this is different from signing into your Zoom account using your USC e-mail address! To check if you signed in into Zoom correctly, start Zoom and click on Settings if you are on your phone. On top of the screen right next to your name, it should say LICENSED. (If you are using a browser, then you should click on Profile and look for your User Type.) If it doesn't say LICENSED (and says "Basic" instead), it means that you are signing into Zoom using your personal account. In that case, you should sign out (on your phone, click on Profile, scroll all the way down to the bottomm and click on Sign Out). Then sign in again. On the Sign In screen, don't enter your e-mail address there, but look for an SSO button instead. Click on the SSO button and enter "USC" as the company domain and it will take you to the familiar USC Shibboleth SSO screen where you need to provide your USC NetID and password (this is the same screen you get when you login to your USC e-mail account). Information About Videos on D2L Access to videos are protected by an additional level of security measure. All videos here are on D2L, please enter your D2L user ID and password. Please also see hints about using the D2L video viewer. You also need to enable 3rd party cookies in your browser. Videos & PDF Lecture Slides (Please note that access to lecture notes and videos is restricted.) Week 1 Lecture 1 videos and lecture slides (for Jan 10, 2022): part 1 of Lecture 1 (PDF) - course administration recording of the live lecture - 46 minutes pre-recorded video part 2 of Lecture 1 - 53 minutes (PDF) - course administration Lab 1 (PDF) video (part 1 of 2) - 40 minutes video (part 2 of 2) - 32 minutes Lecture 2 (PDF) (for Jan 12, 2022) - pa1 video (part 1 of 1) - 40 minutes live Lecture 2 (house-keeping PDF) (Jan 12, 2022) recording of the live lecture - 39 minutes Week 2 No live lecture on Jan 17, 2022 - Martin Luther King Day, university holiday Lecture 3 (PDF) (for Jan 18, 2022) - pa1 video (part 1 of 2) - 40 minutes video (part 2 of 2) - 39 minutes Lab 2 (PDF) - this video assumes that you have finished watching all the pa1 videos (i.e., Lecture 2 and Lecture 3) video (part 1 of 1) - 20 minutes Lecture 4 (PDF) (for Jan 19, 2022) - socket programming video (part 1 of 3) - 41 minutes video (part 2 of 3) - 40 minutes video (part 3 of 3) - 39 minutes live Lecture 4 (house-keeping PDF) (Jan 19, 2022) recording of the live lecture - 24 minutes Week 3 Lab 3 (PDF) - this video assumes that you have finished watching all the socket programming videos (i.e., Lecture 4) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 20 minutes Lecture 5 (PDF) (for Jan 24, 2022) - pa2 (this video assumes that you have finished watching Lab 3 videos video (part 1 of 2) - 41 minutes video (part 2 of 2) - 44 minutes live Lecture 5 (house-keeping PDF) (Jan 24, 2022) recording of the live lecture - 27 minutes Lecture 6 (PDF) (for Jan 26, 2022) - what is the Internet (1.1), the network edge (1.2) video (part 1 of 2) - 35 minutes video (part 2 of 2) - 41 minutes live Lecture 6 (house-keeping PDF) (Jan 26, 2022) recording of the live lecture - 9 minutes Week 4 Lab 4 (PDF) - this video assumes that you have finished watching PA2 videos (i.e., Lecture 5) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 26 minutes Lecture 7 (PDF) (for Jan 31, 2022) - the network core (1.3) video (part 1 of 2) - 41 minutes video (part 2 of 2) - 41 minutes live Lecture 7 (house-keeping PDF) (Jan 31, 2022) recording of the live lecture - 30 minutes Lecture 8 (PDF) (for Feb 2, 2022) - delay, loss, throughput (1.4), protocol layers, service models (1.5), network under attack (1.6) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 33 minutes live Lecture 8 (house-keeping PDF) (Feb 2, 2022) recording of the live lecture - 24 minutes Week 5 Lab 5 (PDF) video (part 1 of 1) - 39 minutes Lecture 9 (PDF) (for Feb 7, 2022) - history of Internet (1.7), multithreading parts 1 & 2 video (part 1 of 2) - 35 minutes video (part 2 of 2) - 34 minutes live Lecture 9 (house-keeping PDF) (Feb 7, 2022) recording of the live lecture - 17 minutes Lecture 10 (PDF) (for Feb 9, 2022) - multithreading part 2, multithreading part 3 (mutex) video (part 1 of 2) - 40 minutes video (part 2 of 2) - 40 minutes live Lecture 10 (house-keeping PDF) (Feb 9, 2022) recording of the live lecture - 15 minutes Week 6 Lab 6 (PDF) - this video assumes that you have finished watching multithreading parts 1 & 2 videos (i.e., Lecture 9 and the first half of Lecture 10) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 23 minutes Lecture 11 (PDF) (for Feb 14, 2022) - multithreading part 3 (mutex), principles of network applications (2.1), the web and HTTP (2.2) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 40 minutes live Lecture 11 (house-keeping PDF) (Feb 14, 2022) recording of the live lecture - 18 minutes Lecture 12 (PDF) (for Feb 16, 2022) - the web and HTTP (2.2), electronic mail in the Internet (2.3) video (part 1 of 2) - 39 minutes video (part 2 of 2) - 41 minutes live Lecture 12 (house-keeping PDF) (Feb 16, 2022) recording of the live lecture - 15 minutes Week 7 Lab 7 (PDF) - this video assumes that you have finished watching multithreading part 3 videos (i.e., Lecture 10 and the beginning of Lecture 11) video (part 1 of 2) - 41 minutes video (part 2 of 2) - 18 minutes (2/21) - Presidents' Day, university holiday (no videos) Lecture 13 (PDF) (for Feb 23, 2022) - electronic mail in the Internet (2.3), DNS (2.4), peer-to-peer applications (2.5) video (part 1 of 2) - 40 minutes also see this web page about trying out SMTP on Ubuntu video (part 2 of 2) - 42 minutes Preview: (Feb 21, 2022) - Presidents' Day, university holiday Lecture 13 video will cover electronic mail in the Internet (2.3), DNS (2.4), peer-to-peer applications (2.5). You can get a preview by looking at slides from Fall 2021 (please note that videos there are invalid). (Mar 7, 2022) - midterm exam (during class time) (Mar 14-18, 2022) - spring recess (May 6, 2022) - final exam, 11:00am - 1:00pm (firm) Tentative Slides The following are tentative slides (in PDF format) for this semester. Administrative course administration (PDF) exams (PDF) housekeeping (PDF) (frequent updates) Programming Assignments PA1 (PDF) PA2 (PDF) PA3 (PDF) PA4 (PDF) PA5 (PDF) Background for Programming Assignments and Labs socket programming (PDF) multithreading parts 1 & 2 - thread creation and termination (PDF) first.cpp, first-arg.cpp, fac.cpp, create.cpp, bad-create.cpp, join.cpp, exit-detach.cpp, detach.cpp, bad-dyn-create.cpp, bad-dyn-create2.cpp, bad-dyn-create3.cpp, join-dyn.cpp, join-dyn3.cpp, join-shared.cpp, join-new.cpp multithreading part 3 - mutex (PDF) race.cpp, no-race.cpp, no-race-atomic.cpp multithreading part 4 (generalized synchronization with condition variables) (PDF) cv.cpp Ch 1 - Computer Networks and the Internet what is the Internet (1.1), the network edge (1.2), the network core (1.3) (PDF) delay, loss, throughput (1.4), protocol layers, service models (1.5), network under attack (1.6), history of Internet (1.7) (PDF) Ch 2 - Application Layer principles of network applications (2.1), the web and HTTP (2.2), electronic mail in the Internet (2.3) (PDF) DNS (2.4), peer-to-peer applications (2.5), video streaming and conent distribution networks (2.6) (PDF) socket programming (2.7) (PDF) udp-echo-client.cpp udp-echo-server.cpp my_udp_socket.cpp my_udp_socket.h Ch 3 - Transport Layer introduction and transport-layer services (3.1), multiplexing and demultiplexing (3.2), connectionless transport: UDP (3.3) (PDF) principles of reliable data transfer (3.4) (PDF) connection-oriented transport: TCP (3.5) (PDF) principles of congestion control (3.6), TCP congestion control (3.7) (PDF) Ch 4 - The Network Layer: Data Plane overview of network layer (4.1), what's inside a router (4.2) (PDF) the Internet protocol (IP): IPv4, addressing, IPv6, and more (4.3), generalized forwarding and SDN (4.4) (PDF) Ch 5 - The Network Layer: Control Plane introduction to the network control plane (5.1), routing algorithms (5.2) (PDF) intra-AS routing in the Internet: OSPF (5.3), routing among the ISPs: BGP (5.4) (PDF) the SDN control plane (5.5), ICMP: the Internet control message protocol (5.6), network management and SNMP (5.7) (PDF) Ch 6 - The Link Layer and LANs introduction to the link layer (6.1), error-detection and correction techniques (6.2), multiple access links and protocols (6.3) (PDF) switched local area networks (6.4) (PDF) link virtualization: a network as a link layer (6.5), data center networking (6.6) (PDF) retrospective: a day in the life of a web page request (6.7) (PDF) Ch 7 - Wireless and Mobile Networks (will cover part of this chapter if there is time) introduction wireless and mobile networks (7.1), wireless links and network characteristics (7.2) (PDF) wifi: 802.11 wireless LANs (7.3) (PDF) cellular Internet access (7.4), mobility management: principles (7.5), mobile IP (7.6), managing mobility in cellular networks (7.7), wireless and mobility: impact on higher-layer protocols (7.8) (PDF) Miscellaneous blank slides (for use by instructor) (PDF) Detailed Video Schedule (also subject to change without notice) The number of minutes below are rough estimated lecture video minutes and they do not include lab video minutes. Also, slide numbers below refers to the slide numbers in the Tentative Slides section above and they are also estimates since I may add or delete slides. Please note that we are covering exactly the same material as previous semesters. This means that we need to cover 28 80-minute lectures and 14 50-minute lab lectures. In previous semester, when certain lecture days fell on university holidays, extra lectures were added so that the exact material can be covered. For this semester, 1/17 is a university holiday. Therefore, the lecture that was supposed to be held on that day (i.e., Lecture 3) was moved to the next day (i.e., scheduled for 1/18 and the date is highlighted in bold below). Week # Lecture # Dates Minutes Lecture Topics 1 1 1/10 80 course administration (slides 1-64) 2 1/12 80 pa1 (slides 1-14) 2 3 1/18 80 pa1 (slides 14-93) 4 1/19 80 socket programming (slides 1-49) 3 5 1/24 80 pa2 (slides 1-32) 6 1/26 80 what is the Internet (1.1), the network edge (1.2), the network core (1.3) (slides 1-29) 4 7 1/31 80 what is the Internet (1.1), the network edge (1.2), the network core (1.3) (slides 30-71) 8 2/2 80 delay, loss, throughput (1.4), protocol layers, service models (1.5), network under attack (1.6), history of Internet (1.7) (slides 1-62) 5 9 2/7 80 delay, loss, throughput (1.4), protocol layers, service models (1.5), network under attack (1.6), history of Internet (1.7) (slides 63-69), multithreading parts 1 & 2 - thread creation and termination (slides 1-39) 10 2/9 80 multithreading parts 1 & 2 - thread creation and termination (slides 39-46), multithreading parts 3 - mutex (slides 1-19) 6 11 2/14 80 multithreading parts 3 - mutex (slides 19-25), principles of network applications (2.1), the web and HTTP (2.2), electronic mail in the Internet (2.3) (slides 1-22) 12 2/16 80 principles of network applications (2.1), the web and HTTP (2.2), electronic mail in the Internet (2.3) (slides 23-68) 7 - 2/21 - Presidents' Day, university holiday (no videos) 13 2/23 80 principles of network applications (2.1), the web and HTTP (2.2), electronic mail in the Internet (2.3) (slides 69-75), DNS (2.4), peer-to-peer applications (2.5), video streaming and conent distribution networks (2.6) (slides 1-34) 8 14 2/28 80 DNS (2.4), peer-to-peer applications (2.5), video streaming and conent distribution networks (2.6) (slides 35-69), socket programming (2.7) (slides 1-56) 15 3/2 80 pa3 (slides 1-16), multithreading part 4 (generalized synchronization with condition variables) (slides 1-21), introduction and transport-layer services (3.1), multiplexing and demultiplexing (3.2), connectionless transport: UDP (3.3) (slides 1-30) 9 16 3/7 80 introduction and transport-layer services (3.1), multiplexing and demultiplexing (3.2), connectionless transport: UDP (3.3) (slides 31-36), principles of reliable data transfer (3.4) (slides 1-45) - 3/9 - No Class (no videos) - - 3/14&3/16 - Spring Recess (no videos) 10 17 3/21 80 principles of reliable data transfer (3.4) (slides 44-78) 18 3/23 80 connection-oriented transport: TCP (3.5) (slides 1-46) 11 19 3/28 80 principles of congestion control (3.6), TCP congestion control (3.7) (slides 1-74) 20 3/30 80 overview of network layer (4.1), what's inside a router (4.2) (slides 1-89) 12 21 4/4 80 the Internet protocol (IP): IPv4, addressing, IPv6, and more (4.3), generalized forwarding and SDN (4.4) (slides 1-104) 22 4/6 80 pa4 (slides 1-5), introduction to the network control plane (5.1), routing algorithms (5.2) (slides 1-99) 13 23 4/11 80 introduction to the network control plane (5.1), routing algorithms (5.2) (slides 99-136), intra-AS routing in the Internet: OSPF (5.3), routing among the ISPs: BGP (5.4) (slides 1-14) 24 4/13 80 intra-AS routing in the Internet: OSPF (5.3), routing among the ISPs: BGP (5.4) (slides 14-42), the SDN control plane (5.5), ICMP: the Internet control message protocol (5.6), network management and SNMP (5.7) (slides 1-41) 14 25 4/18 80 introduction to the link layer (6.1), error-detection and correction techniques (6.2), multiple access links and protocols (6.3) (slides 1-56) 26 4/20 80 introduction to the link layer (6.1), error-detection and correction techniques (6.2), multiple access links and protocols (6.3) (slides 57-86), introduction wireless and mobile networks (7.1), wireless links and network characteristics (7.2) (slides 1-16) 15 27 4/25 80 introduction wireless and mobile networks (7.1), wireless links and network characteristics (7.2) (slides 16-41), wifi: 802.11 wireless LANs (7.3) (slides 1-37) 28 4/27 80 switched local area networks (6.4) (slides 1-67), link virtualization: a network as a link layer (6.5), data center networking (6.6) (slides 1-17), retrospective: a day in the life of a web page request (6.7) (slides 1-68) [Last updated Sat Feb 19 2022] [Please see copyright regarding copying.] [ Home | Description | Lectures | Videos | Labs | Programming | Piazza ]