CS971: Computer Networks 2
Credits: 3-0-0-9
Instructor: Dr. Amitangshu Pal
Major, Measurable Learning Objectives
Having successfully completed this course, the student will be able to:
- Learn how the Internet works
- Learn the network layer technologies and protocols and their functions
- Learn transport layer protocols and their functions
- Learn application layer protocols and their functions
- Design a network application from scratch
Prerequisites and Co-requisites
ESC 101, CS 210, CS9XX (Computer Networks 1)
Texts and Special Teaching Aids
Lecture notes, lecture videos, and relevant reference texts will be provided to students by the instructor. Self-study would be an important component of this course.
Syllabus
The students will be exposed to the following topics:
- Network layer: Internet Protocol, IPv6, ARP, DHCP, ICMP, Routing algorithms: Distance vector, Link state, Metrics, Inter-domain routing. Subnetting, Classless addressing, Network Address Translation. [6 hours]
- Transport layer: UDP, TCP. Connection establishemnt and termination, sliding window revisited, flow and congestion control, timers, retransmission, TCP extensions, etc. [6 hours]
- Design issues in protocols at different layers. [3 hours]
- Network Programming: Socket Programming. [3 hours]
- Application Layer. Examples: DNS, SMTP, IMAP, HTTP, etc. [2 hours]
The course will consist of 3 hours of lectures per week, and homework.
Grading
Semester grades will be based on the following weights.
- Quizzes 10% each (two proctored)
- Programming assignment 30% (one at-home)
- Final exam 50% (one proctored)
Semester grades will be determined after all work is completed and graded. Point ranges for letter grades will be based on several factors, including absolute and relative performance. Letter grades will not be based on a fixed, predetermined curve or point range.