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.
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).
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.
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 |
Kevin wellswellska1
<at>
rose-hulman <dot> edu
|
Shaine Strullmyerstrullsd
<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.
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
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
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.
Students who successfully complete this course should be able to:
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
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:
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.
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.
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.
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.
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.
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.
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