Introduces students to the fundamentals of computer networks. Focus on layered architecture of the network protocol stack. Case studies drawn from the Internet, combined with practical programming exercises. Concepts include the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, routing protocols, and wireless/mobile networking and their applications such as how to achieve reliable/secure communications over channels, how to find a good path through a network, how to share network resources among competing entities, how to find an object in the network, and how to build network applications. Prerequisite: ECE 250D, CompSci 210D or CompSci 250D.