|
|
Design Overview
Motivation
|
Design Background
The physical interface of the TI line of calculators was claimed to have "too many buttons" and to be "intimidating". The visual clutter induced by having each button support meta functionality via the 2nd button didn't help reduce the complexity of the calculator. While powerful, the 2nd button induced too much complexity and we decided to remove it. We also decided to reduce the complexity of the interface by putting only familiar words and symbols on the front of the calculator. More complex features are hidden under the sliding panel. This way, students feel they are working with a more traditional scientific calculator that they are probably used to.
Detailed Design
We reviewed six Algebra textbooks and talked to teachers about what topics they cover in a typical Algebra curriculum. We then inspected the TI-73 Catalog and listed out all the supported functionality of this calculator. Then we removed those features that did not apply to the Algebra curriculum. This includes such concepts as programming. We are left with the following features and menus, where the numbers correspond to a hard button and the features under a button correspond to either choices in that menu or, more commonly, features available via the Options button. Functionality that was removed (and the reason why) is included after this list. The gentle sweeping curve of the TI-84+ Silver Edition provided a nice ergonomic feel so we went with that basic layout.
Command-line vs. GUI
We moved operations that were once used via the command-line into graphical user interfaces (GUI). For example, in the Stats screen, "mean" is supported but not as a command-line operation -- users can access the mean of their list inside of the Stats screen only. They cannot enter "mean(1, 3, 1, 31, 3)" at the command line and expect an answer. They must go to the Stats screen and enter the list data and find their mean. For this reason, a Catalog button is no longer required because there is no comprehensive command-line to speak of. Users can still enter simple Math operations on the home screen but the idea of searching for an operation in the catalog that could apply to any part of the calculator has been been removed. Another example is when the users wishes the clear the graph of all lines. Currently, they go to the Catalog and find ClrHome or a similar command and enter it from the home screen. Now, the user goes to the most intuitive place to clear the graph by hitting the Graph button and then hitting Options to see what operations apply to that screen. There they will see the option for clearing the graph.
Modes
We were told that there must be a way for users to change modes in the calculator. We attempted to cut down on the number of modes. To do this, we sacrificed some potential convenience but have made a much simpler mode screen. There are only three modes: Normal/Scientific, Number of decimal places, and Degree/Radian.
Button Layout
The number of buttons we are left with is 44 total, and only 31 when the calculator is closed. Hiding more advanced buttons makes the calculator less intimidating and we made it a point to make those buttons hidden that didn't require daily use. So, all graphing functionality is hidden in those buttons -- there is no scenario in which you would need to open the calculator for a single button press. The 2nd button was removed to reduce visual clutter. This was done by moving many operations into the Math menu and keeping only those essential buttons. Also, some Algebra-specific buttons were added (e.g. Factor) to give the calculator an Algebra-focused feel.
Supported Functionality
Number of hard buttons: 44 / 31
Features supported: ~105 (TI-73 has ~216)
1. On/Off
2. 0
3. 1
4. 2
5. 3
6. 4
7. 5
8. 6
9. 7
10. 8
11. 9
12. .
13. (-)
14. +
15. -
16. X (multiply)
17. / (divide)
18. pi
19. y^x
20. x^2 (square)
21. Square Root
22. Math (menu with 2 columns)
- log
- ln
- !
- abs()
- x^-1
- nth Root
- E (little E)
- %
- gcd(valueA, valueB) - greatest common divisor
- lcm(valA, valB) - least common multiple;
- 10^( (10 to power of)
- A b/c <--> d/e
- F <--> D
- e^(x) - raises e to a power of x
- Int/
- 3 - cubes number
- 3ROOT - cube root
- cos
- cos-1
- sin
- sin-1
- tan
- tan-1
- r
- degree
- '
- "
- >DMS
23. (
24. )
25. Text
26. Clear
27. Del
28. Ans (previous answer)
29. Quit
30. b/c
31. X (variable)
32. Options
-
Clear Home - clears everything from memory
33. Adjust
34. Zoom
- ZBox
- ZPrevious
- ZTrig
35. Pan
36. Graph (options menu)
- Plot 1, 2, 3 (on/off)
- Shade
- Grid on/off
37. Trace
38. Zoom (menu)
- Zoom Square
- Zoom In
- Zoom Out
- Zoom Integer
- Zoom Decimal
- Zoom Fit
- Zoom Quadrant 1
- Zoom Standard
39. Y= (Options menu)
-
Scatter
40. Table/Coordinates/Points (options menu)
41. Stats
- mean
- median
- Std Deviation
- mode
- sum
- Linear Regression
- xyLine
- Pie Plot
- Mod Box Plot
- Box Plot
- Bar Plot
- Options menu
- Sort - sorts list elements from lowest to highest
42. Factor
43. Formula
44. Mode (menu)
- Normal
- Scientific
- Radian
- Degree
Unsupported Functionality
These features were removed from the TI-73 for the TI-ALGEBRA calculator.
A short explanation is given in many cases, as is the reason for removal (in
brackets e.g. {xyz}).
-
augment(list1, list2) - combines the 2 lists to create new list.
{Lists are supported but, to simplify the calculator, only one list is supported. Command-line operations such as "mean(L2)" and such are not available. We wanted to move away from a command-line interface. Therefore, all operations requiring multiples lists have been removed.}
-
Autosimp - a mode; opposite of Mansimp;
{Who is target user for ManSimp mode? This mode would be useful for lower grades, but it may just get in the way for Algebra. AutoSimp is always used instead.}
-
AxesOff/On - Window format setting; toggles graph axes.
{What is this useful for, other than a blank slate for drawing?}
-
ClrAllLists
{Implies multiple lists}
-
ClrDraw
{No drawing is supported on the graph because programming is not supported.}
-
ClrList(list1, list2, ...)
{Implies multiple lists}
-
ClrTable
{Used for programming.}
-
CoordOff/On - window format setting; toggles coordinates for display on bottom of graph screen;
{Why would you turn this off?}
-
DelVar var - deletes contents of a var;
{Seems like it is a programming only thing.}
-
ExpReg - fits y=ab^x to XList and Ylist.
{Doesn't apply to Algebra.}
-
ExprOff/On - window format setting; toggles display of the expression in the corner of the window while tracing a graph.
{Default to always-on, no need to turn this off.}
-
Fix #of places - sets fixed Dec mode setting for # of dec places.
{User does this in Mode screen.}
-
Float - sets Float Dec Notation mode setting.
{User does this in Mode screen.}
-
FnOff/On(1,2,3,4) - toggles Yn
{User does this in Y= screen.}
-
GraphStyle(Yn, style) - changing style of Yn
{User does this in Y= screen.}
-
L list - signifies a list.
{Implies multiple lists}
-
LabelOff/On - window format setting, toggles axes labels.
{This should always be on.}
-
?List(list) - returns list of differences between consecutive elements in the list.
{Implies multiple lists.}
-
Manual-Fit Yn - manually fit a line to plotted data, regression is stored to Yn.
{Best fit line offered via Graph Options menu.}
-
Med-Med Xlist, YList, freq, Yn - fits median-median, y=ax+b
-
PictoPlot
{Not used in Algebra.}
-
QuadReg(XList, YList, freq, Yn) - fits y=ax^2+bx+c to XList and YList.
{Not used in Algebra.}
-
remainder( - returns remainder resulting from the division of two positive whole numbers.
{Used for programming.}
-
>Simp - in ManSimp mode, simplifies fraction.
{AutoSimp all the time.}
-
Text(row, column)
{Programming operation.}
-
2-Var Stats XList, YList, freq
{Implies multiple lists.}
-
!=
{Will still be able to graph inequalities, but without programming, these seem not so useful.}
-
<
{Programming operation.}
-
>
{Programming operation.}
-
{
{Use List GUI.}
-
}
{Use List GUI.}
-
, - separates list elements
{There are no functions that need more than one argument, and we don't enter lists on the main screen anyway.}
-
?
{Programming operation.}
-
Fill(number, list) - replaces list1 elements with number.
{Programming operation, not essential.}
-
Horizontal y - draws horizontal line on current graph.
{Programming operation.}
-
IndpntAsk/Auto - {Not essential.}
-
Get(var) - {No connection supported.}
-
GetCalc(
{No connection supported.}
-
Mansimp
{Always AutoSimp.}
-
PersonIcon
{Programming operation.}
-
TreeIcon
{Programming operation.}
-
DollarIcon
{Programming operation.}
-
FaceIcon
{Programming operation.}
-
PieIcon
{Programming operation.}
-
round(val, #decplaces) - rounds expression
{Mainly a programming operation.}
-
Histogram
-
int(value)
{Programming operation.}
-
iPart(value)
{Programming operation.}
-
StorePic - stores current graph display in a pic var
{Programming operation.}
-
DiamondIcon
{Programming operation.}
-
StarIcon
{Programming operation.}
-
DependAsk/Auto
{Programming operation.}
-
DiagnosticOff/On - {Unneeded.}
-
Disp valueA, valueB, ... - {Programming operation.}
-
: - {Programming operation.}
-
max(valueA, valueB) - {Programming operation.}
-
min(valueA, valueB) - {Programming operation.}
-
or - {Programming operation.}
-
Output(row, col, "text") - {Programming operation.}
-
Then - {Programming operation.}
-
and - {Programming operation.}
-
coin(numTosses) - {Not used in Algebra.}
-
nCr - {Not used in Algebra.}
-
nPr - {Not used in Algebra.}
-
fPart (value) - {Not essential.}
-
Vertical - draws vertical line - {Programming operation.}
-
A_b/c - mode
{No mode supported for this - users must explicitly convert these instead of setting another mode.}
-
ClrScreen - {Programming operation.}
-
DispGraph - {Programming operation.}
-
While - {Programming operation.}
-
rand - {Programming operation.}
-
randInt (lower, upper, #ofInts)
{Programming operation.}
-
RecallPic number - {Programming operation.}
-
Line(X1, Y1, X2, Y2) - {Programming operation.}
-
DispTable - {Programming operation.}
-
DS<(var, val) - {Programming operation.}
-
Else - {Programming operation.}
-
End - {Programming operation.}
-
getKey - {Programming operation.}
-
Goto - {Programming operation.}
-
For( - {Programming operation.}
-
dice(rolls, #dice)
{Programming operation.}
-
dim(list)
{Command-line method of manipulating lists.}
-
If - {Programming operation.}
-
Input - {Programming operation.}
-
SetMenu ("title", "item1", variable1)
{Programming operation.}
-
SetUpEditor list1,list2 - {Programming operation.}
-
Circle(X, Y, radius) - {Programming operation.}
-
Pt-Change(X, Y) - toggles display of specified point at X,Y
{Programming operation.}
-
Pt-Off/On(X, Y, mark) - {Programming operation.}
-
Pxl-Change(row, col) - {Programming operation.}
-
Pxl-Off/On(row, col) - {Programming operation.}
-
pxl-Test(row, col) - {Programming operation.}
-
IS>(var, val) - {Programming operation.}
-
Lbl - {Programming operation.}
-
Menu( - {Programming operation.}
-
Pause value - {Programming operation.}
-
prgm - {Programming operation.}
-
Prompt varA - {Programming operation.}
-
Repeat - {Programming operation.}
-
Return - {Programming operation.}
-
Send(var) - {Programming operation.}
-
SetConst( - {Programming operation.}
-
Stop - {Programming operation.}
-
Select(XList, YList) - selects points from stat plot and updates list in memory
{Programming operation.}
-
seq(expression, var, begin, end, increment) - returns list that fulfills the requirements for the 5 arguments
{Programming operation.}
-
MultiConst - mode; allows user to access all defined constants
{No constants supported.}
-
SingleConst - mode; allows the user to access only one defined const at a time
{No constants supported.}
-
Insert - {Only insert mode is supported.}
-
Convert - {Not essential.}

