Data Networks
Saarland University and International Max Planck Research School (IMPRS-CS)
Summer 2007
Instructors:
Office hour: 11 AM - 12 PM, Tuesday, E1.4, 601 |
Teaching Assistants:
Lectures:
The class will meet on Mondays and Wednesdays between 2 P.M. and 4 P.M. in building E1.3, HS 002. The first lecture is on April 18 (Wednesday).
Lecture notes, course schedule, recommended readings, and assignments will be posted here.
Students are encouraged to meet the teaching staff during office hours for help with any questions or problems. Tutorials will be offered when needed.
Mailing Lists:
<datanets-ss07-l@postino.mpi-sb.mpg.de>: includes everyone involved with the course, the teaching staff as well as the students. Important announcements, such as exam schedules and assignment deadlines, will be posted on this list. Students can also use it to form project teams, to discuss projects, and to exchange ideas and experience. Everyone should join and read this group mailing list daily. To subscribe, please send mail to: <datanets-ss07-l-join@postino.mpi-sb.mpg.de>
<datanets@mpi-sws.org> :
includes all members of the teaching staff, the instructors as well as
the teaching assistants. Students should use this for all
communication with the course staff.
Please, email individual staff members only when the communication is personal, and is not related to the course in general.
Course Description
Data networks have become an integral part of modern computer systems. Familiarity with the fundamentals of computer networking is important for any computer scientist. This course will take a systems approach to teaching computer networks; it will be based on a careful study of a real and large computer network, the Internet. It will cover the principles of packet-switched networks that underlie the Internet, the practical algorithms and protocols that constitute the Internet, and the architectural ideas that are responsible for its phenomenal success. Specific topics include wired and wireless local area networks, routing and resource sharing in internetworks, and end-to-end functionality and security of Internet-scale systems like the WWW and peer-to-peer applications. Students will work on projects designed to convey a deeper appreciation of fundamental networking concepts covered in class.
Intended Audience / Prerequisites
This core course is open to Bachelor and Master students. Bachelor students must have passed the basic courses on Programming 2 and Math 2. Proficiency in programming (Java, C/C++) and UNIX development tools (e.g. make, gcc, gdb, jdb) is required to pass this course.
The language of the course is English. All lectures, office hours, tutorials and communication with the course staff will be conducted exclusively in English.
Textbook
Computer Networks - A Systems Approach, 3rd Edition by Larry
L. Peterson and Bruce S. Davie, Morgan Kaufmann, 2003.
Other References
Computer Networking, A Top-Down Approach
Featuring the Internet, by James F. Kurose and Keith W. Ross
Computer Networks, 3rd ed by Andrew Tanenbaum
UNIX Network Programming, Volume 1: Networking APIs: Sockets and XTI, 2nd ed by W. Richard Stevens
Lecture Notes
Summary lecture notes will be available on the course web-site for most of the material covered in the class. These notes are primarily meant to help students with taking notes. However, they will not accurately or consistently cover all the material discussed in the lectures. Students are expected to know all material covered in the lectures, and in the assigned readings and projects. Therefore, students should not rely only on the lecture notes. They should attend class regularly, take their own notes and complete all assignments.
Exams
There will be a midterm exam, a final exam, and a repeat exam. The repeat exam will be given only for students who fail to pass or take either one of the midterm or the final exams. All exams will be closed book and will be based on the material covered in lectures, readings, and projects.
Grading
To pass the course, a student must (i) pass the project assignments, and (ii) pass at least two out of the three exams, namely the midterm exam, the final exam, and the repeat exam. To pass the project assignments, the sum of all points earned by a student in the project assignments must be at least 50% of the maximal possible points. To pass an exam, a student must score at least 50% of the maximum possible points in the exam.
Your course grade will be based on a weighted score computed from the points you earn in your successful examinations and your project assignments. Project scores will count towards 40% of the weighted score, while exam scores will account for the remaining 60% of the weighted score.
Homework Assignments
Homework assignments will be provided to help students prepare for the exams. Solutions should be turned within one week after the assignments are handed out. Teaching assistants will read over the solutions, identify common mistakes being made, and discuss them during the tutorial hours. Teaching assistants will also provide sample solutions. However, they will not grade the submitted solutions; homework assignments will not count towards the course grade.
Project Assignments
There will be several project assignments during the course of the semester. Their purpose is to solidify students' understanding of the material covered in the class by exposing them to practical applications. The projects will require a substantial amount of software design and implementation. The software produced will be graded based on its ability to successfully pass a set of functional and performance tests.
Project teams: Students are strongly encouraged to work on
the projects in small teams. It is the responsibility of
the students to form and manage their own teams.
All team members must be involved in all aspects of the project. To collaborate effectively, team members should divide the project responsibilities so that they can work effectively in parallel. However, each member should be familiar with the work done by all other members. Proper time management is critical – if you don't start working on the assignments early you will not be able to complete the projects!
Computing facilities: TBD
Project deadlines: Programming projects must be submitted by 11:59 PM on their due dates (posted here.)
Late submissions: We will
apply a flexible slip date policy for late submissions. Each student
is allocated an automatic extension of 4 calendar days for the entire
semester. Students can use the extension on any project during the
semester in increments of one day. For instance, you can hand in one
project assignment 4 days late, or one assignment 2 days late and two
assignments 1 day late.
For team submissions, the slip time will be deducted from each team member's remaining slip time. Students will not receive credit for late submissions beyond the automatic extensions.
Honor code: It is acceptable to discuss ideas, algorithms, or
approaches to solving problems and assignments with other students. We
encourage you to give and get such advice as it will help you learn
the material better and improve your ability to work as a team
member. However, what you submit must be the work of your own group;
copying code or solution sets from any source is strictly
prohibited.