CSC 257/457 - Computer Networks (Fall 2014)
Class time: Monday, Wednesday 12:30pm-1:45pm.
Class location: CSB 601.
Instructor: Kai Shen
Office hours: Monday, Wednesday 1:45pm-2:45pm (right after class) at CSB 714.
TA: Zhuan Chen (firstname.lastname@example.org)
Office hours: Tuesday, Thursday 3:00pm-4:00pm at CSB 626.
This course explores the field of computer networking and communication,
emphasizing network architecture and software design issues. We will discuss
the basic performance and engineering trade-offs in the design and
implementation of computer networks at every level. The idea is to learn not
only what computer networks are and how they work today, but also why they are
designed the way they are and how they are likely to evolve in the future. We
will draw examples primarily from the Internet in this course.
This course is laid out into three portions. The first portion covers
foundational materials about computer networks, including discussions on
data link layer (Ethernet, token ring, etc.), network layer (IP, routing
protocols, etc.), transport layer (TCP/UDP), and application layer (HTTP,
FTP, SMTP, and DNS). The second portion of this course touches a few
advanced topics in computer networks, including multimedia networking,
quality of service, computer security, wireless networks, and overlay
networks (including many peer-to-peer systems). The last part of this
course provides a few case studies of the current computer networking
industry and ongoing research topics.
Text and Reference Books:
The course textbook is "Kurose and Ross, Computer Networking:
A Top-Down Approach Featuring the Internet", 6th edition (2012).
You will perform significant network programming for this course.
You can find many network programming resources on the web and even from
Linux manual pages. However, if you would like to have an advanced
network programming reference book (for C), a well-recommended one is
"Stevens, Unix Network Programming, Volume I", 2nd edition (1998).
Note that it is not necessary to have this book for the class.
Assignments and Grading:
There will be about six programming assignments and two exams.
Two written exercises may also be given but they will not be graded.
Your grade will be based on a combination of the programming assignments and exams.
A tentative grade division is listed below.
5% - prog. assignment #0
5% - prog. assignment #1
10% - prog. assignment #2
10% - prog. assignment #3
10% - prog. assignment #4
20% - prog. assignment #5
15% - midterm exam
25% - final exam
An additional credit (up to 5%) may be awarded based on your participation
in class discussions.