Instructor(s): Maria Konte
Course Page: Link
As the name entails, CS-6250 is an introductory course to Computer Networking covering a wide range of topics from the evolution of the internet, basic routing algorithms, software-defined networking, internet security, CDNs and modern applications like VoIP video and IoT.
The course is structured in weekly segments, capped off with a mandatory quiz. At a high-level, we covered the following topics:
- Networking OSI Model
- Transport Layer - TCP and UDP
- Intradomain Routing - Distance Vector & Open Shortest Path First (OSPF) Algorithms
- Interdomain Routing - Border Gateway Protocol and Internet Exchange Points
- Router Design
- Software Defined Networking
- Internet Security, Surveillance & Censorship
- Video, CDNs and Overlay Networks
The reading material was suprisingly thorough and was far superior to the recorded lecture content. The weekly quizzes were a good forcing function to keep you ontop of the required material and prepared you very well for the two exams.
The project work was hit-or-miss for me personally. Some were tedious configuration-like homework like configuring a firewall, or doing analysis of BGP historical data to find hijacks an route leak events. Personally, the following projects were the interesting:
Distributed Minimum Spanning Tree
We take the standard algorithm problem of a minimum spanning tree, and implement it with a messaging protocol! Prim's and Kruskals won't work here since they both assume we can process each node at one time and we know the whole state of the graph. Thinking through the message data structure and message broadcast logic was slightly tricky, but interesting!
Distance Vector Routing
How do we updating our network's routing tables? Implement a distributed Bellman-Ford algorithm! Similar to the MST project, there were some tricky edge cases to watch out for, but was a super interesting and practical algorithm to implement from scratch
BGP Hijacking Simulation
We simulated a BGP Hijack attack with Mininet to force a rerouting of our own website to an attackers website. Another practical assignment that helps demonstrate some real-world problems network providers face everyday.
Computer Networks was my second/third course in the OMSCS program (taken in parallel with Computer Vision). It provided a good introduction to networking which was helpful for me personally, since I've never formally taken any networking in my undegraduate program. Overall, I think I spent ~2-3 hours per week reviewing course material. Assignment work hours varied by difficulty with the routing assignments taking up the most time.
- Not super-demanding in-terms of hours on assignments and quizzes
- Broad coverage of networking concepts. Content seems to have been revamped and improved upon from previous semesters
- Quiz grading wasn't always consistent. Alot of gotcha questions with inconsisten wording
- Certain sections of the course wasn't very in-depth. Would have preferred more depth into more interesting sections like CDN design, video streaming, etc...
In summary, this was a decent course to start a Computing specialization. If you're looking for something more challenging, look at the more advanced course offerings.