This is an online course. All assignments are to be submitted as text-only email or posted on
the web and submitted by email containing the URL of the
assignment to:
with absolutely no attachments. No assignments will
be accepted late.
No assignments will be accepted on paper. No assignments will be
accepted on computer media, CDs, or thumb drives. An
assignment is late if the email is sent after the start of the class at
which it is due.
The grade for the assignment will be sent back to the email address from
which the
assignment email was sent. In the case of group assignments in which
multiple students
are involved, one student should be the sender of the email and the other
students should
be listed both in the email "CC:" list and in the body of the
message.
Students should check this page frequently for updates.
General Process for Doing this Course
You will have assignments that require you to do readings, view web sites,
take quizzes and exams on line, and prepare materials on the web. There are no formal class
meetings for this course, but we will try to schedule both individual and
groups Skype sessions. It is very important that you keep up with the
work, or you will find yourself at the end of the semeter with an entire
semester of work still to do.
You will have a quiz to do every week of this course. You will find the quiz links
on this page as the course progresses.
Assignment #1, assigned Friday, 1 February 2013, due Friday, 8 February 2013.
If you have not already done so, download Skype and create a Skype account
for yourself.
Email your Skype ID to the instructor:
The instructor (yayahjb) will then send you a contact request, which you
should accept.
Start reading the syllabus and get your text books.
Read Chapter 1 (pp 1 -- 36) of
H. J. Bernstein, M. Goldstein, "Network Design and Implementation Lecture Notes
Spring 1984" Network_Design_and_Implementation_Spring_1984.pdf,
preparing detailed notes on queuing theory and graph theory.
Prepare a preliminary project proposal for the network design project that
you will do for this course. You may work solo or in a team. If you are willing
to work in a team, be certain to say so in your project proposal. If you end
up working on a team for your portfolio project, some significant portion
of the project must your own personal creative effort. Be very, very careful
to identify what portion of the project will be own personal creative effort.
Be very, very careful to credit your sources on _everything_ you will be using
that will be done by other team members or which will come from putside sources.
Schedule your first Skype meeting with the instructor.
Do Quiz 1. This quiz only asks question through
the material on queuing theory, but please do the graph theory readong now. You will have more
reading to do on the next assignment that will build on the graph theory part.
Assignment #2, assigned Friday, 8 February 2013,
due Friday, 15 February 2013.
You should now have a copy of the Cook textbook. Read Chapters 1, 2 and 3, pages
1 -- 89 of Cook. Prepare detailed notes on the Max Flow, Min Cut Theorem. Be
prepared for the next quiz to explicitly compute the maximal flow through a network.
Be sure to get the Hwei Hsu text. You will need it for the readings for the
next assignment.
Do Quiz 2. This is a very difficult quiz.
You will do much better is you take the time to have a Skype session with the
instructor before trying to do it and if you form a study group, but do not put
off doing the reading and trying the quiz.
Assignment #3, assigned Friday, 15 February 2013, due Friday, 22 February 2013.
Read Chapters 1, 2 and 9 of the Hwei Hsu text.
Read Chapter 2 (pp 37 --56) of
H. J. Bernstein, M. Goldstein, "Network Design and Implementation Lecture Notes
Spring 1984" Network_Design_and_Implementation_Spring_1984.pdf,
preparing detailed notes on communications network design.
Assignment #4, assigned Friday, 22 February 2013, due Friday, 1 March 2013.
Your goal for the week is to become proficient in working with the Ford-Fulkerson
Max Flow Min Cut algorithm. You will find working implementations of an API and
test program in
MaxFlow.java
and
MaxFlowTest3.java
This package implements Dijkstra's algorithm and uses it to implement Max Flow Min Cut. In working with
this package you may consult with anybody you wish, but it is important the you learn to work with it.
Be warned -- converting it to work in the undirected case is not as easy as it look.
Install and run the package on some computer that has a java compiler. Note that you can install a
java compiler on you own laptop or you can use arcib.dowling.edu or you can you any of the many laboratory
computers as Dowling.
Try the built in test case and change it to do the questions in the following quiz.
Considering what you have read in Chapers 2 and 3, be prepared to propose a
practical series of steps you would use if you had been asked to design the
infrastructure of wires in some appropriate topology with appropriate capacities for a
real packet-switched network using TCP/IP. Be prepared to list the questions you
would ask and the approach you would take to coming up with a design.
Working either by yourself, or with your classmates, prepare a program that
implements the Kleinrock approximation.
Midterm: The CSC2281 midterm will be given during a 2-hour supervised Skype session on or before
Friday, 15 March 2013. The default time is Monday, 11 March 2013 from 8 pm to 10 pm. If you
wish
to propose
an alternate time contact the instructor via Skype IM or email no later than Friday 8 March
2013.
Assignment #6, assigned Friday, 15 March 2013, due Friday, 22 March 2013.
The rest of this semester will revolce around applying the tools
you have learned to your project. You must see the instructor in person or
via Skype to firmly settle the scope of your project no later than on
Monday 19 March 2012.
Form this point on, you must post information on your project progress
on your blog no less often than once per week. What you post
should reflect both your specific contributions to the project and
your own understanding of the progres of the project as a whole.
Remember, you must make a personal, original contribution to
the project.
Working either by yourself or with your classmates you were to have writen a program that will compute optimal
capacities for a network using the Kleinrock approximation. Make a version of the program will accept the following
inputs:
A count, n, of the lines in the network;
A list of offered loads r[i] for each line in bits per second;
A distance d[i] along each edge;
The factor, mu, that gives the constant factor of proportionailty between capacities, C[i] and service rates
in bits per second, rs[i] = mu*C[i];
A target delay W[0];
The program should minimize total costs assuming costs are proportional to
the sum of the products of the costs and
the distance. The entire class may share one working program, but everybody is responsible for being able to describe
the design of the program in detail. You should follow what you read in Chapter 3 (pp 59 --96) of H. J. Bernstein, M.
Goldstein, "Network Design and Implementation Lecture Notes Spring 1984"
Network_Design_and_Implementation_Spring_1984.pdf.
You will need a running version of this program to answer the questions on the next quiz.
The source of the program is to be posted on your Google Sites account and you
must describe in detail how you can apply this program to your project on your web site and
in summary form on your blog.
Gather as much data as you can on offered loads for your project and post them on your Google sites web site.
Assignment #7, assigned Friday, 22 March 2013, due Friday, 5 April
2013.
This assignment overlaps the break, and will be long. Your objective
is to assemble the software and data for your network project and to do
it. Be sure to keep updating yor blog as you progress.
First the tools: working with your classmates or any others yo can
interest, write a program that will generate an
acceptable topology to provide redundant connections that will satisfy
a list of offered loads, and realistically allocate capacity to
minimize cost for a given delay. The required
inputs are:
A count, n, of the nodes in the network;
A list of offered loads load[i][j] for each pair of nodes in bits
per
second;
A list of all distances dist[i][j] for each pair of nodes. Note
that
it is not necessarily true that dist[i][j] == dist[j][i];
The required degrees, conn[i][j], of node-disjoint connectivity for
each
pair of nodes. In all cases the program must force conn[i][j] >= 2
for any pair of nodes with any offered load. Note that it is not
necessarily true that conn[i][j] == conn[j][i];
A count, m, of available media;
Lists of capacity, cap[k], and cost per unit length, cost[k] for
each
medium k, 0 < k < m;
The factor, mu, that gives the constant factor of proportionailty
between capacities, C[i] and service rates in bits per second, rs[i] =
mu*C[i];
A target delay W[0];
This program should apply the graph theory you have learned to generate
a reasonable topology that satisfies the required offered loads and the
connectivity constraint, and the Kleinrock approximation to minimize the
cost. While a final working program would return to try alternate
topologies and then redo the capacities, for this exercise, just do
one forward pass.
The entire class may share one working program, but everybody is
responsible
for being able to describe the design of the program in detail. This
program
is just the sum of everything you should have put together to be able to
do your project. You may do it as one big program, or several smaller
ones,
but you need it to do almost any network design. Post the working program
to your web site and summarize its status in your blog. Everybody has to
post it, even if only one person does the programming.
Be prepared to describe in detail how you can apply this program to
your project.
Based on whatever data you have collected and the program you have
written, do a preliminary design for your network and post it to your
website with a brief discussion in your blog. You will be asked about
this on the next quiz.
Assignment #8, assigned Friday, 5 April 2013, due Friday, 12 April 2013.
You should now have all the tools you need to do your project. Do it.
Update your project web site with a timeline and list of tasks needed
for completion.
If you see any difficulty in completing the project by 3 May with
a significant personal contribution, contact the instructor immediately
to work out how to deal with this.
Update your blog with details of your personal efforts on this project
this week. Please note that failure to make a signficant personal
contribution to this project means that you will not get any credit for
the project and you will have to do some other project from scratch
to complete the course.
Assignment #9, assigned Friday, 12 April 2013, due Friday, 19 April 2013.
Update your project web site with a timeline and list of tasks needed
for completion.
If you see any difficulty in completing the project by 3 May with
a significant personal contribution, contact the instructor immediately
to work out how to deal with this.
Update your blog with details of your personal efforts on this project
this week. Please note that failure to make a signficant personal
contribution to this project means that you will not get any credit for
the project and you will have to do some other project from scratch
to complete the course.
Assignment #10, assigned Friday, 19 April 2013, due Friday, 26 April 2013.
Update your project web site with a timeline and list of tasks needed
for completion.
If you see any difficulty in completing the project by 3 May with
a significant personal contribution, contact the instructor immediately
to work out how to deal with this.
Update your blog with details of your personal efforts on this project
this week. Please note that failure to make a signficant personal
contribution to this project means that you will not get any credit for
the project and you will have to do some other project from scratch
to complete the course.
Assignment #11, assigned Friday, 26 April 2013, due Friday 3 May 2013.
Finish your project, and prepare a final presentation of that project on
your project web site and email the URL the instructor. Make certain that
the project honestly credits all sources used, and clearly identifies
which persons did which work on the project. Your email must contain
the following declaration: "I _(your name here)_ take personal responsibility
for the honesty and accuracy of all the source attributions and credits
on _(URL or your project here)_ and declare that all work identified
on that site as my work is my personal original creative effort."
Note: Failure to turn in the project on 3 May makes it highly likely
you will have to take an incomplete for the course. A project of this
complexity is unlikely to be complete on the first try, but if you
turn it in later, there won't be sufficient time to fill in any gaps
before grades are due.
Final There will be an online, Skype supervised final for this
course to be taken on Tuesday, 7 May 2013, from 8 to 10 pm. If you have
a conflict at that time, contact the instructor no later than Tuesday,
30 April 2013 to arrange to take the final on some earlier date and
time than the schedule time.