Coursera - Computer Networks
Computer networks from ISPs to WiFi and cellular networks are a key part of the information economy. These networks are the foundation for the Web, and they enable companies such as Google, Facebook and Amazon. This course introduces the fundamental problems of computer networking, from sending bits over wires to running distributed applications. For each problem, we explore the design strategies that have proven valuable in practice. Topics include error detection and correction, multiple-access, bandwidth allocation, routing, internetworking, reliability, quality of service, naming, content delivery, and security. As we cover these topics, you will learn how the internals of the Internet work to support the Web and other networked applications. You will develop a detailed understanding of widely-used networking technologies such as TCP/IP, HTTP, 802.11, Ethernet, and DNS.
- Introduction, Protocols and Layering
- Physical and Link layers
- Retransmissions, Multiple access, Switching
- Network layer, Internetworking
- Intra- and Inter-domain Routing
- Transport layer, Reliability
- Congestion Control
- DNS, Web/HTTP, Content Distribution
- Quality of Service and Real-time Apps
- Network Security
We assume a rudimentary understanding of probability (such as the likelihood of an event) and computer system organization (such as binary representations and arithmetic). You should be comfortable with simple calculations and manipulations using scientific notation. We teach the course at the upper-undergraduate level. To do the optional, hands-on exercises you should be comfortable with installing systems software and running command-line programs.
The course consists of two to three hours of video lectures per week, presented in short segments. For those seeking to pass the course, there will be regular, required homeworks of textbook-style problems and optional hands-on exercises to cover the basics of the material. The course has a midterm and final exam.