This class offers a rigorous introduction to the problems that arise when networking computer systems, and algorithms and system designs that solve these problems. Along the way, the architectural principles and protocols that underlie the Internet will be explained in detail. Topics to be taught will include the physical layer, widely used link layers (wired and wireless), MAC protocols, internetworking, intra-domain routing, reliable transport, congestion control, wide-area (policy) routing, naming, network security, the end-to-end principle, and network applications.
Understanding the nuanced interactions between a network's distributed entities is a vital skill, without which one cannot truly be said to understand networking. To help students develop this skill, 3035/GZ01 incorporates significant programming courseworks in Python and Java, in which students build working implementations of network protocols.
Networked Systems is open to 3rd-year undergraduates (3035) and graduate students (GZ01). Despite the differing module codes, the two classes are identical: they share the same syllabus, lectures, readings, courseworks, exams, and weighting of marks.