CS3851 -- Lab 4: Six Degrees of WWW or Not

Options

You may either construct your own lab assignment (subject to approval) or do the assignment given below.

Outcomes Addressed

  • apply asymptotic time complexity analysis to choose among competing algorithms.
  • describe how graph and tree structures are implemented.
  • list at least three engineering applications of algorithmic design and analysis.

Team Assignment

You must work with your partner.

Overview

In 1967 social psychologist, Stanley Milgram, conducted an experiment that lead to the coining of a famous phrase: "six degrees of separation." Milgram contended that two randomly selected US citizens are connected by a short chain of acquaintances and that the average length of the change is six.

The Oracle of Bacon was created in 1996 by a Ph.D. student, Brett Tjaden, to explore one application of the six degrees of separation concept. The oracle attempts to catalog the degrees of separation between actor Kevin Bacon and other actors and actresses. Interestingly, the average degrees of separation between Kevin Bacon and the 815,811 actors/actresses in the database is less than three. Actors with a Bacon number of 1 have been in the same movie as Kevin Bacon. Actresses with a Bacon number of 2 have been in a movie with at least one actor with a Bacon number of 1, but have not been in a movie with Kevin. Actors with a Bacon number of 3 have been in a movie with an Actress with a Bacon number of 2, but not lower. (Actor/Actress have been used interchangeably in this paragraph.)

For this assignment, we will use the following definitions:

  • The w number is the minimum number of links that must be followed in order to get from one webpage to another.
    For example, we say that the myweb.msoe.edu/~taylor/cs3851/lab4.htm number for msoe.t-a-y-l-o-r.com/ is 1 because there is a link from this webpage to the support forum.
    We say that the www.msoe.edu/academics/academic_departments/eecs/ number for msoe.t-a-y-l-o-r.com/ is 4 because we must travel through three links to get from start to finish (www.msoe.edu/academics/academic_departments/eecs/ --> www.msoe.edu/campus/directory/index.shtml?act=list&department=Electrical%20Engineering%20and%20Computer%20Science --> www.msoe.edu/campus/directory/detail.shtml?id=taylor&pageTitle=Dr.%20Christopher%20Taylor --> myweb.msoe.edu/~taylor/ --> msoe.t-a-y-l-o-r.com/).
  • The W number is the minimum number of domains that must be visited in order to get from one webpage to another.
    For example, we say that the myweb.MSOE.EDU/~taylor/cs3851/lab4.htm number for msoe.t-a-y-l-o-r.com/ is 1 because we visit only one domain other than MSOE.EDU.

In this lab you will create an application that determines W number and w number between two webpages.

Details

Your program should allow the user to enter source and destination URLs and select which number (s)he would like you calculate. Your program should then seek to find the W number or w number in an efficient manner.

You may implement your application in Java, php, Ruby on Rails, C++, or some other language of your choosing.

FAST recordings (due 11:00pm, the day prior to weeks 9 and 10 lab and when the assignment is due)

You are required to log all the time spent on this assignment each week in the FAST system.

Demo (due 1 hour prior to week 10 lab)

Each group will demonstrate their working program during lab. Students and instructor will rank the different programs, and the winning team will receive two prizes.

Each team can determine what they want to focus on in order make their demo stand out. You may wish to optimize your program for speed, particularly on large datasets, provide a stunningly useful user interface, or something else.

Lab report (due 4:00pm, Friday of week 10)

Here is a template file to use as a starting point for this report.

Each pair should submit one lab report. Your report must include:

  • Discussion containing:
    • An analysis of appropriate patterns (think about how the program may be extended by others in the future, identify logical patterns to consider even if you decide not to make use of them in your solution to this assignment)
    • A description of your algorithms
    • A description of the component of your application you are most proud of
    • A discussion of what you found most challenging
    • How you an your partner worked (or didn't work) together
    • Etc...
  • Sample Program output for:
    • The unix.t-a-y-l-o-r.com/ number of www.t-a-y-l-o-r.com/quotes/quotes-f93.htm
    • The www.m0bi.mobi/g.htm number of www.m0bi.mobi/v.htm
  • Documented source code

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic Submission Guidelines. (You may wish to consult the sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost.

If you have any questions, consult the instructor.

Acknowledgment

This laboratory was developed by Dr. Chris Taylor.

  • © 2001-2009 Dr. Christopher C. Taylor •
  • Office: L-343 •
  • Phone: 277-7339 •
  • npǝ˙ǝosɯ@ɹolʎɐʇ