Managing Software Development
Spring 2008
Karl Lieberherr

Project 10:

Out on April 7, 2008.
Due April 14, 2008.

PART 1:
Provide a project description as described in project-document.txt

PART 2:
The Fibonnacci numbers play an important role
in finding hard raw materials for certain relations.
See lecture notes.

Read:
http://www.ccs.neu.edu/home/lieber/courses/csg110/sp08/project/project10/dyn-prog.htm
(from CMU)

Use Java to compute the Fibonacci numbers. Watch out for negative numbers!!

If you use DemeterF to compute the Fibonacci numbers use the following class dictionary:

Num : Successor | Zero.
Zero = .
Successor = "'"  Num.

Your algorithm written in DemeterF is a dynamic programming solution
for computing the Fibonacci numbers.
To compute the nth Fibonnacci number you create first a Num-object with n Successor-objects.
This computing of a unary representation of a number is artificial and is
only used here to illustrate a connection between dynamic programming (about which you
learn more in Analysis of Algorithms)
and the bottum-up approach of DemeterF.

Note that using dynamic programming to compute the Fibonacci numbers is much more
efficient than using a recursive program. This relates to the question 
of scalability which is important in software development.