This is a first course on computer networks. The course provides a rigorous introduction to computer networks, focusing on the principles, architectures, and protocols that underpin the modern Internet. Students will study how networks are designed to be scalable and robust. They will also learn the performance characteristics of networks and how these design goals are achieved through layered abstractions and well-defined protocols.
The course examines the Internet's protocol stack in depth, covering the physical, link, network, and transport layers, with emphasis on core mechanisms such as addressing, routing, error control, congestion control, and end-to-end reliability. Students will also be introduced to modern networking paradigms including the QUIC protocol, Network Security (TLS), and Software-Defined Networking (SDN). The course bridges theory and practice, preparing students to understand and engineer modern distributed and networked systems.