50.012 Networks

No. of Credits: 6 Subject Credits
Pre-requisites:


Course Description

This course will introduce the principles and practice of computer networking, with emphasis on the Internet. Students will learn concepts, principles, protocols, and applications of computer networks, including packet switching, layered architectures, TCP/IP, physical layer, error control, window flow control, local area networks (Ethernet, Token Ring; FDDI), network layer, congestion control, quality of service, multicast, network programming interfaces, networked applications.

Learning Objectives

  • Explain fundamental network protocols.
  • Describe the organisation of computer networks, and classify factors influencing computer network development and the reasons for having variety of different types of networks.
  • Solve standard problems in interconnections between autonomous networks.
  • Model the Internet structure and derive operational parameters.
  • Design optimized network topology for given problem settings.
  • Analyze and evaluate a provided network setup.
  • Design and implement a server-client architecture based on sockets.

Measurable Outcomes

  • Description of the essential features of different networking protocols, such as TCP, IP, DNS, and ARP.
  • Conceptual design of a computer network based on a set of provided operational requirements.
  • Application of routing algorithms to determine the shortest path in an network such as the internet, modeled as a weighted graph.
  • Model and analysis of a network of autonomous systems.
  • Analysis of a real network setup and critique of the design decisions.
  • Design and implementation of a client-server application program using sockets.

Course Notes

This set of course notes was graciously shared by Tey Siew Wen , updated as of 06 February 2020.

Follow her on GitHub and give her your messages of appreciation!

Download Course Notes

Download Midterms Revision Guide

Download Finals Revision Guide

View Source Code