At Chalmers, Human-Computer Interaction was not my favorite course. I thought that it was a too soft subject and nothing for real engineers. Now, I've come about and changed my mind.
The user interface of SpeedCrunch can be stripped down to the bare essentials. This saves screen estate, but does not show the unexpecting user that this is a calculator.
To show the user that there is more to it, the Evaluate button is available, and a clear all button is thrown in for good measure. These buttons are optional. All screenshots of this entry shows the same application with different settings.
This interface makes it clear that you can evaluate something and most users will start to type away at the keyboard and then press evaluate - or enter. However, the application does not look like a calculator and it does not tell the user what to expect to be evaluated. Hence, a key pad is available in the 0.7 version.
The screenshot above shows a different key pad layout than used in the 0.7 version. This keypad offers more common functions (asin/acos/atan instead of sinh/cosh/tanh - my maths tutor, Bernhard, will be disappointed, he really liked the hyperbolic functions). It also divides the keys into the groups digits and dots, basic counting, variables and advanced functions. Also, the "=" button has changed from assignment to evaluation since even I did use it in the wrong way. Now, the "x=" button shows how to achieve assignment.
Not to the interesting question. When offering all this user interface parts, how do I make the user turn them off to fully apprechiate the purpose of SpeedCrunch? There is the Windows way with balloons asking the user this now and then but that just makes me annoyed. Then there is the start-up tips, but I mostly ignore those and turn them of at once.
The only solution that I can come up with that is intuit enough would be to offer a shrink button (an arrow or a cross) that would allow the user to do this. But in that case - should that widget go away with the key pad, or stay there to let the user get it back in the same way that it was hidden? A user may hide the keypad by mistake and then not find a way to get it back... at the same time, such a widget would take screen space from the advanced user.