CMSC 23320 - Foundations of Computer Networks¶
Course Staff¶
Instructor
Course Description¶
This course focuses on the principles and techniques used in the development of networked and distributed software. Topics include programming with sockets; concurrent programming; data link layer (Ethernet, packet switching, 802.11, etc.); internet and routing protocols (IP, IPv6, ARP, intra-domain and inter-domain routing, etc.); end-to-end protocols (UDP, TCP); and other commonly used network protocols and techniques.
In this course, students will learn how to…
…implement multithreaded client/server applications using sockets.
…interpret existing specifications of network protocols, and translate them into code.
…design and combine network protocols that form the foundation of the Internet.
…develop complex software starting from an existing codebase, working collaboratively with other developers, and using industry-standard tools, including generative AI.
In a nutshell, students will learn how the Internet works. By the end of this course, students should understand everything that happens “under the hood” when (for example) a web page is requested, from the moment you click on a link in your browser to the moment you get the requested page back.
For more details, please see the syllabus.