CSC175: Data Communications and Networks

Dr. Chuck C. Liang
Office: 201A Adams Hall Office Phone: (516 463) 5559

Course Description:

An introduction to the principles and practices of local area and wide area networking. Topics will be organized around the Internet TCP/IP reference model, and will include network configuration, protocol, security, and possibly network programming. These topics will be studied conjointly with the Linux network operating system.

Prerequisite: CSC 120, Math 19, Junior standing.

Required Text: "Computer Networks: A Systems Approach, 5th Ed. " by L. Peterson and B. Davie.

Class Web Page:

Tentative List of Topics:

  1. Overview of networking concepts
  2. The OSI and Internet reference models
  3. Basic Data Transmission principles: bit streams, bandwidth, etc ...
  4. Error detection and correction
  5. Wireless Protocols
  6. Ethernet Protocol
  7. Packet Switching
  8. The Internet Protocol Layer
    1. Packet Format
    2. Network Classes, subnets and supernets
    3. Routing
    4. ICMP
    5. IPv6
    6. ARP, DHCP, DNS
  9. The Transport Layer
    1. TCP
    2. UDP
  10. Firewalls with iptables
  11. Network Programming with sockets
  12. Network Security: Encryption and Authentication
  13. Interoperability and Middleware
  14. Advanced topics (if time allow)

Exams, Assignments and Grading

Assignment will be given regularly. There will be a midterm exam and a final. The final exam will be cumulative. The grade distribution will be roughly as follows: midterm: 25%, final 30%, quizzes, homeworks and programming assignments 45%.

All material handed in must be in hard copy, and be well organized and legible. Unreadable material will not be graded. Consultation of outside sources (including books, friends) for completion of assignments must be pre-approved. Late assignments will not be accepted.

A Note on Collaboration:

Students are expected to write their own programs. No code sharing is allowed unless specified by the assignment. Code sharing include, but is not limited to, looking at someone else's code, copying and pasting text, writing code together, telling a friend what to type over the phone, and debugging a friend's program. Students are allowed to converse and share ideas, as long as no actual exchange of code is involved. For example, "I used an array to store the bank account objects; the size of the array is determined by a parameter to the constructor" is borderline acceptable. Anything more specific would be considered code sharing.


Regular attendance is required. Students are responsible for all material, in all forms, presented during scheduled class times.

Final Note: The contents of the this syllabus may be modified depending on the progress of the course.