Indrajit Ray
Office: 344 CS Building
Office Hours: By arrangement
Subhojeet Mukherjee
Office: CSB 120
Office Hours: Monday 2:00 pm to 4:00 pm
Lecture Time and Place:
2:00 – 3:15 pm, Tue, Thur, CSB Room 130
Recitation 1 Time and Place:
12:00 pm – 12:50 pm, Wednesdays, Rm 315 CSB
Recitation 2 Time and Place:
9:00 am - 9:50 am, 11:00 am – 11:50 am, Fridays, Rm 315 CSB

Typically taught in Fall semester. This course is also offered as an online course. This senior level undergraduate course covers principles of communications, local area networks, communications protocols, TCP/IP, and the Internet. If you want to learn how the Internet and its applications work, you should take this class. Note, however, that it is not an easy class. Typically there are three programming assignments, weekly homeworks and two midterms. All programming is done in C/C++, so make sure you are comfortable with these languages. If you don't know them, learn them NOW! There are lots of tutorials and videos on the web. Each Project will take between 10 and 50 hours to complete.


CS 370 with a C [2.0] or better. STAT 301 or STAT/ECE 303 or STAT/ERHS 307 or STAT 309 or STAT 315 or STAT 311 (all with a C [2.0] or better). CS 253 with a C [2.0] or better.


Optional Textbook: Computer Networks, A Systems Approach; 5th Edition by Larry Peterson and Bruce Davie. You may use other versions, but make sure you get the homework assignments correct.


Students are expected to attend lectures, where information will be given that is not available at any other place. Attendance at recitations is recorded and contributes to your grade. Students are expected to:

Excused absences are handled in accordance with CSU policies. If you are ill please let us know right away. CSU requires verifiable proof (e.g. a note from the health center) for students who wish to not be penalized for missed classes and work.

We also do not want you to come to class ill.Make up work will need to be explicitly negotiated. The objectives include: getting students to class; not spreading illness; and making sure students who are ill receive appropriate treatment. The material in this course (including learning to come to class and stay awake) is important. Excessive absences will impact your grade.


Here are the formally graded elements of the course and associated weighting:

Activity Weight
Weekly Homeworks 20 %
Recitations/Class Particiapation 10%
Programming Project 1 5 %
Programming Project 2 10 %
Programming Project 3 25 %
Midterm 1 15 %
Midterm 2 15 %

Your final grade will be determined by the weights above, with one important caveat. Both the tests and the programming assignments assess aspects of skill that are necessary for moving on. Therefore, a student who gets below 65% in either the programming assignments as a whole or the midterms/tests as whole (not counting quizzes) will get a 'D' or worse for the course, even if their scores in other areas raise their overall score to a passing average.


Recitations will typically cover elements and fundamentals of Socket Programming. We will initially begin by introducing some basic UNIX concepts required for networking, a small makefile tutorial and a little overview of the GNU debugger. From then onwards we will cover socket programming and related material for homeworks and projects.

Programming Projects

There will be 3 programming projects. The grading policies related to the projects are mentioned on this page. The projects will primarily deal with socket programming. However, socket programming will only be the base technology used in each of the projects. On a high level, each project will represent a different problem. C and C++ are the preferred language of coding. You are not allowed to use other programming languages like Java and Python. The projects will basically reflect topics taught in class.

Late and Makeup Policy

Midterms: Make-up exams are only given for extraordinary circumstances (e.g., illness, death of family member). Students must consult with the instructor as soon as possible, preferably before the start of the exam. Examination dates are listed in the syllabus; be aware of them and plan accordingly.

Programming Projects: Programs are submitted electronically. Details of how this is done appears with the first assignment. Always check the progress page for due dates. The due date will include a day and time. The assignment will also specify a late acceptance period which will include a late penalty of 50%. After the late period, electronic submission is closed; students that have not submitted programs receive no points for the assignment.

Homeworks: Homeworks must be submitted per the instructions in the assignment and are due at the beginning of class on Tuesdays. Handwritten and scanned is acceptable, but the handwriting must be legible. The instructors and TAs reserve the right to decide whether or not a paper is legible. Late homeworks may be turned in at beginning of class on Thursday, and are subject to a 50% late penalty.

Important Dates

Classes Begin Tuesday, August 23rd
Project 1 posted Tuesday, August 30th
Project 1 Due Tuesday, September 13th
Project 2 posted Tuesday, September 13th
Midterm 1 Thursday, October 13th Time: to be posted soon
Project 2 Due Tuesday, October 25th
Project 3 posted Tuesday, October 25th
Project 3 Due Tuesday, November 29th
Midterm 2 Thursday, December 1st Time: to be posted soon
Last day of class Thursday, December 8th

Professional Conduct

In addition to responsibilities enumerated in the Colorado State University Student Conduct Code, the Computer Science Department advocates rights and responsibilities of conduct for all its Members: faculty, staff and students, in accordance with the intent of the Code of Ethics of the Association of Computing Machinery.In particular, all department members are obligated to

  1. Respect the rights of others and protect fundamental human rights including respect of the diversity of all cultures, and to foster a safe and comfortable social environment.
  2. Avoid harm to others:
    1. All members are expected to treat one another with professional courtesy at all times. Harassment or humiliation of one member by another will not be tolerated.
    2. Members will dress appropriately for an educational and professional setting, refraining from modes of dress that may shock or disturb others.
    3. Members will refrain from using offensive or abusive language.
    4. Members will refrain from offensive public displays, including on computer monitors, wall posters, or engaging in overt public disturbances.
  3. Be honest and trustworthy:
    1. Members will relate honestly with one another, will not submit work that is not their own (unless properly cited), will keep their promises, and will act to merit the trust of others.
    2. Members should adhere to the ACNS policy on acceptable use of computing resources.
  4. Be fair and take action not to discriminate:
    1. Members will treat others fairly, evenhandedly and without capriciousness. a. Members will not single out any other Members or groups of Members for discrimination or criticism or unwelcome treatment especially based on race, physical characteristics, age, gender, religious convictions, or membership in any cultural group.
  5. Honor property rights:
    1. Members will respect the personal property of others.
  6. Give proper credit for intellectual property:
    1. Members will respect the work product of others, and will never claim ownership of intellectual work of others as their own.
  7. Respect the privacy of others:
    1. a. Members will respect the rights of others to be left alone, and will refrain from unwelcome actions towards them, and unwanted intrusions into their affairs.

For questions, explanations, or to report violations, contact your instructor or appropriate department administrator. Mediation of violations will be conducted within the Department and may be referred to the CSU Student Conduct and Conflict Resolution Office.

Colorado State University students should be familiar with the University Honor Pledge.