I have been exploring Yacas for a little while now. It is extremely powerful and is free. Students can download it or run it directly from its web site. There is an interactive tutorial available from the main set of tabs.
On the related links page, there is a link to mavscript, which uses yacas to perform calculations directly in text or OpenOffice Text documents. Maybe I am a geek, but being able to differentiate, graph and factor directly inside a text document warmed a cockle in my heart!