Decision trees are one of the most successful Machine Learning paradigms. This paper presents a library of decision tree algorithms in Java. The basic components of a decision tree algorithm are described to support the design of the system architecture. The library can easily embody parts of conventional as well as novel algorithms. The system allows the non-expert user to conduct experiments with decision trees using components and visual tools that facilitate tree construction and manipulation, while the expert user can focus on algorithm design and comparison with few implementation details. The system has been successfully used as a workbench in a programming laboratory for junior computer science students, aiming at providing a solid introduction to object-oriented concepts and practices based on a fundamental machine learning paradigm.