| Section | 1 |
|---|---|
| Instructor(s) | Singh Sahota, Davender (dsahota) |
| Location | Online Only |
| Meeting Times | Thursday 5:30pm - 8:30pm |
| Fulfills | Core Systems Elective |
*This course will be conducted remotely and will be online only for Winter 2021*
This course focuses on the history, theory, and implementation of computer networks. Topics include everything from low-level technologies (e.g., Ethernet, Wi-Fi) to high-level applications (e.g., Web, email). By the end of this course, you should have a better understanding of the underlying network protocols used by the computers, smart phones, and other network-enabled devices that you depend on every day.
Course Contents
• Computer Networking History
• Applications (HTTP, DNS, email)
• Transport Layer (TCP, UDP, QUIC)
• Network Layer (IPv4, IPv6, ICMP)
• Link Layer (Ethernet)
• Wireless and Mobile Computing
• Security (Cryptography, SSL/TLS, Web vulnerabilities)
Coursework
Weekly homeworks, weekly labs, two exams, and three projects. The projects will be a series of hands-on programming and design tasks. Based on provided specifications (e.g., the protocol standard) you will implement different network servers or clients (e.g., a simple web server or a simple network router).
Course Textbooks
Computer Networking: A Top-Down Approach (7th Edition) by James F. Kurose and Keith W. Ross
Please note this is the new 7th edition; previous iterations of this course used the 6th edition.
Core Programming (completed or concurrently enrolled)
Familiarity with Python
Experience with concurrent programming (threads, synchronization)
Recommended (but not required): UNIX Bootcamp
This class is scheduled at a time that conflicts with these other classes: