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 and Virtual on Blackboard Collaborate

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

Office: Storey Engineering and Innovation Center, Room 2259 and Virtual on Blackboard Collaborate

Office Hours: Tuesday & Thursday; 1:30 pm – 2:30 pm or by appointment

TA: Matthew Sharp (mpsharp@email.sc.edu)

Office: Virtual on Blackboard Collaborate

Office Hours: Monday, Wednesday 2:00 pm – 3:00 pm or by appointment


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:

  • 25% In-class Quizzes: There will be five 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.

  • 25% Programming 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 till then.
    Date: October 13 (tentative).

  • 25% Final Exam: The final exam will be a comprehensive exam covering all the topics discussed during the semester.
    Date and time: December 8 at 4:00 pm.

Quizzes, midterm exam, and final exam will be held online via Blackboard.

Grading scale:
90 – 100 = A; 87 – 89 = B+; 80 – 86 = B; 77 – 79 = C+; 70 – 76 = C; 67 – 69 = D+; 60 – 66 = D; ≤ 59 = F


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

Grade appeals for any assessment must be requested (via email to me) within three (3) days of my posting the assignment grade to Blackboard. While I will always answer your questions on the grading of an assessment, your score on the assignment will not be changed unless you request a grade review during the 3-day grade appeal time period.

Attendance Policy: Students are expected to regularly attend the class or view the virtual lectures, keep up with the course materials, and ask the instructor questions.

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.

Student Disability Resource Center: The University of South Carolina is committed to providing access to programs and services for qualified students with disabilities. If you are a student with a disability and require an accommodation to participate and complete requirements for this class, then notify me immediately and contact the Office of Student Disability Services (1523 Greene Street, LeConte College Room 112A, 803-777-6142, sasds@mailbox.sc.edu) for verification of eligibility and determination of specific accommodations. In addition, please provide me the required accommodation letter from the Office of Student Disability Services. All course materials are available in alternative format upon request.