CSCI 4760 - Computer Networks

Spring 2013


Instructor Prof. Roberto Perdisci
Credits 4
Location GSRC 306
Time 11:15am-12:05pm M, 11am-12:15pm TR (also see course calendar)
Prerequisites Programming Languages: Java, Familiarity with Linux
Office Hours Tuesdays, 1pm-3pm (Boyd GSRC, Room 423)
TAs
Lee Harrison (lee2704 {at} uga {dot} edu) - Office Hours: Wednesdays 4-5pm, Thursdays 2-3pm, Boyd 301b
Vinay Kumar (vinaykb {at} uga {dot} edu) - Office Hours: Wednesdays 1:20-3:20pm, Boyd 301b

NOTE: The course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary.

Course Overview

The Internet has become a fundamental component of modern life. An increasingly large number of people rely on the Internet to communicate with one another, search for information on the most diverse topics, do business, find and purchase goods, etc. This course focuses on how the Internet works. We will start by viewing the Internet for what it really is, namely a large number of interconnected computer networks, and analyze how devices connect to the Internet to exchange information. We will first analyze some of the most important application protocols such as HTTP, SMTP, DNS, etc., that enable Internet nodes to request and offer services (e.g., access web pages, send emails, etc.). We will then move down the OSI model to consider the transport and network layers, with focus on understanding the UDP and TCP protocols, flow and congestion control, and the IP and routing protocols. Next we will consider the link and physical layers. Finally, we will discuss topics related to Mobile Networks and Network Security. 

Prerequisites: The class projects will require a good knowledge of the Java programming language. Most projects and assignments will be based on Linux-based systems, and therefore familiarity with Linux is also required.

Books:
  • Textbook: Computer Networking: A Top-Down Approach Featuring the Internet, 5/e
    James F. Kurose and Keith W. Ross
    Addition Wesley, ISBN: 0-13-607967-9

  • Recommended Readings: TCP/IP Sockets in Java: Practical Guide for Programmers
    Michael J. Donahoo and Kenneth L. Calvert
    Morgan Kaufmann

  • Recommended Readings: TCP/IP Illustrated, Volume 1: The Protocols
    W. Richard Stevens
    Addition Wesley, ISBN: 0-201-63346-9

  • Other resourcesThe TCP/IP Guide
    Charles M. Kozierok
    Available online at: http://www.tcpipguide.com/free/index.htm

Grading

Students will be evaluated using the following criteria:

Class Participation = 10%
Development Projects = 15%
Assignments = 15%
Midterm Exam = 30%
Final Exam = 30%


Class Participation
The lectures will include topics that are not necessarily covered in the textbook. This topics will be part of the midterm and final evaluations, therefore class participation is highly recommended. In addition, because class participation is worth 10% of the final grade, students will be required to sign an attendance log.

Development Projects and Assignments
Throughout the course, students will be required to complete a number of development projects and other assignments. Some development projects must be conducted individually, while others may be conducted in pairs (I will indicate which ones in class). The projects will focus on network programming in Linux using Java. Other assignments will focus on the analysis of live network traffic traces and pencil-and-paper homework. Each successfully completed assignment will be attributed X points, where X will vary depending on assignment difficulty.

IMPORTANT: Most development projects will be evaluated using a binary criteria: "program works correctly" = max points; "program does not work according to specifications" = 0 points. Possible exceptions to this rule will be announced during class.

LATENESS POLICY: Students are allowed at most one late submission throughout the semester, and the late submission must be received no more than 3 days past the deadline. If this threshold is exceeded, all late assignments will be penalized 100% (i.e., 0 points).

Midterm and Final Exams
The midterm exam will include topics covered up to the exam date. The final exam may include all the topics studied during the entire course, although the main focus will be on topics covered during the second half of the term.


Academic Integrity and Ethics

As a University of Georgia student, you have agreed to abide by the University’s academic honesty policy, “A Culture of Honesty,” and the Student Honor Code. All academic work must meet the standards described in “A Culture of Honesty” found at: www.uga.edu/honesty. Lack of knowledge of the academic honesty policy is not a reasonable explanation for a violation. Questions related to course assignments and the academic honesty policy should be directed to the instructor.