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 – Associate 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, except Thursday, 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.
NOTE: I will not be on campus on Thursdays. |
Alex Whitewhiteaj
<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(sixth edition), by James F. Kurose and Keith W. Ross. Here's a link to the book's website: http://wps.pearsoned.com/ecs_kurose_compnetw_6/.
Paperback: 864 pages
Publisher: Addison Wesley (2013)
Language: English
ISBN-10: 0-13-285620-4
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 Moodle to post grades and materials that require restricted access (like quiz and homework solutions). Most of the other course materials are posted on the Rose-Hulman AFS server, so you can access them directly without logging in to Moodle.
Students who successfully complete this course should be able to:
You are expected to complete all reading (textbook and slides) for each class session BEFORE coming to class. 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 | 20% |
Labs and Project | 30% |
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 expect every student to display good 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.
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 assignment before the due date and time will result in receipt of zero credit.
†grace period:: Occasionally, the entire class will be allowed extra time for everyone to complete a particular assignment without “extending the due date.” 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.
This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TAs, and the instructors. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza.
Bookmark our class page: https://piazza.com/rose-hulman/spring2014/csse432/home.
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 general policy on discipline and suspension:
“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