The purpose of the course project is to provide the students with hands-on experience with computer networks. I believe that hands-on experience leads to deeper understanding of the class material.
(The reference example software applies to all assignments except
for one, which will be described bt the TA.)
First go to this web site and download the reference example
software. To run the downloaded software, follow these simple instructions.
This software, written in the Java programming language, implements a simple TCP simulator which simulates the example given in the lecture notes (available here). Only the Tahoe version of the TCP sender is implemented.
Disclaimer: This software is given only as a reference, to show how to build a simple TCP simulator. You are welcome to use it and only modify or extend the parts that are required for your particular assignment. Alternatively, you can write your own software anew, using the programming language of your choosing. Instead of Java, you can use C, C++, C#, Visual Basic, or any other programming language that you find suitable.
When you get your program working, run it and plot the charts similar to those in the class notes. Calculate the sender utilization, where applicable. You will also be required to write a final report describing the software and the simulation results, as well as to give a live demonstration of your software. The exact time/place of the demonstration will be scheduled by the TA.
PROJECT DEADLINES:
Each team consists of ≤5 students. All students in a team are working on the same project. Requests for working alone or with a smaller team cannot be accomodated due to the staff shortage.
You should form the team by September 20 and notify by email both the TA and the instructor about the team member names and their email addresses.
All team members must take part in all project activities, although responsibilities may be divided so that different members take lead in different activities. But, no activity should be done exclusively by a single person. While the volume of work of each group member on each project component may not be equal, their contribution to the overall project should equal out.
Many students find team work difficult due to different personal interests and working habits. Therefore, each student should keep track of his or her contributions to the project. The exact breakdown of individual contributions must provided in the final report, so the individual grades can be fairly assigned.
The team meetings should be structured to involve:
What is the role of a team leader?
First, keep in mind that having a team leader is optional. You should elect the team leader only if you believe this would facilitate your group work.
The role of a team leader should not be misunderstood. The team leader is expected to provide organizational and logistical support, that is to organize team meetings and keep track about work progress. The team leader is not expected to set the objectives, partition the tasks, and devise solution strategies. These responisbilities must be shared equitably by all team members.
It is a good idea to select the team leader based on his or her social/personal skills, rather than their technical skills and knowledge. Past experience has shown that people with poor social skills turn out to be poor leaders and their teams end up being disfunctional, regardless of their technical knowledge.
There are neither benefits nor responsibilities for the
team leader. The leadership is a voluntary responsibility, just to
facilitate the team work: help organize the meetings and remind the
team members about commitments and deadlines. The team leader will
not receive any rewards (e.g., higher grade) for serving in
this capacity. The leader is also not accountable for "failing
to lead" and cannot be blamed for the lack of communication skills or
general lack of success of the team's project. For example, the
leader has no such responsibilities as "knowing what needs to be
done", assigning work loads (fairly or otherwise), or distributing the
responsibilities. This must be agreed upon by consensus. Most
importantly, each team member must be proactive, rather than
waiting to be assigned the duties by the team leader or anybody
else.
Remember, All team members are equally
responsible for all aspects of the project.
What if your team is not functioning well?
If you notice that your team does not function well or the team
leader tries to misuse his or her role, and this could negatively
impact your project performance, you should make every effort to
discuss this with other team members. If the "problematic" team
members (including the team leader) refuse to cooperate, you should
discuss your concerns with the instructor, the sooner the better.
Complaints about poor team functioning expressed
at the end of semester will be ignored.
Where to find information about TCP:
RFC-2581: http://www.apps.ietf.org/rfc/rfc2581.html
RFC-2001: http://www.apps.ietf.org/rfc/rfc2001.html
Only one report is required for the project, to be submitted by the whole team (one report per team). This report should be a self-contained document, including any and all flowcharts or other documents that you handed in earlier in the semester.
Every report must have a cover page containing:
.
the course title,
. group number,
. project title,
. submission
date, and
. all team-member names.
Negative points
will be assigned to reports missing- or having an incomplete cover page.
The second page of each report must detail the breakdown of
individual contributions of each team member to the project.
Quantify, as a percentage, each student's contribution to the project
components:
. algorithm design,
. coding,
. debugging,
. analysis
of results
. report preparation,
. Other:
any other project-related effort.
The reports missing- or having an incomplete contributions breakdown
page will be returned for revision before grading.
The rest of the report must contain the following sections:
Reports should be prepared using a word processor and printed on a (preferably) laser printer. Handwritten reports or reports which contain handwritten material (e.g., figures, tables, etc.) will not be accepted.
Note: Enclose along with your final report any previous graded documents that are currently with you so we can verify how well you addressed the issues raised therein in your final report.
Each student must be aware that a major part of his or her final grade depends on the team project. The failure to cooperate and invest equitable amount of effort can lead to undesirable outcomes. To help us assign the grades fairly, you are required to exactly specify the individual contributions to the project (as described above).
Each report will be graded as a whole and the grade will be assigned. Next, the total grade will be divided up to individual team members, based on the reported contributions breakdown and the judged quality of the components of the project. Hence, it is quite possible that members of the same team receive different grades.
Late reports will be levied a late penalty of 10% per day, up to 3 days late. After that, no credit will be given, unless more than 40 % of team members (e.g., at least 3 out of 6) provide a written excuse from a physician. Since the deadlines are known well ahead, there will be no extensions for any of the deadlines. Please don't bother asking.
Contact the instructor immediately should you have any questions
or concerns about the grading policy.