
office: (617) 358-1062
fax: (617) 353-6457
e-mail: matta AT cs DOT bu DOT edu
![]()
This page http://www.cs.bu.edu/fac/matta/Teaching/cs556/S05 will be continually updated. Please check (reload) this page regularly (at least twice a week).
FINAL EXAM: Monday 05/09, 9:00-11:00am.
Join the course mailing list by typing csmail -a cs556 on the CS cluster (e.g. csa/csa2/csa3 machine). By sending to cs556 AT cs DOT bu DOT edu, your message is broadcast to the whole class, so please use it wisely.
For non-CS students, you can get an account on the CS cluster at the Undergraduate Computing Lab located at 730 Commonwealth Avenue, third floor. Please see a Terminal Assistant there for help.
Spring 2005 Final Exam Schedule
Note: Last day to drop a course without "W" is Tuesday 2/22/2005. Last day to drop a course with a "W" is Friday 3/18/2005.
![]()
Includes projects that (1) build upon application (socket) programming knowledge from CS 455/655, and/or (2) involve the modeling of network systems and their performance evaluation using analysis and/or simulation.
We may make use of the Internet Teaching Laboratory facilities for hands-on/test-bed experiments in an isolated setting (configuring a network, a routing protocol, doing traffic measurements, testing a new protocol, etc.)
See Tentative Syllabus and Schedule (subject to change).
See Assignments Page.
Basic networking (CAS CS 455/655 or equivalent), including TCP/IP protocols and Internet principles like addressing, routing, transport, naming and client-server socket programming.
Strong programming skills in C, C++, or Java. You will probably be given the flexibility of doing the programming assignments in a language of your choice. Knowledge of scripting languages such Tcl/Tk might also be helpful. If a sample skeleton code is given in a certain language as part of an assignment, you may still choose to use another language.
Algorithms and data structures (CAS CS 112 or 113, or equivalent).
Working knowledge of probability theory (CAS CS 350 or 470/670, or equivalent).
Background in operating and architectural issues should be helpful.
No special assistance or consideration will be offered if your background is inadequate.
Tuesdays 3:30pm - 5:00pm, and Fridays 3:00pm - 4:30pm, MCS 271. Or, by appointment; please e-mail me at matta AT cs DOT bu DOT edu.
Karim Mattar
E-mail: kmattar AT cs DOT bu DOT edu
Office Hours: Mondays 3-4pm, Wednesdays 2-3pm, and Thursdays 12-1pm. Or, by appointment; please e-mail Karim.
Place: MCS B20.
Phone: TBA
There is simply no single textbook that either covers all the material in this course or covers them in a reasonably detailed level. Some lecture slides and notes will be made available on-line, and supplemented with some papers, Internet RFCs and drafts. In case we use portions of a textbook, the textbook will be placed on reserve in the Science & Engineering Library. Follow this link for the readings.
There will be 2 in-class (midterm and final) exams to test your basic understanding of the main concepts discussed in class and in assigned readings. Both exams will closed books and notes. However, you will be allowed to bring one 8.5"x11" sheet of notes to the midterm exam, and an additional sheet of notes to the final exam. Exams will be cumulative, i.e., they will include all material covered in class from the beginning to the day of the exam. It is reasonable though to expect the final exam to focus on the latest material.
There will be about 3 written homeworks, which may require you to perform simple numerical computations, simulations, measurements, or answer basic questions on assigned readings. You may also be required to report on experiments performed in the Internet Teaching Lab (ITL). These homeworks are to be completed individually.
A main objective of this course is to familiarize you with programming and analysis tools useful in the design and evaluation of networking systems. To this end, you will be assigned two relatively small-scale projects (e.g. using socket programming or writing/using a simulator). You will then be asked to complete a somewhat "research-oriented" project that may extend the two projects, or that you pick from a number of suggested projects, or that you pick yourself (possibly based on your current Masters or PhD project if related to the subject matter of the course). This "research-oriented" project may involve using an existing simulation tool to study certain aspects of networking or may make use of our lab facilities. You will be allowed to work in teams of two. More details follow.
There will 2 projects. You will be given about 2 weeks to complete each assignment. These projects can be done in groups of two.
The course also requires you to complete a research paper in the format of a "real" scientific paper. A team of two students may collaborate in submitting one paper. The choice of the topic is quite flexible. A couple of possible projects will be provided. You can also define your own project on a topic of interest to you. In this case, before you start on a topic, I must approve of it first. Please stop by my office or send me an e-mail and I will let you know if the topic is relevant and I may also point you to some references/ideas. You will be required to submit two reports. You will be given about 3-4 weeks to complete each report.
In your research project, your solution approach may involve the modeling of a network system and its performance evaluation using analysis and/or simulation, or the implementation and testing of network services. Thus, to obtain results in support of your project, you may need good computer programming skills (e.g., in C, C++, or Java) and working knowledge of operating systems. Knowledge of basic queueing theory and simulation (as in CAS CS 350 or 470/670) should also be helpful.
The research paper may be based on your current Masters or PhD project if related to the subject matter of the course, or may serve as a starting point for a Masters or PhD thesis!
Your overall grade will approximately be based on the following policy:
| Two Exams: 40% (March 17, 2005 and May 9, 2005, 20% each) | |
| Homeworks: 20% | |
| Projects: 20% | |
| Research Project: 20% |
You are expected to attend and actively participate in class. This is an advanced course whose goal is to give you a broader view of networking not only of today but also of tomorrow. So questions and thoughts are very welcome.
Each assignment will have a due date. There will be a 5% penalty per day for late submissions, unless the assignment specifies that no late submissions are allowed. But, no late assignments will be accepted after one week from due date, and the last day to submit any late assignments is April 28, 2005.
For your research paper, you must submit two reports. In your first report, you should identify a particular problem that you propose to work on and also what your objectives are. You should also specify how you plan to achieve your objectives -- whether by analysis, simulation or some other technique. So in your first report, you should precisely define your problem and clearly state the research question(s), and identify related work, your objectives and solution methodology. You are advised to start working on your research project as soon as possible. Your first report must be typed and should not exceed 5 pages (at least 10pt font size), including all figures, tables and references.
Your second and final report must contain a complete description
of your project. So, it will include parts of the first report together
with some results/findings. You should obtain these results using the solution
methodology you already specified in the first report. For this, you may
use one of a number of tools (see below), including simulators, analytical/numerical
techniques (queueing theory, dynamic flow theory, worst-case analysis,
etc.) and experimental tools (netperf, etc.) Your results should be feasible
to obtain by the deadline but not too trivial! Your final report must be
typed and should not
exceed 10 pages (at least 10pt font size), including all figures, tables and
references.
Tools: You are free to use whatever tool you need. A popular
tool is discrete-event simulation. You can, of course, write your own simulator
from scratch. You can also use one of a number of network simulators already
available. Most of these network simulators are written in C, C++ or Java and
are documented. However, you may need to modify or extend the simulator
you choose. Note that due to time constraints, it might not be feasible
to make major changes/extensions to obtain your results. Check the documentation
for the capabilities and flexibility of each simulator. Again, come see
me if you need help on which simulator to use. Following is a list of some
simulators/tools:
| MaRS: A packet-level simulator for evaluating routing systems. | |
| UCB/LBNL/VINT Network Simulator - ns (version 2): NS provides substantial support for simulation of TCP, routing, and multicast protocols. Includes links to topology generation, wireless network simulation, other simulation packages, visualization tools, and traffic archives. | |
| UCB/LBNL Network Simulator: Contributed Code, WWW Traffic Generator. | |
| BRITE: BU's topology generation tool. | |
| itmBench: a Linux-based prototype developed at BU for flexibly building distributed traffic control applications. | |
| TOSSIM: a simulator for sensor networks. | |
| Dummynet: A tool for emulating IP networks. | |
| Performance Measurement Tools: A collection of tools for measuring Internet performance. |
We will provide an overview of discrete-event simulation and ns-2 (available on our CS cluster). You are expected to have strong programming skills, working knowledge of operating systems, and ability to learn new tools to complete your assignments.
You are also encouraged to use our shared and isolated lab facilities --- CS Computing Lab and Internet Teaching Laboratory (ITL) --- for experimental evaluation of protocols and applications.
General discussions of issues in networking is strongly encouraged. But you must submit only your own work. A student violating this policy will receive a grade of "F" for the course. If you are having trouble completing an assignment, see the instructor.
See BU CAS Academic Conduct Code.
![]()
The use of this page and pages linked to it (including syllabus, course descriptions, handouts, and all class lectures) is permitted for the class CAS CS 556 at Boston University and for non-profit educational purposes only. Any other use requires permission of the author (Ibrahim Matta, matta AT cs DOT BU DOT edu).
Acknowledgments: The design and contents of this course were influenced by many colleagues, in particular, S. Keshav, Jim Kurose, Mostafa Ammar, Guru Parulkar, Jorg Liebeherr, George Apostolopoulos, Nitin Vaidya, Jennifer Hou, Jorn Altmann.
![]()