Syllabus
CSSE 432 – Computer Networks

General Course Information

Disclaimer:  The material on this syllabus is subject to change at your instructor's discretion.  When changes are made, you will be notified by your instructor.

Course catalog description

Organization, design, and implementation of computer networks, especially the Internet. Network protocols, protocol layering, flow control, congestion control, error control, packet organization, routing, gateways, connection establishment and maintenance, machine and domain naming, security. Each of the top four layers of the Internet protocol stack: application (FTP, HTTP, SMTP), transport (TCP, UDP), network (IP), link (Ethernet).

General course description

During this course you will learn a lot of new jargon, including many TLAs (Three Letter Abbreviations). These provide the vocabulary for describing modern networks and their features. (Note that an acronym is an abbreviation that can be pronounced, like LAN: Local Area Network. Most TLAs are unpronounceable, so they are not acronyms, just abbreviations.) In addition to mastering the vocabulary, you will learn how the services of the internet are supported by routing and control mechanisms, how different devices participate in networks, and how security is provided and attacked.

You will learn how to program with sockets in C using UDP/IP and how to implement the routing function on a virtual network. You will learn how to examine network traffic using a packet sniffer.

Prerequisites

Meeting times and places

Instructor

Delvin Defoe – Assistant Professor of Computer Science and Software Engineering

Email: defoe <at> rose-hulman <dot> edu
Office phone: (812) 877-8815
Office address: Moench F-214
Home page: http://www.rose-hulman.edu/~defoe
Office hours: I strive to be in my office every day from 9 a.m. until 5 p.m. unless I’m in class or a meeting. Please stop by whenever. If my door is shut, just knock. My schedule is available from my home page

Course Assistants

Kevin wells Kevin wells
wellska1 <at> rose-hulman <dot> edu
Shaine Strullmyer Shaine Strullmyer
strullsd <at> rose-hulman <dot> edu

Besides the instructors and assistants, other students in the course can often be a great source of help to you. They will learn more if they help you understand the concepts with which you struggle.

Don’t try to be the Lone Ranger in this course. If you find that you have worked on something for 30 minutes without making any progress, it’s probably time to seek help.

Texts

Required text

Computer Networks: A Top-Down Approach Featuring the Internet  (Fifth Edition).

Computer Networking: A Top-Down Approach Featuring the Internet (fifth edition), by James F. Kurose and Keith W. Ross. Here's a link to the book's website: http://wps.aw.com/aw_kurose_network_5/111/28536/7305312.cw/index.html

Paperback: pages
Publisher: Addison Wesley (2002)
Language: English
ISBN-10: 0-13-607967-9

Other References

The C Programming Language

C Programming Language, Second Edition, by Brian W. Kernighan and Dennis M. Ritchie

Paperback: 274 pages
Publisher: Prentice Hall PTR; 2 edition (March 22, 1988)
Language: English
ISBN-10: 0131103628
ISBN-13: 978-0131103627

This book, known by most computer scientists simply by the authors' initials K&R, is a classic reference. We won’t refer directly to this book in the course, but if you will be using C later in your career, either as a student or a professional, we encourage you to add this reference to your personal library. (All CS, SE, and CPE students will use C in later courses. Many other majors will also encounter courses where C is required.)

Pocket Guide to TCP/IP Socket Programming in C, by Michael J. Donahoo and Kenneth L. Calvert

Paperback: pages
Publisher: Morgan Kaufmann (2000)
Language: English
ISBN-10: 1-55860-686-6

Course Materials

We’ll use Angel to post grades, materials that require restricted access (like quiz and homework solutions), and links to the course schedule, assignment descriptions, slides, quizzes, and handouts. Please note the emphasis on links. Most of these linked materials are posted on the Rose-Hulman web server, so you can access them directly without logging in to ANGEL.

Learning Outcomes

Students who successfully complete this course should be able to:

  1. Identify terms of computer networking.
  2. Outline networking services and how they are provided by multiple layers of protocols.
  3. Describe principles and mechanisms of congestion control in networks.
  4. Describe principles and mechanisms of routing in networks.
  5. Analyze security mechanisms for networks and why they are needed.
  6. Implement computer networks protocol components and applications including reliable file transfer services.

Labs, Homework, and Projects

When we give a reading assignment, we seriously expect you to read it. In-class discussions will assume that you have done the reading and understood the “easy stuff” before class. You may of course ask about any details that you do not understand. We strongly believe that reading the textbook will help you. You may be able to “get by” without reading the text. But did you come to Rose to “get by” or to be the best?

We will assign a number of lab exercises or programming problems. Some of these problems will help you explore the details of real Computer networks by implementing selected computer networks protocol components and applications. We anticipate that you will spend some time working on these assignments. Mastery of the concepts involved with these assignments is required in order to excel in the course. Some of these assignments will be done in groups, while others will be done individually.

Your solutions to programming problems should be well-designed and well-documented. We will suggest working on some programming problems with another person; however we will designate some problems as individual assignments.

We will also assign a number of in-class exercises as well as homework problems. Some of these exercises will be done individually, while others will be done in groups. Both the individual and group exercises will contribute to your final grade for the course.

Here is a summary of the assignments you should expect to complete

Grading

We plan to use the weighting scheme shown in the table below when assigning final grades.

Criteria Weight
Quizzes 10%
Homework 15%
Wireshark Labs 10%
Labs and Project 25%
Exams 40%

Final grades are contingent on the following:

Letter Grades

We will do our best to conform to the Rose-Hulman definition of the various grades, as described in the Academic Rules and Procedures. Note in particular that the phrase ”thorough competence to do excellent work“ appears there in the description of the “B” grade, and it further states that “B” and “B+” will not be given for mere compliance with the minimum essential standards of the course.

We will not grade on a curve, so every student could earn an “A”. But it will require significant effort to do so.

Citizenship Counts!

We may adjust your overall average up or down by up to 5 points, based on your citizenship in the CSSE 432 learning community. This includes attendance, promptness, preparation for class, positive participation in class, constructive partnership in pair and group assignments, timely completion of various surveys, and peer evaluation of other students’ code and of your team members for group projects.

The in-class time in this course constitutes an important learning experience. After two unexcused absences, you must discuss continuation of the course with the instructor. Three unexcused absences may result in failure of the course. The Angel attendance manager will be used as a record of your attendance.  Be sure to record your attendance for each class session.

Late Assignment Policy

Unless a grace period is offered for an assignment, all assignments MUST be turned in before the due date and time in order for you to receive credit for them. Failure to turn in an assignments before the due date and time will result in receipt of zero credit.

We recognize however, that there may be days when we are extremely busy or when a program takes longer to complete than expected. To address these situations, each student begins the term with "2 late day" credits. Labs, some homework, and other programming problems MUST be turned in on time if you want credit for them. No credit will be given for late work except in extreme circumstances, or for the following exception.

  1. You may use a late day credit on any assignment, except quizzes, the final project, or exams. Using a late day credit allows you to turn in an assignment up to 24 hours after the time that it is due.  It is your responsibility to turn in your work within that time frame, especially if it falls on a non-class day.
  2. You may earn an additional late day credit per programming assignment by turning it in at least 24 hours before it is due. This allows you to save up late day credits for when you may need to use them.  There is no limit on the number of late day credits you can save up.
  3. Only one late day credit may be used or earned on a given assignment.
  4. Unused late day credits disappear at the end of the term.

Notification for earning or using a late day credit: In order to earn or use a late day credit, you must complete the Late Day Bank Survey on ANGEL before the assignment is due. That is to let your instructor know when it is okay to post a solution or discuss an assignment in class.

Some assignments may be designated as no late day credit assignments because:

grace period:: Occasionally, the entire class will be allowed extra time for everyone to complete a particular assignment without “extending the due date.” The difference is subtle. If you are working on an assignment during a grace period, you should do so with the recognition that you are behind, and you need to quickly finish it and move on to the next assignment. If there is a grace period for an assignment, a reason for it will be given.

Communication

We usually check our email several times a day (including most evenings), and we do our best to respond quickly. It is a good way to get answers to simple questions. We expect you to check your email daily. When we send mail to you, we will use your Rose-Hulman address. If you do not currently read mail that is sent to that address, please have it forwarded to wherever you read mail.

When you send course-related email to us, please begin the Subject: line with CSSE 432:, so we can quickly pick it out from among the dozens of daily email messages that we receive. That way, we can respond to you in a more speedy manner. Here is a sample of good and bad email subjects.

Bad: How am I supped to turn in my assignment?
Bad: CSSE 432
Good: CSSE 432: How am I supped to turn in my assignment?

You can (and should) also email the entire course staff by sending mail to csse432-staff@rose-hulman.edu. Your mail will go to your instructor and all the student assistants that assist with the course.

Discussion forums on ANGEL are another form of communication we recommend that you use. They are a venue you should use to discuss various aspects of the course, including the assignments, with other classmates. The student assistants and instructor will read the discussions and sometimes respond to your posts. One way to enhance the citizenship part of your grade is to post thoughtful questions, answers, and comments to the forums.

Your suggestions for the course are also welcomed. Please advise your instructor of things in the course that help you learn, and things that might be done to improve the course for you. If there is something that you'd like to your instructor, but don't feel comfortable with disclosing who you are, you can use the Anonymous Suggestion Survey that is provided on ANGEL.

A Course Bugs Report forum is also available to you on Angel.  You can use that forum to report bugs or errors that you find in any of the course material.  Although we will try our best to present to you error-free material, we are humans and sometimes we make mistakes.  Using the forum to report bugs will not only improve the quality of the course, it will also earn you points.

Electronic Distraction Policy

We do our best to keep class interactive. But we recognize that sometimes it is hard as a student to stay focused on the class. With laptops in class, there are many more ways to become distracted. Unfortunately these distractions are much more pernicious, since it is very easy to get drawn into things like IM conversations or RSS feeds.

We strongly encourage you to turn off IM and email software and only use other software for things directly related to class. If you choose to use non-class-related software during class, then you must sit in the back row. Doing so will prevent your classmates from being distracted by what is on your screen.

Integrity

Recall the Institute policy on academic misconduct:

“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”

Exams and homework will be done on an individual basis. The simple rule of thumb for individual work is:

Never give or use someone else’s code or written answers.

Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.

We encourage you to discuss the problems and general approaches to solving them with other students. However, when it comes to writing code, it should be your own work (or the work of your group if it is a group or partner assignment). If you are having trouble understanding how some library code works or pinning down a run-time or logic error in your program, by all means talk to someone about it.

If you use someone else’s ideas in your solution (or any other work that you do anywhere), you have to:

If you are ever in doubt about whether some specific situation violates the policy, the best approach is to discuss it with your instructor beforehand. This is a very serious matter that we do not take lightly; nor should you.

In general, you should not look at another student’s code to get ideas of how to write your own code. Beginning the process of producing your own solution with an electronic copy of work done by other students is never appropriate.

Plagiarism or cheating will result in a negative score (i.e., less than zero) for the assignment or exam. Egregious cases will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem. So don’t cheat.

Developed by Delvin Defoe