Inspired by the common binary search algorithm, this design would be a binary or tertiary search on the next desired letter.  The selection tree would appear under a list of the already selected letters. After a new letter is selected, the tree resets to the root node eg.

Below are two potential visualizations of this, the tree representation and the list representation, where a user would use the left or right arrow keys to narrow in on the desired letter. Both diagrams show the same progression of selecting the next letter to be an “N”.

Binary Search Letter Selection Tree

Initially Billy is given two options "A-M" or "N-Z". By hitting the "right arrow", two nodes appear under "N-Z" further dividing the letters into "N-T" or "U-Z". This could continue until Billy ends up at only one letter, which would require 4-5 key presses. The design shown below narrows down to three letters, at which point Billy could use the "left", "right", "select" keys to choose from one of three possible letters. After a letter is selected, the tree clears leaving only the first two choices, to let the user choose the next letter.



Binary Search Letter Selection List

Although the tree display above is very compact, it might be mentally cumbersome to determine where in the alphabet a letter exists. The design below also utilizes binary search but shows Billy all the possible letters he is choosing from. By select left or right, n/2 remaining possibilities are highlighted, and he then uses the "select" button to narrow in.

Spaces and Puncuation

For both designs the following would be necessary

Spaces - Hitting the down key would insert a space

Punctuation/numbers - Numbers could be added.  The first choice could be ("A-M" OR "N-Z, 1-9") or ("Letters" OR "Numbers"). Punctuation would be hard to accomplish in the tree representation, as punctuation as has no ordering, like the alphabet. Punctuation could work well in the list representation though, by simply appending punctuation after "z" eg. "... w x y z . ! @ # $ % ^ & ..."

Safety

If in the middle of selecting a letter, a wrong choice is made, Billy could simply hit the "up" key which would move back up a level in the tree or list. If an entirely wrong letter is input, hitting the up key from the root node could delete a previous letter.

Learnability

The tree representation might be confusing to understand, but we believe it would be fairly obvious to pick up (assuming Billy knows the order of the alphabet). Deleting an entered letter or moving up a level in the tree also seems fairly intuitive, since the metaphor for inserting a letter is moving down the tree, but will need to be tested.

Efficiency

If Billy is required to halve until one letter remains, this would take 4-5 selections. It might be more efficient to make two cuts so three letters remain, and let Billy choose from one of the three. People who play video games often remember short key sequences as combination moves in games, and might be quick to remember the key presses for word combinations.

Tertiary Search

Tertiary search would be similar to binary search, except instead of just using the "left" and "right" keys, a user could also use the "down" key. This would require only three key presses for each letter. A space could no longer be the "down" key and would likely be simply appended after "z" ie. hitting "right" three times. This would not be obvious to a user, and would have to be indicated somehow, perhaps a note that says "Hit right three times to enter a space" which would still bring the user through the visualization as if they were choosing the letter after "z".

Autocomplete

This binary search could encompass an autocomplete as pictured below. At any point, if the user's selection shows up in the list, they could hit the "down" key to select from a list selections. Again, "down" could no longer be a space, but a space could be achieved using the same techniques mentioned above in the Tertiary Search. 

  • No labels