Computer Networking

Next running

6 Jan - 13 Feb 2020
7:00pm-8:30pm Mon/Thu


San Francisco



Apply for this course

Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking.

Our course is scoped to provide the working web or infrastructure engineer with the networking fundamentals required to excel at their roles. It is structured around a simplified five layer version of the OSI seven layer model of computer networks.

Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols that they’d been surrounded by for years.


  1. The Big Picture: Layers of Protocols
  2. Lab: Parsing Captured Network Packets
  3. The Domain Name System
  4. Reliable Data Delivery
  5. Lab: Write a DNS client
  6. Routing, and the Structure of the Internet
  7. Web Protocols
  8. Lab: Writing a Caching HTTP Proxy
  9. Lab: Implementing Traceroute
  10. The Link Layer and Local Area Networks
  11. Network Security
  12. Future Network Protocols

Projects and exercises

The practical component of this course involves a number of small exercises, such as parsing a packet capture file, writing a small load balancer and designing a reliable delivery protocol.

Assumed knowledge

This course assumes confident programming ability in any language.

Available sessions

6 Jan - 13 Feb 2020
7:00pm-8:30pm Mon/Thu
San Francisco
18 Feb - 27 Mar 2020
5:00pm-6:30pm PT Tue/Fri
Live online