Got started. I have classes for constants, variables, addition, subtraction, multiplication, division, and powers. It can parse prefix notation into a tree of AlgebraNodes, and produce infix notation from a tree. It can also differentiate constants, variables, sums, differences, products, and quotients; and simplify (to some extent) sums and products.