Michigan's mathematics department is obsessed with Computer Algebra systems. All of our Calculus classes, whether you're a computer science student or not, are part of the Math & Statistics departments ongoing love affair with Mathematica.
As a computer science student, this is really no big deal. The Mathematica programming language is generally very well organized, clearly defined, and easy to grasp after a bit of trial an error.
But one of the big differences I've found between the Math department's teaching style and the Computer Science department is the approach toward learning how to call the built-in functions. The Math department's lab assignments revolve around correctly ordering the arguments for the Integrate[] function, or plotting some data, etc. It's a syntax/memorization exercise.
Computer Science is completely different--the emphasis is always on foundational knowledge, which then allows you to learn anything, even if you don't memorize it. That's why documentation is such an important tool in computer science. If you know the basics, you're a Google, php.net, or Mozilla Dev Center search away. If you're old school, you might own some hefty reference books for your language of choice.
The ironic thing about Mathematica is that it has some stuff computer science teachers would kill for--reference built right into the environment. Mathematica takes place inside of "Notebooks", which in computer science land are called interactive interpreters, as they allow code to be executed on the fly, as you hit enter, without having to compile it into machine code. Sure, Visual Studio and Xcode are two notable examples of IDEs for computer programming that help make invisible the separation between documentation and code, but Mathematica will literally show you the documentation for a function in the interpreter by preceding the function name with a question mark:
That's about as close as it gets to an easy button. Well formatted documentation that can be read by someone without a graduate degree... right in the programming environment, as you type. I had to find out this little gem on my own. In fact, I was the only one in my class with enough intuition to find the (searchable!) documentation center in the help menu, since the professor never mentioned it.
The best thing about this is that it makes doing my Calculus labs a complete non-issue, since the labs are written like normal Math tests: looking to see if you remembered incidental details under the assumption that there isn't going to be any reference available. Computer scientists are trained to cheat.
One of the other brilliant things about Mathematica is its ability to bridge the gap between what is easy to type and what Math should look like, which are on the opposite ends of that spectrum from one another. Math is hard to type on a single line; advanced formatting is so helpful. That's one thing Mathematica does well--type in an expression using plaintext, using carets, parens, etc, and it will spit them back out, well formatted. Another, more "hidden" feature is escape characters. Many of the symbols that represent mathematical functions (like integration by parts) is not necessarily a built-in construct.
This finds the derivative with respect to x of the expression to the right of the partial differentiation character. It seems like, given that Mathematica knew that we meant differentiation and that the subscript would contain the variable for which we're differentiating, that Mathematica would only know what we're talking about if we inserted this character sequence using the Math typesetting panel--which is what I did here. To me, it kind of implies that this character sequence is overloaded, like if I had just typed this in then it would have either told me I had some kind of weird syntax error or it would just do nothing, since it would think I was just entering any string.
Not true--Mathematica is excellent about accepting expressions the same way you would write them on a piece of paper. Using escape sequences, we can enter the partial differentiation symbol by pressing [esc] pd [esc], and pd will be replaced with this operator. If you then go to typesetting and hit subscript (ctrl + _ on Mac) and type x, then type the expression, it works just as well.
The second one I entered manually without using the typesetting palette.
Entering an integral is similarly easy: [esc]int[esc] (your expression) [esc]dd[esc](your differentiation variable).
I think it's so important that Mathematica can bridge the gap between entering Math expressions, in a human-readable format, into a computer and having it understand the semantics of the expression. Mathematica is the swiss army chainsaw of computer algebra systems, but these are the features that make it approachable and worth putting up with.