I just completed the course Computer Networks at Coursera and here’s my two cents. It is offered by professors David Wetherall, Arvind Krishnamurthy, John Zahorja of the University of Washington. The course is incredibly informative and invaluable.
The course introduces the fundamental problems of computer networking, from sending bits over wires to running distributed applications. It explores the design strategies that have been proven valuable in practice. Topics include error detection and correction, multiple-access, bandwidth allocation, routing, inter-networking, reliability, quality of service, naming, content delivery, and security.
It helps the students gain an understanding of the how the Internet works to support the Web and other networked applications and develop a detailed understanding of the widely used networking technologies such as TCP/IP, HTTP, 802.11, Ethernet, and DNS.
It is a 10 weeks course. Each week, a set of lectures, a quiz and an optional programming assignment are released. Then, there are mid-term and final exams. The material is engaging and the presentation is marvelous.
This is supposed to be an introductory course to computer networks and doesn’t expect much on part of the students. Still, it covers the subject in great depth, from internet history to reference models, from framing techniques to multiple access schemes, routing protocols, congestion control, DNS, CDNs, Quality of Service and Network Security. I think it is a fun and engaging course.