Java Tutorial - Programming a symbolic derivative calculator for real functions