Course Information (Spring 2008):
 
Instructor Details: Tracy Camp
Office: 130 Chauvenet Hall
Phone: 303/384-2184
Email: tcamp --AT-- mines --DOT-- edu
Office Hours: 1-3pm Mondays, or as needed
Course Details: Prerequisites: CSCI 442 or equivalent. Students are expected to have sufficient knowledge of systems programming. Students need to be strong C or C++ programmers.
Time: 9-9:50am Mon/Wed/Fri
Location: Green Center 257
Course URLs: CSCI 471/598 Pages
Discussion Board
Project Submission
Textbook Pages
Required Textbook: Computer Networking, A Top-Down Approach, 4th Edition, by James Kurose and Keith Ross, Addison Wesley (ISBN: 0321497708).
Course Description: This introduction to computer networks covers the fundamentals of computer communications, using TCP/IP and standardized Internet protocols as the case study. The course will introduce the Internet protocol stack in a top-down fashion. The three primary topics will be the application, transport, and network layers of the Internet protocol stack, with some consideration of the lower layers. Network programming and applications will be emphasized.

Upon successful completion of the course, students should be able to:
  • summarize important issues and challenges at all levels of a computer network and
  • develop robust client/server applications.
Required Work

This will be an intense yet rewarding course. There will be four-five network programming assignments and five homework assignments. The purpose of the assignments is to explore the implementation and the analytic side of computer networks.

One (perhaps none) of the programming assignments will require working in groups of size two or three. All other work is to be completed individually.

For group assignments, each member of each group MUST turn in a group evaluation form by the date the group programming project is due. If a form is not received from each group member, the group will be penalized.

Graduate students must do all parts of each programming assignment, and all exercises in each homework assignment. Undergraduate students are required to do a portion of each assignment; the portion that can be omitted will be determined at each assignment.

Submit programming assignments by 11:59pm on the date that they are due. Submit paper copies of homework assignments at the start of class on the date that they are due. Always turn in something rather than nothing. Nothing earns you zero points; something earns you partial points.

Each student is allocated five slip days for the programming assignments, which gives students some flexibility in managing their workload. Weekends count two days. (Each group member uses a slip day for each day the assignment is submitted after its due date, if the assignment is completed as a group.)

Programming assignments should be submitted electronically to Blackboard. For Project $N$, you will submit a tar(1) file, e.g., tcamp-projectN.tar, in which the filename is the same as your username and $N$ is the project number. When untarring this file, it should create a directory with the same root name as the tar file, e.g., tcamp-projectN. Inside every tar(1) file will be a file named README with your name, a listing of all the other files in the tar(1) file and what they do, and how to compile and run your code.

 
Student Evaluation

Programming Assignments Homework Assignments Exam I Exam II Final Exam Quizzes/Course Participation
35%* 15% 15% 15% 15% 5%+
        * some assignments will be worth more than others
        + participation on ore counts

NOTE: You must pass (60% or higher) the programming
assignments and final exam to pass this course

Late work: Late assignments (programming or homework) lose 10% per day, except for extenuating circumstances. As discussed, five slip dates are allocated for the programming assignments. No slip dates are allocated for the homework assignments. To do well in this course, you need to keep up with the class discussions and homework assignments.

Attendance: I expect students to attend all classes. Your attendance is important for several reasons:

  • Coverage of material that is not in the textbook.
  • Participation in active learning, where you and your peers learn from each other.
  • Participation in class discussions, where I learn from you.
Tentative Course Schedule

        2 weeks: Introduction
        3 weeks: Application Layer
        1 week: Exam I
        2 weeks: Transport Layer
        3 weeks: Network Layer
        1 week: Exam II
        2 weeks: Lower Layers
        2 weeks: Your choice

Department Academic Integrity Pledge

Read the pledge below; it is based on the Student Honor Code passed by the ASCSM.

I pledge to uphold the high standards of academic ethics and integrity expressed by the Colorado School of Mines Student Honor Code by which I am bound. In particular, "I will not misrepresent the work of others as my own, nor will I give or receive unauthorized assistance in the performance of academic coursework". I understand that my instructor will report any infraction of academic integrity to the Department Head and that any such matter will be investigated and prosecuted fully.

Here is your Honor Code: CSM's Student Honor Code.

Department Policy for Programming Projects

The following policy exists for all CS courses in the MCS department. This policy is a minimum standard; your instructor may decide to augment this policy.
  1. If the project is an individual effort project, you are not allowed to give code you have developed to another student or use code provided by another student. If the project is a group project, you are only allowed to share code with your group members.
  2. You are encouraged to discuss programming projects with other students in the class, as long as the following rules are followed:
    1. You view another student's code only for the purpose of offering/receiving debugging assistance. Students can only give advice on what problems to look for; they cannot debug your code for you. All changes to your code must be made by you.
    2. Your discussion is subject to the empty hands policy, which means you leave the discussion without any record [electronic, mechanical or otherwise] of the discussion.
  3. Any material from any outside source such as books, projects, and in particular, from the Web, should be properly referenced and should only be used if specifically allowed for the assignment.
  4. If you are aware of students violating this policy, you are encouraged to inform the professor of the course. Violating this policy will be treated as an academic misconduct for all students involved. See the Student Handbook for details on academic dishonesty.


                   All projects for CSCI 471/598 are to be individual
                            efforts unless explicitly stated otherwise.