Java ADT and Algorithm Library
 

About Us

Philosophy

We believe that this project can only be successful when we go big. That is we want to integrate a large part of the open source community, both in the process of making as well as in using our components. We seek to create a large community.

On the development side we have great hope in the work of volunteers. Students might send in their essays (thus at least someone reads them), people, who did set up their own library privately, may send in their code as proposal and contribute in the phase of designing the proper interfaces. Developers, who use our components, might suggest improvements in the code or return optimized derivates. To facilitate contributing volunteer work to the project we follow a friendly admittance policy.

On the user site we seek to have cooperations with other projects as to prove the power and reliability of our components.

We believe that team work and communication are crucial to the success of the project. The code is the core of our project, but we follow a holistic approach by also supplying a rich documentation as well as tutorials, examples, illustrations and explanations.

Organization

The code is organized vertically in three different groups and horizontally in different packages.

  Essentials Math ???
Group 1      
Group 2      
Group 3      

In each cell there is at least one admin. All admins of a row define and coordinate matters of the group whereas the admins of a column collectively define and coordinate matters of the packages (e.g. what should be in the package; assure that packages in different groups have the same “size”). If there is a lack of personnel a person can be admin for more than one cell. Admins work quite autonomously within their cell but are liable for the decisions of the group of developers that they are part of.

Group 1 – Students for Students

Contains sample code to demonstrate algorithms or ADTs. The code shall be as simple as possible (e.g. sorting int instead of object) and focus on the essence. The objective is not a good or efficient design, but education. There will be rich comments to enable the student to understand the code. There will be web pages with explanations, possibly essays and visualizations.

Group 2 – Developers for Developers

Contains default implementations for common applications. The objective is good and efficient design. There will be a well-structured interface and test criteria to verify the components. The code will be usable in a default installation and will not contain any proprietary solutions (such as a tree with a maximum depth). There will be web sites with tutorials and possibly example programs.

Group 3 – Cracks for Cracks

Contains optimized implementations for particular applications, which implement interfaces of Group 2 and ensure compatibility. There will be different classes of optimized code (speed, memory efficiency, distributed computing, etc). The code might not be usable in every context, but a full description of assumptions and constraints will be supplied. There will be benchmark data of each component.

 
© Copyright 2002, Java ADT and Algorithm Library