Course Description:

Computer networks are one of the critical and most influential global infrastructures today. The goal of this course is to provide a fundamental view behind the general purpose computer networks: the principles upon which the Internet and most other computer networks are built; how those principles translate into deployed protocols; and hands-on experience solving challenging problems with network protocols.

This course provides an introduction to fundamental concepts in the design and implementation of computer networks, their protocols, and applications. Topics to be covered include: layered network architectures, applications, network programming interfaces (e.g., sockets), transport, physical media, data link protocols, local area networks and network routing. Examples will be drawn primarily from the Internet (e.g., TCP, UDP, and IP) protocol suite.


Course Logistics:

Lecture Time & Location: Tuesday & Thursday; 2:50 pm – 4:05 pm; 300 Main St. B103

Instructor: Sanjib Sur (sur@cse.sc.edu)

Office Hours: Tuesday & Thursday; 1:30 pm – 2:30 pm; 2259 Storey Innovation Center or by appointment

TA: Gaofeng Pan (gpan@email.sc.edu)

Office Hours: Friday; 12:00 pm – 2:00 pm; 2210 Storey Innovation Center


Learning Outcomes:

  • Demonstrate an understanding of the elements of a protocol and the concept of layering

  • Describe how to control access to a shared channel by multiple stations

  • Explain the concepts of error control, flow control and congestion control

  • Illustrate how a packet is routed over the Internet

  • Design, build, and describe a client-server application


Textbooks:

  • Required: Computer Networking: A Top-Down Approach, by Jim Kurose and Keith Ross, 7th Edition

  • Recommended: Computer Networks, by Andrew S. Tanenbaum

  • Recommended: Computer Networks: A Systems Approach, by Larry L. Peterson and Bruce S. Davie


Prerequisites:

  • Basic understanding of computer architecture and operating systems

  • Basic understanding of probability and statistics

  • JAVA programming (preferably in Unix)


Coursework and Grading:

  • 20% In-class Quizzes: There will be four in-class quizzes; each quiz will account for 5% of the final grade. The quizzes will follow a multiple choice question and answer format and will cover topics covered in the class so far. We will try to announce the dates at least three days before the quizzes.

  • 30% Lab Assignments: There will be five programming assignments (including protocol debugging). The detailed assignment instructions will be posted on the Blackboard. All the assignments have to be done individually. Assignment reports and codes must be submitted through Blackboard.

  • 25% Midterm Exam: The midterm exam will cover topics discussed in the class so far. It will be a closed book exam; but students are allowed to carry a cheat sheet on a one-sided 8.5''x11'' paper.
    Date: October 15 (tentative); in class.

  • 25% Final Exam: The final exam will also be a closed book exam; but students are allowed to carry a cheat sheet on a two-sided 8.5''x11'' paper.
    Date and time: December 12 at 4:00 pm; in class.

Grading scale:
90 – 100 = A; 85 – 89 = B+; 80 – 84 = B; 75 – 79 = C+; 70 – 74 = C; 65 – 69 = D+; 60 – 64 = D; ≤ 59 = F


Assignment Submission Policy: All the assignments have to be done individually. Assignment reports and codes must be submitted through Blackboard.

If you have questions regarding the grading of your assignments or exams, you must come to see the instructor within one week after the date your assignments or exams have been returned to you. If you cannot see us within one week, you need to email us within one week and make an appointment. If you believe that your assignments or exams have been lost, please notify us as soon as possible (within one week). We are not responsible for missing assignments or exams one week after they have been returned.

Attendance Policy: Students are obligated to complete all assigned work promptly, to attend class regularly, and to participate in whatever class discussion may occur. Absence from more than 10 percent of the scheduled class sessions, whether excused or unexcused, is excessive and the instructor may choose to exact a grade penalty for such absences. It is of particular importance that a student who anticipates absences in excess of 10 percent of the scheduled class sessions receives prior approval from the instructor. Refer to the Undergraduate Bulletin for more information on the class attendance policy.

Academic Integrity: University policies and procedures regarding academic integrity are defined in the policy STAF 6.25, Academic Responsibility — The Honor Code. Prohibited behaviors include plagiarism, cheating, falsification, and complicity. All potential Honor Code violations will be reported to the Office of Academic Integrity, which has the authority to implement non-academic penalties as described in STAF 6.25. Academic penalties for Honor Code violations include failure of this course.

Disability Services: Any student who has a need for accommodation based on the impact of a documented disability should contact the instructor to discuss the specific situation as soon as possible. Also, contact Disability Resources and Services at 803-777-6142 to coordinate reasonable accommodations for students with documented disabilities.