|Instructor(s)||Conner, William (wconner)|
|Meeting Times||Wednesday 5:30pm - 8:30pm|
|Fulfills||Core Systems Elective|
Broadly, this course will focus on the history, theory and implementation of computer networks. We will discuss the low-level technologies that move bits around (such as Ethernet and WiFi), the high-level applications that are part of our everyday 21st-century lives (such as email, the Web, and mobile phones), and everything in between (security, TCP/IP).
At the completion of this quarter, you will (or should!) be able to explain, in detail, how data makes its way around the Internet when you click on a web link, how you can drive around at 80 MPH talking on a cell phone without the call dropping, how you can make a streaming video call over a lousy wireless link without frame dropping or jitter. In short, we'll pull back the curtain on what can be a somewhat mysterious and magical part of working with computers.
• Computer Networking History
• Applications (HTTP, DNS, email, cloud computing)
• Transport Layer (e.g. TCP, UDP)
• Network Layer (IP, IPv6)
• Link Layer (Ethernet)
• Wireless and Mobile Computing
Weekly homeworks, several exams, and projects. You will complete the projects in teams of two. These 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).
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)
Recommended (but not required): UNIX Bootcamp
This class is scheduled at a time that conflicts with these other classes: