CSE 473S wiki (INTRODUCTION TO COMPUTER NETWORKS)
- Piazza course page: Please use it for all Q&A related to the class. (Note: You need to sign-up before being able to access the site).
- Blackboard Site: Used only for posting grades.
Brief Course Description
This course provides a broad introduction to computer networking.
It addresses all four major architectural layers of modern computer networks (application layer, transport layer, network layer and link layer), as well as selected topics from wireless networking, network security and possibly others.
Application layer topics include basic network programming and application layer protocols, including the protocols that underlie the world-wide web, electronic mail, the domain name system and peer-to-peer applications.
Transport layer topics include the User Datagram Protocol (UDP), principles of reliable data transfer and the Transmission Control Protocol (TCP), as well as peer-to-peer protocols.
Network layer topics include key protocols from the Internet protocol suite (IPv4 and IPv6, as well as ICMP, DHCP and NAT), plus router data and control plane functions. The latter covers general network routing algorithms and specific Internet unicast and multicast routing protocols (OSPF, IS-IS, PIM and BGP).
Link layer topics include multi-access protocols, Collision-Sense Multiple Access with Collision Detection (CSMA/CD), Ethernet, link layer switching, and Virtual Local Area Networks (VLAN). Wireless topics include WiFi, cellular wireless networks and mobile IP.
The topic of network security includes an introduction to basic cryptographic techniques, introduces security protocols, and offers a review of major (network) attacks and associated defense.
Prerequisites: CSE 247 (CSE 132 is helpful as well, though not mandatory). If you have any questions about prerequisites, please contact the instructor.
Credits: 3 units.
Authors: J. Kurose and K. Ross
Title: Computer Networking - A Top-Down Approach (7th Edition)
See also TCP/IP Sockets in Java by K.L. Calvert and M.J. Donahoo
- Class times and location: Monday & Wednesday, 1:00-2:30pm in Crow 204.
- First class is on Monday August 28, 2017, and last class is on Wednesday December 6, 2017.
- Class grading: Review questions 10%; Quizzes 20%; Labs 25%; Midterm 20%; Final 25%
- Instructor: Roch Guerin, Jolley 304C, email: email@example.com
- Office hours: Tues. & Thur.: 3:00-4:00pm (Jolley 304C)
- Additional help (office/studio hours) - All will be held in Jolley 431
- Assistant to Instructor (AtI): Jiayi Song (firstname.lastname@example.org), office/studio hours: Friday, 4:30-5:30pm
- TA: Xin Yan (email@example.com), office/studio hours: Monday, 10:30-11:30am
- TA: Lingxin Zhao (firstname.lastname@example.org), office/studio hours: Wednesday, 10:30-11:30am
- Announcements: All announcements will be made through Piazza
- Asking questions: You can obviously ask face-to-face questions during any of the office or studio hours, but the other and possibly better means to get your questions answered is to use the Piazza site setup for the course (you will need to register to be able to access it). The AtI, TAs and I will monitor the site and do our best to answer questions in a timely manner. Posting questions on Piazza has the advantage that questions and answers are available to all students, and it is often the case that if you have a question, other students have a similar one. Because of that, neither the AtI, nor the TAs, nor I will respond to email questions. So please use the Piazza site as much as you can and don't hesitate to ask as many questions as you need to; there is no such thing as a dumb question.
- Midterm exam*: Wednesday October 23, 2017 (in class). Open book and open notes. No Internet queries.
- Final exam*: December 20, 2017, 1:00-3:00pm Location: TBA. Open book and open notes. No Internet queries.
- ACADEMIC INTEGRITY: Please make sure you are familiar with Washington University Academic Integrity Policy, as it will be strictly applied.
- Violations of the Academic Integrity policy, be they in the form of cheating during a quiz or an exam (e.g., copying another student's answer or seeking to find it on the Internet) or submitting material that is not your own (e.g., by reusing solutions from previous years) will result in an immediate referral to the registrar's office for formal investigation. Students found in violation will have it recorded on their transcript, and receive an automatic 0 for the assignment or exam in question. Instances of a second confirmed violation will result in an automatic F for the course.
* EXCEPT FOR PROPERLY DOCUMENTED MEDICAL OR FAMILY EMERGENCY REASONS, THERE WILL BE NO MAKE-UP TIMES FOR EXAMS. YOU NEED TO ARRANGE OTHER ACTIVITIES SO AS TO AVOID CONFLICTS.
Class format: Ideally, each "lecture" should be highly interactive and spent either digging into specific concepts you may not have fully understood (in responses to questions you will need to ask), or working through some problems that require that you apply the material being targeted for this particular lecture. In order for this to work, it means that you MUST have read ahead of time the material expected to be covered during the lecture. This material will be identified by date in the Reading Assignment column of the syllabus on the wiki. Working through the problems will require access to the book and possibly other material, so that you should bring a laptop to class.
Reading Assignments (and preparing for quizzes & exams): As mentioned, reading assignments are intended to prepare you for the next lecture. Reading assignments will also often include additional material beyond the textbook, and in particular, Requests for Comments (RFCs) that are the "standards" documents of the Internet Engineering Task Force (IETF). In most instances, except for the topic of network security (Attacks & Defenses) where the book only has limited coverage, you will not been expected to have read those RFCs ahead of class. Material that is not required reading before a class will be listed on a separate line starting with FYI. Note though that some of the problems will require retrieving information from those documents, so having some familiarity with their content ahead of class wont hurt.
In addition to the reading assignments and the questions we will explore in class, there is a wealth of material that is available with the Kurose & Ross textbook. In particular, the textbook's student resources include many problems, exercises, and labs that can help you assess and improve your understanding of the class material. You are strongly encouraged to take advantage of those resources, and, for example, for small study groups of 2-3 students to work through them and discuss possible solutions. [Note that these resources seem to still be those from the 6th edition. You will need the access code that is inside the book's cover to be able to access some of the material]
Review Questions: Will be assigned ahead of each class (review question #i is meant to be turned it at the beginning of Lecture i). They are meant to test your understanding of both previous material and more importantly the reading assignment material, and need to be turned in at the start of the class. As an added incentive for you to work through the questions, they will be checked to assess that you have made an honest attempt at completing them. Their grading will be binary, and you will get a grade of "1" provided that you demonstrated a meaningful attempt at answering the questions, irrespective of the correctness of your answer. Review questions make-up 10% of your grade, and your overall score will depend on how many reasonably answered sets of review questions you turn in.
Quizzes: There will be six quizzes that will together count for 20% of your overall grade. Quizzes are scheduled approximately every second week to alternate with labs due dates. The material covered by each quiz goes from the lecture of the previous quiz to the lecture just before the quiz itself. Quizzes will take place at the start of class (so don't be late) and will take 15 minutes. Quizzes will be open book and you will be allowed electronic access to your notes and course material. However, Internet queries are prohibited. In other words, you are not allowed to issue any searches for answers to quiz questions. If you are caught using the Internet, you will get an automatic 0 on the quiz and may receive an F for the course. Your lowest quiz score will be discarded (alternatively, you can miss one quiz), except for scores of 0 due to an academic integrity violation. As with exams, there will be no make-ups or adjustments for missed quizzes except for duly documented medical or family emergency reasons.
Studios: There are five studios that are all optional and meant to prepare you for the labs. Two TAs will be available to assist you with studios on Times TBA in room TBA. Studios are not graded and nothing needs to be turned in. They are expected to be completed in small groups (4) to allow for interactions and discussions of the material.
Code needed to complete each one of the studios will be made available under a correspondingly named directory in the git repository that you have been assigned for the class (see Using git and bitbucket for more information on your git repository). Descriptions of each individual studio are also provided in pdf format in the Optional studios section of the wiki.
Labs: There are five lab assignments that involve applying some of the material covered in the class, either by observing the behavior of networked systems or by developing simple versions of some basic network software components. Several of the assignments will be done using the Open Network Lab (ONL), and you will need to first get an ONL account. Labs involve multiple components from developing your software to testing it using the ONL machines and network. Getting all the pieces to work well together is likely to take multiple iterations, so don't wait until the last minute to get started on your lab. It's a recipe for disaster. Note that from Lab 3 onward, labs can be done in teams of two (see Collaboration Policy below for details).
Lab assignments, template of lab reports, and code needed to complete each one of the labs will be made available under a correspondingly named directory in the git repository that you have been assigned for the class (see Using git and bitbucket for more information on your git repository). Descriptions of individual lab assignments are also provided in pdf format in the Labs section of the wiki.
Exams: The course has two exams, a midterm (20% of your overall grade) and a final (25% of your overall grade). The midterm will take place in-class during the class of Monday October 23, 2017. The final exam will be held during the time-slot allocated by the university, i.e., on Wednesday December 20, 2017, 1:00-3:00pm. The final will be cumulative in its scope, i.e., include everything that has been covered during the class. Midterm and Final will be open book and you will be allowed electronic access to your notes and course material. However, as with quizzes, Internet queries are prohibited. In other words, you are not allowed to issue any searches for answers to exam questions. If you are caught using the Internet, you will get an automatic 0 on the exam and may receive an F for the course. There will be no make-ups or adjustments for missed exams except for duly documented medical or family emergency reasons.
Review Questions: You should complete the review questions on your own, but you are not prohibited from discussing them with others. Turning in a verbatim copy of someone else review question is, however, not acceptable. Furthermore, review questions are meant to prepare you for the upcoming class, and so not doing them yourself will only make it harder for you to assimilate the class' material and subsequently apply it in the context of labs, quizzes, or exams.
Quizzes and Exams: Collaboration is obviously not allowed, and any attempt to "share" answers with others will be considered cheating and treated as such.
Labs: The first two labs must be completed individually by each student. Subsequent labs can be done in teams of two if so desired. A team only needs to turn in one lab assignment, and unless warranted by exceptional conditions, both team partners receive the same grade. If you decide to work with a partner, you need to record your team by Friday October 6, 2017, before 5:00pm CT. To record your team, send an email to the instructor with the names and student IDs of both partners, and make sure the two partners are copied on the email.
If you want to change your mind for a subsequent lab, i.e., you did not have a partner and now want to have one, or conversely had a partner but now want to complete the lab on your own or switch partner, you MUST notify both the instructor and your previous and new partners (when applicable) of your decision. This needs to be done in a timely fashion, i.e., less than 3 days after the new lab has been assigned, by sending a notification email to the instructor and previous and new partners, as applicable.
In general, you can discuss labs with other students, but what you turn in must be your own. In particular, because the labs heavily rely on labs from previous years (although differences have been introduced), trying to use earlier years' solutions will expose you to severe penalties, including possibly failing the course. Reusing material from previous years will result in an automatic grade of 0 for the lab, and a possible F for the course. If you are ever in doubt regarding what material is appropriate for you to use, please ask me. Labs will count towards 25% of your overall grade.
Exams: There will be no make-ups or adjustments for missed exams except for duly documented medical or family emergency reasons.
Quizzes: There will be no make-ups or adjustments for missed quizzes except for duly documented medical or family emergency reasons. Note though that since your lowest quiz score will be discarded, you are de facto allowed to miss one quiz.
Labs: There will be no extensions for labs, as it will only make it harder for you to complete the next lab assignment. However, because emergencies and/or special circumstances can arise, a single 48 hours extension will be granted to students who ask for it at least 48 hours before the lab's due date. Note that if a student asked for such an extension for either lab 1 or lab 2, then no further extension will be granted to whichever team that student is part of for subsequent labs.
Late policy: Labs and review questions are expected to be turned in at the start of class on their due date. There will be no exception and no partial credit. On an exceptional basis, if you are unable to make it to class, you can turn in an assignment in the CSE department office (Jolley 304). Give your assignment to one of the department staff, and ask them to sign and timestamp it. The timestamp must precede the start time of the class when the assignment was due.