Ideally teams will produce libraries or modules which will be analysed by other participants as shown below. Libraries are always more likely to be successful where they are based on existing proven methods.
Obvious examples are numeric methods, statistics, and abstract data structures.
Acceptance of approach. A library that is not immediately understandable may well not be explored, even though it is well-built and powerful. We shall discuss those things that help prmotion of a library, including the need for careful documentation, and demonstrator applications. Java's Exception handling is extremely powerful, but must be designed from the start. All modules must be tested, with both valid and pathological data.