CMSC 23300 is a head-first dive into computer networking. We will introduce core concepts and protocols, but also focus on getting our hands dirty by developing real-world networking applications, with the goal of providing students with the tools and the knowledge needed to develop scalable, efficient and secure network-based applications.
CMSC 23300 targets a deeper understanding of Internet protocol and design of networked systems, going beyond questions of what to why. We discuss a wide range of systems and protocols from classical transport protocols, to today's decentralized systems, anonymous systems, data centers, and mobile devices.
Nothing beats the first hand experience of building networking protocols and applications from the ground up. 23300 students will build a range of networking projects ranging widely in complexity from basic networking protocol clients to complex networked systems.
Significant advances emerge every few years to reshape the field of networking. The final class project is redesigned every year (or two) to give students experience on the newest applications and protocols. Projects in recent years have included P2P web servers, multi-hop Chaum-mix anonymous networks, censorship-resistant social networks, and mobile news aggregation clients.