CSE 373 -- Data Structures and Algorithms
Winter 2001
|
Department of Computer Science and Engineering,
University of Washington
Steve Tanimoto (instructor)
|
Assignment
5
Version 1.0 of February 25.
|
Applications and In-Depth Studies
Due dates and times: See the section below
on "Timing", because some portions of the assignment must be completed
prior to the applet deadline. The final applets are due Thursday, March
8, 2001, at 6:00 PM.
Turn in your documentation web page for this assignment by filling in the
A5 online documentation submission form. |
Title: Applications
and In-Depth Studies.
Purposes:
To explore a data structure or algorithm in depth.
Instructions: Do option 1, 2, or 3.
Option 1 (for individual students, not
groups). Develop a novel
application of a qualifying data structure or algorithm.
A qualifying data structure for Option 1 is one of the data structures presented
in the text.
Your application (which should be in the form of a Java applet)
should include the same kind of TextArea interface to
the application that we have been using for applets.
Application ideas should be proposed by Tuesday, February 27, at 6:00 PM
using the online form.
Your application should contain the following elements:
A piece of descriptive text that poses either a fictional or a real
scenario at the level of detail and in the approximate style of the
thought questions given for Assignments 3 and 4.
An applet with a TextArea that accepts inputs that correspond to the
natural events for the application.
Clear visualization of the data structure in the applet, so that the
state of the structure is clear from the display.
The text for a full demonstration, so that a user can copy the text
from the web page, paste it into the TextArea, and see all the important
features of your application.
An explanation of what questions your program answers and what
challenges you overcame to implement it.
If you use a very simple data structure, such as a linear array or
a linked linear list, then you should provide some extra applet features
such as performance measurement instruments or optimization methods
so that you have an equal chance at a good grade as someone who
works with a more complicated data structure.
Any code written by others that you use in this program must be
credited to its original author and its functionality carefully outlined.
Any code of your own should be
heavily commented with information about how each feature of the
data structure and applet is being implemented.
No oral presentation is required in Option 1.
Option 2 (for groups). Graph algorithm applet,
performance analysis.
This option is similar to Assignments 3 and 4; however, there is no requirement
for online communication using INFACT-FORUM.
The topics available for this option include the following. However,
no more than one group should do any particular topic.
Critical Path Method (PERT = Project Evaluation and Review Technique).
Image segmentation into regions of similar color
using the UNION-FIND techniques.
Subgraph isomorphism with vertex-labeled graphs. Assume the graphs
are directed and that each vertex has a 1-character label on it.
Demonstrate the search for an instance of G2 as a subgraph of G1.
Finding a maximum-cardinality matching in a bipartite graph.
Finding the strongly-connected components of a directed graph.
Finding a k-coloring of the vertices of an undirected graph, where the integer
k is one of the inputs to the algorithm. If two vertices are connected by an
edge, then they may not be assigned the same color. At most k distinct colors
are permitted in a k-coloring. Every vertex must be assigned one of the colors.
Generating the Hamiltonian cycles of an undirected graph.
Finding the biconnected components and articulation vertices of
an undirected graph.
Maximizing the flow through a directed network with capacity
constraints, sources and sinks. (Construct a maximum flow using
the augmenting path technique.)
The group will also put documentation on
the web (on the page with the applet) explaining (a) the technique and
the details of how it works, and (b) the special behavior studied.
Groups doing this option will give an 8-minute oral presentation.
Option 3 (for groups). Study of
a data structure or algorithm, either by itself or as part of an
application.
The group will have maximum flexibility to propose a topic using
this option. The topic must relate to the course in terms of data
structures or algorithms. The topic must be suitable in terms of
work and fairness in comparison with others. There must be an applet
and presentation along the lines of those we have done in Assignments
3 and 4. Propose your topic by the topic deadline and get feedback
before committing to this topic.
Groups doing this option will give an 8-minute oral presentation.
Timing
Wednesday, February 21: Assignment is posted
Consider the possible options.
Discuss with your group whether to continue to work as a group
or to split up.
Make suggestions to each other for possible topics.
Friday, February 23.
Come to a rough agreement with your group about your plans.
Settle on three or four of the possible topics and one or two options.
Tuesday, February 27 at 6:00 PM:
Deadline for submitting topic proposals/choices.
Monday, March 5:
Deadline for web pages describing your application or technique.
This page should cover the basic idea and each of the operations you are
handling. Explain the division of labor on this page if you are doing
a group project.
Monday, March 5 in class.
Presentations for those doing Option 2 or Option 3.
Wednesday, March 7 in class.
Remainder of presentations for those doing Option 2 or Option 3.
Thursday, March 8 at 6:00 PM:
Deadline for turning in your or
your group's applet(s) and other files
Presentation Guidelines:
(1) prepare a web page with your applet, plus about one page of bullet
points to guide your presentation; (2) tell what technique(s) you are
using; (3) tell us about the test data you are using to investigate the
performance of your technique,
(4) demonstrate
your applet but watch the time; (5) explain your findings so far regarding
the performance of your technique on your test data and any insights you
have gained about your technique.