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:
|Weekly Homeworks||20 %|
|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.
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.
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.
|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|
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
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.