CS410
Spring, 2006
hw3

Part 1 due Tuesday, February 19; the rest due Thursday, February 21.

  1. Prepare for Tuesday's class (Professor Morris' guest lecture).
    Service Oriented Plugin Architectures for Biodiversity Informatics

    The Spring Dependency Injection framework allows a wide variety of resources to be accessed to maximize reuse of data and code. I'll talk about how such Service Oriented Architectures generalize the important Model-View-Controller(MVC) design pattern to permit resource reusability and reduce unwanted tight coupling between components of a software system. The example system, the Computable Field Guide software, is designed to exploit algorithms that help users explore which attributes of data about species are likely help them most quickly and accurately identify a specimen in the field or in the lab. Spring allows a "Mix and Match" strategy for MVC that allows each component to be switched easily at system configuration time, or sometimes even at run time, in ways that allow them to transparently be any combination of web services or calls to local code.

    You need not write out and turn in your answers to the last two problems (which really belong to cs310 rather than to cs410) but do try to solve them, so that you will be ready to appreciate the lecture.

    This subject matter might seem relevant only for the Mass Biodiversity project. In fact it's less relevant there than you might think, and useful for everyone.

    1. Read the brief description of the Computer Field Guide Project at http://efg.cs.umb.edu/cfg.

    2. Play with the application linked there - the URL is http://efg.cs.umb.edu/mbc/cfgClient.jsp.

    3. Consider the table
      Make cylinders color
      Honda 4 red
      Mitsubishi 6 red
      GM 4 green
      Ford 6 blue

      Given a color and number of cylinders, what manufacturer of car should you choose?

      Try to make a "decision tree" from this table which minimizes the average number of decisions to be made to select a car that meets your criteria. A decision tree is a tree where each node is associated with a question based on the table (e.g. "How many cylinders do you require?") and whose edges correspond to the possible answers from the table (e.g. left subtree 4, right subtree 6). The leaves are the names of the manufacturers offering a car that meets the AND of all the criteria on the path. The criteria are only allowed to come from color and number of cylinders.

    4. Given two decision trees, one balanced and the other not, and considering the average traversal time, how much does it matter if the tree is balanced. (Hint: It depends on how often you need to go down long paths...). Give an informal answer, perhaps illustrated by simple examples.

  2. Register for the course wiki at http://sf07.cs.umb.edu/cs410/index.php/Main_Page.

    For instructions on how to edit wiki pages, see http://meta.wikimedia.org/wiki/Help:Editing .

  3. Turn in the first of the weekly timesheets.

    If you were working at a full time job at a place that required time sheets you would have to account for at least 40 hours each week. Since cs410 isn't your full time job, you will surely be tempted to exaggerate when you fill out this one. Please don't. Remember that one of the most important software engineering principles is truth in scheduling. And exaggeration would be difficult, because the timesheet asks both for time spent and visible tasks accomplished. So it won't look good if you list many hours with little to show for them.

    Use the comments section to reflect on your week's work. Were you satisfied? Too busy with other commitments to do as much as you'd hoped? Frustrated by technical obstacles (or clients or teammates). Ecstatic about progress made (yours or the team's)?