Overview: --------- This course will provide students with a thorough understanding of the basic principles of computer networks, the design philosophy of the Internet, the details of Internet protocols, and the engineering and scientific principles needed to understand computer networks. Students who complete this course will be able to describe in detail the operations of Internet protocols and develop their own Internet applications. Students will also develop an understanding of the design and construction of network programs via a semester long class project. At the end of the course, students should be capable of network programming. The main topics covered are: ---------------------------- - Fundamentals of the Internet and Computer Networks - Application Layer Protocols - Network Programming - Reliable Data Transfer Algorithms - Transport Protocols - IP Address and Routing - Link Layer - Security - Wireless Networks - Queue Management - Queuing Theory - P2P Networks Course Credits: 4