Skip to main content.

General Information

Class Meetings

Lectures: Tue, Thu 12-2 p.m., Room SCI 233

Instructor

Prof. Nadeem Abdul Hamid
Office: SCI 354B
Phone: (706) 368-5632 (office)
Email:
Office Hours: Mon,Wed 11-1p.m., 3-5p.m. / Tue,Thu 2-3p.m. / (or by appt)

Objectives and Outcomes

Course Catalog Description

CSC450 Netcentric Computing 2-2-3
Introduces the structure, implementation and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. PR: CSC 220.

Course Objectives

This course aims to teach you about the design, implementation, and applications of computer networks, focusing on the Internet in particular. We will cover an overview of network architectures, applications and protocols (e.g., HTTP, SMTP, FTP), and programming interfaces (sockets in Python/C). You will be exposed to the various levels of abstraction in the network protocol stack, particularly the Internet protocol suite (e.g., TCP, UDP, and IP).

By the end of the course, you should have a basic understanding of everything that happens between two computers on the Internet above the hardware, as well as some conception of how the hardware works. You will have written several programs that use real Internet protocols and will have participated in a variety of hands-on labs investigating the operation of a real network. We will also discuss related theoretical, historical, social, and ethical topics as appropriate.

To meet the goals of the course, you will be expected to complete written homeworks, programming assignments and projects, and exams, as detailed below.

Expected Outcomes

Students will meet the objectives with at least 75% success, based on performance on assignments and exams.

Materials and Methods

Methods of Instruction

The class will meet twice a week for two hour sessions each. The time will be divided approximately equally between lectures and lab work.

Materials and Resources

Required Textbook:
James F Kurose and Keith W Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 3rd Ed., Addison Wesley, 2005. ISBN# 0-321-22735-2. (Book support website)
Optional Reference:
(Recommended) John Goerzen, Foundations of Python Network Programming Apress, 2004. ISBN# 1-59059-371-5.
Online Resources:
  • http://cs.berry.edu/csc450 - It is your responsibility to check the web site for this course regularly (i.e. daily) throughout the semester, as it will be regularly updated with announcements, lecture notes, source code, assignments, etc.

  • You will be doing most of your networking programming in this course using the Python programming language. I will give an intensive introduction to Python in the first several classes. You may find the following online books (also available in print if you desire) useful:

    The Python development tools may be downloaded at http://www.python.org. You should also be familiar with the official Python documentation.

Assignments and Grading

Grades will be determined by a system of points over the course of the semester. Points will be assigned for various components of the course as detailed below. The minimum point values to attain a particular grade are: 660pts = D, 770pts = C-, 880pts = B-, and 990pts = A-. Full letter and + grades will be assigned for intermediate point values at the discretion of the instructor.

Attendance and participation (50 points)
Lab and in-class assignments (50 points)
Assignments (600 points)

There will be a regular series of weekly assignments throughout the course. For the most part these will consist of programming exercises/projects from the textbook. Notice, the major portion of your grade will be based on these assignments, so you must not fall behind in this respect. You may expect to spend 4 to 8 hours per week outside of class working on the programming assignments. If you find yourself spending more than 10 hours per week on the assignments, please contact the instructor.

The total number of assignments given over the semester (about 10-11, each worth about 60 points) will add up to more than 600 points worth. Thus, if for some reason, a student does not do well on a particular assignment s/he will have ample opportunity to make up those points. (Do not, however, expect to miss more than two assignments and be able to earn full points.) For any points over 600 that a student has at the end of the semester, one third of them may be applied to another category (for example, to the exam points).

Project (200 points)
Students will work in groups of 4 or 5 people on a project. Part of the grade assigned to each student will be based on the overall submission of the project. Another part of the grade will be based on peer evaluations of each student's effort and contribution to the project.
Exams (200 points)
There will be 2 exams, tentatively scheduled as follows. Each exam will be worth 100 points.
  • Midterm Exam (1 hour), Tuesday, February 20, 2007
  • Final Exam, Friday, May 4, 2007 (10:30a.m. - 12:30p.m.)

Syllabus and Schedule of Classes

See the course webpage (here) for a list of tentative lecture topics, readings, and assignments.

Course Policies

Attendance Policy

Please see the Berry College Viking Code for "Class Attendance Policies" (pp 10-11, 2004-2005 edition). Missing three (3) or more classes without justifiable reason (and appropriate documentation) will be considered excessive absences and an alert form will be sent to the proper authorities.

Attendance records will be kept by the instructor. Sign-in sheets will be circulated every class period and attendance records will be kept from the sign-in sheet. If your name is not readable on the list, you will be marked absent. Signing for someone else will be considered a serious breach of academic integrity. Similarly, endeavoring or engaging in any method to sign your name, or have your name signed, when you are absent will be treated as a breach of academic integrity.

Academic Integrity

Students are expected to have read carefully and understood the rules governing breaches of academic integrity that are to be found in the Viking Code (pp 16-17) and the Course Catalog (pp 27-28, 2003-2005 edition).

For this course, you may be allowed work in pairs, unless otherwise specified. Other than this collaboration, any work that you submit must be entirely your own. Do not copy or use other students' submission or any other existing code (including code on the Internet). Copying programs and code from other sources and trying to just make minor changes therein will be detected and can result in severe penalties, up to and including an F in the course. You are always welcome to consult me for assistance - in person, by email, phone, etc. - if you are stuck.

As a general rule, if you do not understand what you are handing in, something is probably wrong. If you have given somebody some code simply so that it can be used in that person's assignment, you are probably cheating.

Late Work

Late work will not be accepted unless an excuse is obtained prior to the day on which the assignment is due. This policy will be waived only in an "emergency situation" with appropriate documentation and/or prior arrangement with the instructor.

(Note: "I couldn't get the computer to work" or "My email/internet was not working", etc. are not acceptable excuses for late work (in general -- if the Berry network experiences major downtime I will adjust deadlines). If you start working on assignments early, instead of at the last minute, you will have time to ask me about any technical difficulties you are having.)

Disabilities Accommodation Statement

Students with disabilities who believe that they may need accommodations in this course are encouraged to contact the Academic Support Center in Krannert Room 326 (Ext. 4080) as soon as possible to ensure that such accommodations are implemented in a timely fashion. Failure to contact the Academic Support Center will constitute acknowledgement that no disability exists and that no accommodations are needed.