Such a learning environment could be supported by moving away from the existing rigid and drill-driven educational software to a more flexible component-based toolkit. Students and teachers might then be able to construct their own mathematical software for learning. Java can provide resources which integrate a broad spectrum of experimental and visual explorative tools. Students can use these tools to make connections between different mathematical representations, to test relationships and discover patterns, and to answer self-motivated questions. As students are exploring and hypothesizing, teachers can concentrate on the more subtle process of engendering experience and intuition.
The networking capabilities of these distributed object technologies also allow for synchronous learning and building so that students can share their tools, in real-time with classmates, teachers and researchers all over the world. Whether they are building games or solving problems together, it is believed that collaborative activities amongst students will engender the deepest and most fulfilling learning; in this rich and flexible playground students can exercise their doing/thinking/learning within a supportive social context.