50.012 Networks¶
No. of Credits: 6 Subject Credits
Pre-requisites:
- 50.005 Computer System Engineering or
- A working knowledge of programming in Python and a strong foundation in computer systems.
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 Midterms Revision Guide