Software reuse has potential for educational purposes since it uses decomposition and abstraction, two necessary skills to learn programming. Software reuse techniques require abstractions that are not obvious to students or even to professionals. Taking advantage of these techniques, students can learn computer programming in a productive and organized way.