Andrew

Document Sample
Andrew Powered By Docstoc
					 This Report is submitted to the University of Strathclyde in partial fulfilment of the
    Regulations for the Degree of MSc in Computer and Internet Technologies.




        Dynamically Resizing Keys for PDA
                   Text Entry
                    Andrew Alexander Patterson

                                    200459193

          Supervised by: Dr Mark Dunlop
  Department of Computer and Information Sciences

                               September 2005




Except where otherwise expressly indicated the work reported in this document is my own. It
has been performed during this course, and has not been submitted for assessment in
connection with any other award whatsoever.

Signed _________________________________________              Date ________________
ABSTRACT
Portable digital assistants (PDAs) have become increasingly popular due to advances

and availability of wireless services. The desire for effective text entry on portable

devices has also increased with the success of predictive text being one of the major

contributors to the sudden burst of research in handheld device text entry techniques.

However, despite considerable work on hand-written text entry, many still view small

keyboards as the easiest "pick up and use" solution to text entry on mobile devices.

Fitts' law states, roughly, that small faraway objects are slowest to hit. This paper

reports the design, development and initial user evaluations of a soft keyboard that

warps the keyboard to give larger area to keys that are likely to be entered next using

a probabilistic model using word occurrences. Although the initial findings show that

the majority of participants performed slightly better on a non-resizing keyboard there

seems to be evidence that suggest further evaluations may show that the dynamically

resizing keyboard could perform faster with practice and familiarization.
ACKNOWLEDGEMENTS

I would like to thank my supervisor Mark Dunlop for all the guidance and support
while carrying out this project. I would also like to thank Ian Ferguson for supplying
the PDAs used in the evaluation tasks. Finally I would like to thank my parents for
providing their time and help in proof reading the report.
TABLE OF CONTENTS
1      INTRODUCTION .................................................................................................1
    1.1      Background ....................................................................................................1
    1.2      Motivation......................................................................................................1
    1.3      Aims...............................................................................................................2
    1.4      Structure of Report.........................................................................................2
2      LITERATURE REVIEW ......................................................................................4
    2.1      Hard keyboards ..............................................................................................4
       2.1.1      Telephone Key pad ................................................................................4
       2.1.2      Full size keyboards ................................................................................6
       2.1.3      Miniature/Scaled Keyboards..................................................................6
       2.1.4      Chording Keyboards ..............................................................................9
       2.1.5      Virtual Keyboards..................................................................................9
    2.2      Stylus based Text Entry ...............................................................................10
       2.2.1      Handwriting recognition ......................................................................10
       2.2.2      Non-cursive Handwriting Recognition ................................................11
       2.2.3      Cursive Handwriting Recognition .......................................................13
    2.3      Gesture Based Text Input Methods..............................................................14
    2.4      Soft Keyboards.............................................................................................19
       2.4.1      Predictive Input Techniques ................................................................27
    2.5      Summary ......................................................................................................28
3      ARCHITECTURE ...............................................................................................29
    3.1      System Flow.................................................................................................29
    3.2      Platform........................................................................................................30
    3.3      Tools and Language Restrictions.................................................................31
4      SOFT KEYBOARD INPUT METHOD..............................................................33
    4.1      Keyboard Components.................................................................................33
    4.2      Soft Keyboard Design..................................................................................35
    4.3      Soft Keyboard Input Method .......................................................................36
       4.3.1      Software-based Input Panel Architecture ............................................37
       4.3.2      Custom Input Method ..........................................................................38
       4.3.3      DRKeyboardLayout.............................................................................41
       4.3.4      DRKeyboardPanel ...............................................................................42
       4.3.5      DRKeyboardLayer...............................................................................42
       4.3.6      Key.......................................................................................................43
       4.3.7      DRKeyboardLayoutManager...............................................................43
5      CHARACTER PROBABILITY MODEL...........................................................45
    5.1      Probability Model Data Structure ................................................................45
    5.2      Tree Generation ...........................................................................................46
6      KEYBOARD RESIZING COMPONENT ..........................................................48
    6.1      Key Movement, Resizing and Shape Design...............................................48
    6.2      Point In Polygon Test..................................................................................50
    6.3      Point of Intersection Calculation .................................................................51
    6.4      Efficient Key Shape Modifying Procedure..................................................51
    6.5      Key Shape Share Space Function ................................................................52
    6.6      Geometry......................................................................................................54
    6.7      Polygon Boolean..........................................................................................55
    6.8      PolygonShape ..............................................................................................56
    6.9      PolygonContour ...........................................................................................56
  6.10 PolygonVertex .............................................................................................57
  6.11 PolygonCrossVertexDescriptor ...................................................................57
  6.12 PolygonVertexCrossVertexDescriptorList ..................................................57
  6.13 Polygon Boolean Operation Algorithm .......................................................58
7    EVALUATION....................................................................................................59
  7.1      Usability Evaluation.....................................................................................59
  7.2      Participants...................................................................................................60
  7.3      Apparatus: test materials..............................................................................61
  7.4      Procedure .....................................................................................................62
     7.4.1      Pre-task Questionnaire .........................................................................63
     7.4.2      The Text Input Task.............................................................................63
     7.4.3      The Post Task Questionnaire ...............................................................64
  7.5      Data Preparation...........................................................................................65
  7.6      Analysis........................................................................................................65
  7.7      Results..........................................................................................................66
     7.7.1      Discussion of Results...........................................................................68
     7.7.2      Keyboard Preferences ..........................................................................69
8    CONCLUSIONS..................................................................................................70
REFERENCES ............................................................................................................71
LIST OF FIGURES
Figure 2.1 - The Half-Qwerty Keyboard by Matias (1993)......................................7
Figure 2.2 - The Cirrin Interface showing how to enter the word “Cirrin”, .......15
Figure 2.3 – The Quikwriting gesture based keyboard demonstrating how to
enter the word “cirrin”..............................................................................................16
Figure 2.4 - T-Cube gesture based input method....................................................17
Figure 2.5 - The ShapeWriter (formerly SHARK) gesture based keyboard from
IBM..............................................................................................................................18
Figure 2.6 - Varying ABC soft keyboard layouts....................................................20
Figure 2.7 - The QWERTY soft keyboard...............................................................20
Figure 2.8 - The Fitaly soft keyboard from Textware Solutions Inc.....................21
Figure 2.9 – The Chubon soft keyboard ..................................................................22
Figure 2.10 – The OPTI I and OPTI II Keyboard layouts.....................................23
Figure 2.11 - Hooke’s Keyboard...............................................................................24
Figure 2.13 - The keyboard layout produce by Lewis et al. (1999b,1999c) ..........25
Figure 2.14 - The two arrangements of the DotNote Keyboard ............................26
Figure 3.1 – High level flow diagram of overall system design..............................29
Figure 4.1 – The Soft Keyboard Class Structure ....................................................36
Figure 4.2 – The software-based input panel architecture ....................................38
Figure 4.3 – The Input Panel button and panel ......................................................38
Figure 4.4 - The key press action flow diagram ......................................................44
Figure 5.1 – The tree structure .................................................................................45
Figure 5.2 The class relationship diagram for the tree and efficient tree
structures and creators..............................................................................................47
Figure 6.1 – The square key shape that reduces the surrounding keys surface
area too much. ............................................................................................................49
Figure 6.2 – The hexagon key shape that doesn’t reduce the surrounding keys
surface area too much................................................................................................50
Figure 6.3 – Hexagons sharing space ideally ...........................................................52
Figure 6.4 - The Bottom Right Diagonal Half of BoundC, Bottom Half of
BoundC, and Right Half of BoundC methods.........................................................54
Figure 4.5 – PolygonShape Class Structure ............................................................56
Figure 4.6 – Boolean Operations on Polygons using Leonov and Nikitin’s
algorithm (1997) .........................................................................................................58
Table 7.1 - Participants by gender, age and experience .........................................61
Figure 7.1 – The evaluation application...................................................................62
Figure 7.1 – Average time (ms) between key presses for users over the 8
sentences......................................................................................................................66
Figure 7.2 – The Paired T-test comparing time taken between key presses for a
non-resizing and dynamically resizing keyboard. ..................................................67
1 INTRODUCTION
1.1 Background

With advances in wireless technologies such as WiFi (wireless networks) and

Bluetooth and the ever growing repository of rich and useful applications widely

available, portable digital assistant (PDAs) have become increasingly popular in

recent times. This was recently confirmed by Gartner Dataquest (2005) who released

statistics showing that shipments of PDAs increased 25% in the first quarter of 2005,

compared to the first quarter of 2004 claiming that this was due to wireless email

applications. With the major success of predictive text for mobile phones, new

application domains such as wearable computers and ubiquitous computing together

with the desire for text that is easily and efficiently entered, recognised, stored,

searched and retrieved, has led to a burst of new research on the topic of effective text

input methods in handheld devices.


1.2 Motivation

Despite the considerable work on hand-written text entry, many still view small

keyboards as the easiest "pick up and use" solution to text entry on mobile devices.

These are often soft keyboards so that they can be hidden when text entry isn't

needed. Fitts' law (1954) states, roughly, that small faraway objects are slowest to hit.

If a keyboard could predict the next letter that the user intended to hit and enlarged the

key area of that letter, the keyboard would make the key object closer to the user

decreasing the time needed to hit. This, however, is currently theoretical and is

unknown if it that works in practice. This project therefore aims to find out if this

theoretical concept can be operationalised and work in practice.




                                                                                        1
1.3 Aims

The main aims of this project are:

   •   To review current solutions and research in text entry methods.

   •   To design and develop a QWERTY based soft keyboard input method for a

       PDA/palm-top device.

   •   To design and develop a probabilistic model to predict the next most likely

       characters based on a sequence of previous characters entered by the user.

   •   To design and develop a soft keyboard that resizes the keyboard giving a

       larger area to letters that are likely to be entered next.

   •   To link the probabilistic model with the dynamically resizing soft keyboard.

   •   To carry out user evaluations that compares a non-resizing (static) qwerty soft

       keyboard and the dynamically resizing qwerty soft keyboard to find out if the

       dynamically resizing keyboard decreases the amount of time it takes between

       key presses and hence improves text entry speeds.


1.4 Structure of Report

In the following chapter a wide range of different types of text input methods that are

available with emphasis on input methods for handheld devices like personal digital

assistants (PDAs) and palm-tops will be discussed. Chapter 3 will then discuss the

architecture, the target platform and tools and language restrictions of the proposed

dynamically resizing keyboard input method. Chapter 4 then discusses the design and

implementation of the soft keyboard input method component leaving the key shape

and resizing functions for discussion in a later chapter. In chapter 5 the design and

implementation of the probabilistic model used for the key character prediction

component will be discussed. Chapter 6 will then discuss the design and



                                                                                        2
implementation of the key shape and resizing functions that was deferred from

chapter 4. Chapter 7 discusses the procedure and findings of usability evaluation

carried out on the dynamically resizing keyboard. Finally chapter 8 concludes the

report with a summary of the project with suggestions for possible future work that

could be carried out.




                                                                                      3
2 LITERATURE REVIEW
This chapter looks at a selection of varying types of text input methods for personal

digital assistants (PDAs) and some similar small portable devices.


2.1 Hard keyboards

This category of text input methods involve having a physical keyboard to enter

characters. They can contain any number of keys from 3 keys up to 105 keys. A range

of these “Hard” keyboards available will now be discussed.


2.1.1 Telephone Key pad

The desire for effective text entry using a telephone keypad has being greatly

influenced by the popularity of mobile phones and SMS text messaging. The majority

of mobile phone key pads contain the traditional phone key pad keys of 12 keys

consisting of number keys 0-9 and two additional keys the star key “*” and the hash

key “#”. A few other keys are usually present to support other functions on the phone

such as answer or reject call. Telephone key pads map the 26 letters of the alphabet

into groups of 3 or 4 letters to a number key with the space key (although this is

dependent on the phone) being assigned to the zero or hash key. The method used to

distinguish which letter is desired when one of the number keys is pressed varies.

Three of these methods will now be discussed.



Multi-tap

The most common method which is used on mobile phones is that of multi-tap

method. Users press each key one or more times to indicate which character to enter.

So, for example, say a user presses the number 1 key which groups the letters ABC.

The user presses once for the letter A, twice for the letter B, and three times for the


                                                                                          4
letter C. In multi-tap a segmentation mechanism to distinguish multiple presses

indicating multiple characters is achieved through the form of a timeout mechanism.



Two Key Method

A variation of this method is known as a two-key method. This consists of a user

pressing two keys successively to specify a character. The first is to specify the group

of characters (e.g. 1 for ABC) and then a second key to specify the character (e.g. 2

for the second character B).



Predictive Text

The alternative and increasingly more popular method is predictive text. An example

of a predictive text technology is T9 by Tegic Communications (www.tegic.com).

This technology uses linguistic knowledge to overcome the problem of ambiguity.

Using a linguistic database made up of key sequences that represent words, users can

enter a sequence of keys and the software can match that sequence to a word in the

database and distinguish the desire word. To overcome the fact that linguistic

disambiguation is not perfect and that some words have matching key sequences a

solution that offers the user a choice to scroll through a list of the possible words

(usually in order of most probable) is provided. A drawback to predictive text

technologies is that sometimes the amount of presses required to enter a word and

then scroll through the list of possible words can exceed those needed to enter the

word using a method such as multi-tap. Another issue that needs to be accounted for

is the absence of a desired word in the database. In this case it is usually the case that

the software allows the user to save the desired word into a customised user dictionary

using a multi-tap method to enter the word. This only requires the user to enter the



                                                                                             5
word once after which it will remember the sequence for future usage. T9 is the most

popular method of the predictive text with many mobile phone manufacturers having

licensed the T9 input technology but there exist other predictive text technologies

such as eZiText (www.zicorp.com) and iTap (ww.motorola.com).

A slightly different approach which tries to reduce in disambiguation is WordWise by

Eatoni Ergonomics (www.eatoni.com). This provides partial disambiguation by

having a mode shift to explicitly choose one character from each key leaving the other

characters to remain ambiguous.


2.1.2 Full size keyboards

Although this may seem a contradictory input method to have for a portable device,

there are full size keyboards that are collapsible such as the Palm portable keyboard

(www.palm.com). This was originally released as the Stowaway by Think Outside

Inc. (www.thinkoutside.com) which Palm later adopted. This method allows touch

typing speeds but requires the user to have sufficient surface space to lay the un-

compacted keyboard.


2.1.3 Miniature/Scaled Keyboards

These input methods are usually scaled down versions of full size keyboards and

mostly of QWERTY layout. Depending on how small the keyboard has been scaled

down the ability to use touch typing varies. Two handed touch typing on the Psion

Revo (www.psion.com) for example is possible, although it is less comfortable and

easy than a full sized keyboard. Touch typing on a miniature keyboard such as the HP

iPAQ micro keyboard (www.hp.com) is not as easy because the keyboard and keys

are very small. The advantage of miniature/scaled keyboards are that many people are

so familiar with full size keyboards (in particular the qwerty keyboard) that it is more



                                                                                        6
natural for someone to pick and use rather than having to learn or get used to an input

method such as T9 predictive text. Another scaled keyboard is that of the Half-Qwerty

keyboard (figure 2.1) by Matias et al. (1993). This method halves the size of a

QWERTY keyboard by mapping one side on to the other. The user can indicate which

side of the keyboard they wish to use by holding down the space key while entering a

key.




            Figure 2.1 - The Half-Qwerty Keyboard by Matias (1993).




DateStamp

The DateStamp entry method involves using very limited hardware: a display that

displays a least one character, two buttons or a wheel and an enter key. Text entry is

achieved by scrolling right or left through the alphabet using the two buttons or wheel

to display the desired character and then pressing the enter key to select the displayed

character. However, this method is only sufficient for small amounts of text as it is

quite slow (Bellman and MacKenzie, 1998).




                                                                                         7
Five-key Method

The five key entry improves on the DateStamp Method by using extra hardware to

provide an interface with four cursor keys (up, down, left, right) and a enter key.

The alphabet can then be displayed on a display with typically 3 to 5 rows and 10 to

20 columns although this depends on the display space available. The cursor keys

then can allow the users to move a cursor about the alphabet and select a letter at a

time. The characters are usually presented in an alphabetical order or the familiar

qwerty keyboard layout. These methods are typically used in arcade games machines

to allow users to enter their initials or name or on pagers. Bellman and MacKenzie

(1998) devised a way to help reduce the number of cursor movements needed to move

between characters. They devised a technique known as fluctuating optimal character

layout (FOCL). The basic premise is that the device uses the last character the user

entered to subsequently present the characters in a layout that places the most likely

characters closer to cursors current position. The results found of a exploratory study

comparing FOCL to the five key input method (using a qwerty layout) was that was

of no significant difference in speed or accuracy. It was found that although fewer

keystrokes were needed greater visual scan time was required to find the next

sentence. It was felt that the advantage of the method is apparently not realised until

the users invest time to become familiar with the technology.



Single Hand Key card

Proposed by Sugimoto and Takahashi (1996) the single hand key card (SHK) is a

small card with a keyboard and a joystick that is held in one hand pinned between the

palm and the thumb in such a way that four fingers manipulate the keyboard and



                                                                                          8
joystick on the face of the card. Having multiple characters on each key it uses

disambiguation technology and arranged in the layout to reduce the average motion of

the fingers.


2.1.4 Chording Keyboards


Chording Keyboards are input methods that require a certain combination of key

presses to indicate a certain character.



Twiddler

Twiddler by HandyKey Inc. (www.handykey.com) enters text by having the use press

multiple keys simultaneously to indicate certain characters. As characters are

represented by certain combinations of keys it means that less keys are needed and

can fit easier onto portable devices. A study by Lyons et al (2004) compared Twiddler

keypad for a mobile phone against the multi-tap method using users who mostly had

experience of using a mobile phone but not Twiddler. The average text entry speed

for words per minute for Twiddler was 26.2 words per minute compared to 19.8

words per minute for multi-tap. This had shown that chording is a fairly easy method

to learn. Further analysis showed that the participants words per minute using

Twiddler increased through out each of the twenty sessions where as multi-tap started

to even off. This was further suggestions that with more use with Twiddler that it

could become even quicker than multi-tap.


2.1.5 Virtual Keyboards

These are keyboards without a physical manifestation of the sensing areas. The

following briefly describes two examples of virtual keyboards.




                                                                                       9
VKB Projection

This virtual keyboard technology developed by VKB (http://vkb.co.il) is a tabletop

unit that projects a laser image of a keyboard on any flat surface. Infrared cameras

detect key strokes of all ten fingers (Referenced in Kolsch and Turk, 2002).



VType

VType by Evans et al. (1999) consists of a pair of gloves that are used to type in

virtual worlds. Using sensors assigned to different fingers, multiple characters are

assigned to each finger.




2.2 Stylus based Text Entry


Stylus base entry involves using a pointing device usually in the form of a small pen

shaped plastic stick known as a stylus to draw along an touch sensitive area or screen.

The user then taps the area or makes strokes or gestures with the stylus to indicate an

action or input character. The touch sensitive area is usually in the form of a touch

screen where the devices software is displayed although some devices have a

dedicated area for stylus input. The following discusses some different stylus based

text input methods.


2.2.1 Handwriting recognition

This type of input method uses the idea of ink trails in the form of digitised screen

coordinates to represent the stylus travel between the setting down and lifting up of

the stylus. A recognition process then interprets those trails into some form of input

(usually characters). Two problems that must be solved for handwriting recognition




                                                                                         10
input methods are segmentation and recognition. Segmentation is the process of

determining which segments of the user stroke are characters. The difficulty of

segmentation is dependent on the constraints of the input method. Some input

methods use block character recognition which require the user to enter individual

block characters in a certain area on the screen. This allows easier segmentation of

characters, unlike input methods that allow cursive handwriting (natural handwriting).

Trying to decipher a user’s eligible handwriting can be very difficult. Many peoples

handwriting becomes more eligible the faster they write. Usually, the less constraints

in place for the recognition process, the less accuracy it achieves. LaLomia (1994)

reports that users have a high expectation for such input methods (users only willing

to accept a recognition error rate of about 3%). However, further research (Frankish et

al., 1995) has found out this error rate is dependent on the text based task.


2.2.2 Non-cursive Handwriting Recognition

This type of hand writing recognition involves the user making strokes that disjointed

between characters. The following discusses some of the non-cursive handwriting

recognition techniques that are available.



UniStroke

One early non-cursive handwriting recognition system was that of Unistroke

developed at Xerox Palo Alto Research Centre by Goldberg and Richardson (1993).

This was designed during a time when handwriting recognition systems had a poor

reputation with users due to many problems in currently existing systems and so the

resulting system involved a simple set of single strokes that were easy to recognise

and for the users to write. Although the Unistroke’s alphabet does not contain

numbers, punctuation nor symbolic characters Goldberg and Richardson in their


                                                                                       11
report do suggest ways of supporting these (e.g. through the use of dedicated stroke

for a shift mode). Due to the single stroke nature of the alphabet Goldberg and

Richardson (1993, p.81) observed that UniStroke’s was a ‘heads up text entry’.

UniStroke’s did not catch on as an input method and the most likely reason for this is

that the strokes are not similar enough to the Roman alphabet and require the user to

learn the stroke alphabet.



Minimal Device-independent Text Input Method

A similar single stroke input method to that of UniStroke is that of Minimal Device-

independent Text Input Method (MDTIM). The system devised by Isokoski (1999)

was developed to allow a single stroke alphabet to be entered using a wide range of

pointing devices and also try and find the optimal mapping between the four

directional strokes and the characters of the alphabet. Evaluations carried out by

Isokoski (1999) showed that it could achieve a text entry speed of 7.5 words per

minute with subjects still showing improvements at the end of his trials and that the

alphabet was device independent. Similarly to UniStroke it had the disadvantage that

the alphabet did not resemble the Roman alphabet and it required practice for the user

to learn the strokes alphabet.



Graffiti

Palm Inc. (www.palm.com), however, did have success with a single stroke system

known as Graffiti, which was accredited as the main reason for the success of the

Palm Pilot (Blickenstorfer, 1995). Unlike UniStroke, Graffiti’s alphabet was similar

to Roman alphabet and did support strokes for punctuation, numbers and symbolic

characters and shift modes. MacKenzie and Zhang (1997) performed a study on the



                                                                                        12
immediate usability of Graffiti. Evaluations that measured the accuracy of entering

the alphabet after given one minute to study the graffiti alphabet, then five minutes of

practicing with graffiti and then a period of a one week lapse with no practice showed

high accuracies levels of 86%, 97% and 97%, respectively.

Jot

The most recent of the non-cursive hand writing recognition system is that of

Microsoft’s Jot which they licensed from Communication Intelligence Corporation.

The advantages Jot has over the other non-cursive input methods is that it recognises

multiple alphabets including Graffiti and some strokes that are similar to handwriting

and printing. The case of the characters is indicated by the location of where the user

enters the strokes. Jot also supports strokes for numbers, symbolic characters and

common editing functions and allows some customisation by indicating writing

preferences for some characters.


2.2.3 Cursive Handwriting Recognition


Transcriber



A cursive hand writing solution is that of Transcriber which can be found on PDAs

that run Microsoft’s Windows CE operating system. Employing advanced fuzzy logic

and neural net techniques it recognizes cursive handwriting entered on the screen.

One disadvantage of this method is that it is slightly slow with a 1 or 2 second delay

after a user enters a word. A search of the literature did not reveal any research

evaluating or describing the workings of Transcriber.




                                                                                      13
2.3 Gesture Based Text Input Methods



Gesture based text input methods are input methods that enter character by

performing some sort of informal fluid action. Unlike hand writing recognition that

has fixed characters or symbols entered in a certain way or soft keyboards that require

the stylus to be tapped in a certain location, gesture based input methods don’t have a

fixed set of strokes. Instead they have a set of informal stylus motions that are

interpreted as characters. Some gesture based text input methods will now be

discussed.

Cirrin

Mankoff and Abowd (1998) developed a gesture based input method called Cirrin.

The interface involves the letters of the alphabet arranged inside the perimeter of an

annulus (figure 2.2). The figure bounded by and containing the area between two

concentric circles. Characters are selected by moving into and out of the appropriate

sector of the annulus. Mankoff and Abowd (1998) chose a particular arrangement that

minimised the distance between likely consecutive characters. One distance

minimising feature in Cirrin is to allow the user to directly go from one sector to a

neighbouring sector such as the letters “in” in figure 2.2 show. Only alphabetic

characters are supported and a space is entered by lifting the stylus. Other punctuation

characters and shift modes are accomplished using other techniques such as extra keys

on the device.




                                                                                         14
   Figure 2.2 - The Cirrin Interface showing how to enter the word “Cirrin”,




Quikwriting



Quikwriting is a gesture based input method devised by Perlin (1998). The approach

taken is to have a 3 x 3 grid where characters are entered with strokes that begin in the

centre “home” position and move through one to three adjoining positions, returning

back to the home position. Figure 2.3 shows how the layout of the interface. The user

selects a specific character by moving into the grid position that contains the desired

character. The user then selects the:

   •   middle character in the group by exiting back to the home position

   •   the left character to the middle character by moving through to the

       neighbouring left grid position and exiting to the home position




                                                                                      15
   •   the right character to the middle character by moving through to the

       neighbouring right grid position and exiting to the home position

   •   the second left character to the middle character by moving through to the

       second neighbouring left grid position (via the first neighbouring left grid

       position) and exiting to the home position

   •   the second right character to the middle character by moving through to the

       second neighbouring right grid position (via the first neighbouring left grid

       position) and exiting to the home position




  Figure 2.3 – The Quikwriting gesture based keyboard demonstrating how to

                               enter the word “cirrin”.


T-Cube



T-Cube by Venolia and Neiberg (1994) is a gesture based text input method which

uses a interface similar to the two tier pie menu system. The user places the stylus


                                                                                       16
within one of 9 starting positions (arranged in a 3 x3 grid) indicating which pie menu

the user wishes to select a character from. The pie menus can be seen in figure 2.4.

The user then selects one of the eight characters in the submenu by flicking the stylus

in the appropriate direction. The submenu is not displayed unless the user hesitates.

Venolia and Neiberg (1994) reported results of a user study with T-Cube (1994)

showing that fairly good text entry speeds could be achieved (21 wpm) but

acknowledged that the interface is difficult to learn.




                  Figure 2.4 - T-Cube gesture based input method.




                                                                                        17
ShapeWriter



Shape Writer (previously known as "Shorthand Aided Rapid Keyboarding

(SHARK)") is a gesture based technique developed by IBM that combines pattern

recognition with a soft keyboard (IBM ShapeWriter, 2005). Rather than tapping

individual keys, a user simply draws a continuous line from letter to letter on a

graphical keyboard like that shown in figure 2.5. The resulting pattern is recognized

by ShapeWriter as a “sokgraph” (Shorthand On Keyboard as a GRAPH). The theory

behind ShapeWriter is that the users will input text by means of tracing initially over

the keyboard and then over time learn the pattern of the “sokgraph”. A study by Zhai

and Kristensson (2003) when ShapeWrtier was know as SHARK claimed that it has

the possibility to succeed due to the nature of the human mind. In particular they

argue that the human is very good at learning large character sets (Chinese people

know in the region of 200-5000 characters) and “long term memory is only limited by

acquisition speed”. The only drawback to ShapeWriter is that its users have to invest a

long time to learn the sokgraphs.




Figure 2.5 - The ShapeWriter (formerly SHARK) gesture based keyboard from

                                         IBM.



                                                                                      18
2.4 Soft Keyboards


A soft keyboard is a keyboard implemented on the screen where a user taps an area of

the screen where a desired key is located. The two main advantages of soft keyboards

are that of simplicity and efficient use of space due to the option to hide the keyboard

when it is not needed, allowing greater screen space for other applications. A

collection of varying soft keyboards will now be discussed.



ABC



The ABC keyboard is one of the most familiar keyboard layouts to users. However,

there are a few varying layouts of the ABC keyboard (figure 2.6).




                                                                                      19
                 Figure 2.6 - Varying ABC soft keyboard layouts.




MacKenzie and Soukoreff (2002) predict the following expert entry speeds 28.79

wpm, 30.13 wpm, 32.50 wpm, and 30.18 wpm, for the ABC I, ABC II ABC III and

ABC IV respectively.



QWERTY



The QWERTY soft keyboard (figure 2.7) is the other most familiar keyboard layouts

for users due to the familiarity with the large full size QWERTY keyboard. A study

by Mackenzie et al (1994) compared a QWERTY soft keyboard, an ABC soft

keyboard and hand printing, where text entry task was carried out. The results showed

that the QWERTY soft keyboard was faster and more accurate than hand printing.

MacKenzie and Soukoreff (2002) predict a 30.04 wpm expert entry speed for the

QWERTY soft keyboard.




                    Figure 2.7 - The QWERTY soft keyboard.




                                                                                     20
Fitaly



There has been much research and development in trying to design the most optimal

keyboard layout. The Fitaly keyboard by Textware Solutions Inc.

(http://www.fitaly.com/) is a soft keyboard that provides an optimal keyboard layout.

The layout (figure 2.8) contains two space bars and the letters are arranged in a way

so that common pairs of letters are often on neighbouring keys. Mackenzie et al

(1999) reported a typing rate of 8 words per minute (wpm) however, it should be

noted that this was with subjects that had no previous experience and did not get a

chance to have much practice with the keyboard. MacKenzie and Soukoreff (2002)

showed the Fitaly keyboard in a more positive light by reporting that the Fitaly

keyboard has an expert prediction of 41.96 wpm.




         Figure 2.8 - The Fitaly soft keyboard from Textware Solutions Inc.




Chubon



The Chubon Keyboard is a soft keyboard developed by Chubon and Hester (1998) for

single digit entry (which is very useful in rehabilitation situations such as person with




                                                                                        21
one finger or a head mounted pointed device). The highest frequently used letters are

positioned in the centre of the keyboard as seen in figure 2.9.




                      Figure 2.9 – The Chubon soft keyboard




A study by Anson et al. (2001) showed results supporting the assertion that the

Chubon keyboard allows faster text input than the QWERTY, when equal experience

is provided. MacKenzie and Soukoreff (2002) made an expert prediction for Chubon

of 37.02 wpm.



OPTI I & OPTI II



Work carried out by MacKenzie and Zhang (1999) produced a new keyboard layout

using Soukoreff and MacKenzie’s model (1995) which they reported a predicted

expert typing rate of 58 words per minute. The layout (figure 2.10) was constructed

by first placing the 10 most frequent letters in the centre of the keyboard. They then

assigned the 10 most frequent digraphs to the top 10 keys. The remaining letters were

then placed using trial and error. However an error discovered by Zhai et al. (2000)



                                                                                         22
reduced the prediction down to 42.16 wpm. A longitudinal study over 20 sessions

comparing a soft QWERTY keyboard and an OPTI I keyboard found that the average

typing rate for OPTI I increased from 17 words per minute to 44 words per minute

after eight hours of practice. This is in contrast to the QWERTY keyboards rates

increasing from 28 words per minute to 40 words per minute over the same interval.

The average rate for OPTI I exceeded those of QWERTY after about four hours of

practice. Follow up work by Zhang (1998, Cited in MacKenzie and Soukoreff, 2002)

modified the OPTI I keyboard layout to produce the OPTI II layout (figure 2.10)

which yields an expert prediction of 42.37 word per minute.




            Figure 2.10 – The OPTI I and OPTI II Keyboard layouts.


Hooke’s Keyboard and Metropolis I & II Soft Keyboards



Zhai, Hunter and Smith (Hunter et al., 2000; Zhai et al., 2000) applied two physics

inspired techniques to Mackenzie and Soukoreff’s model (1995) to generate two

optimal keyboard layouts. The first keyboard layout was generated using a

mechanical simulation of mesh springs, where springs where stretched between the


                                                                                      23
characters of the alphabet and tensioned proportionally to digram probabilities in

English. This keyboard (figure 2.11) was named Hooke’s keyboard after Hooke’s law.

It yields a predicted expert entry rate of 41.15 words per minute. The second

technique used a Metropolis random walk algorithm guided by a “Fitts energy”

objective function producing a keyboard layout known called “Metropolis I” (figure

2.12). This keyboard layout generates a 43.1 wpm performance. Further work by Zhai

et al. (2000) produced the “Metropolis II” keyboard (figure 2.12) with a predicted

word entry rate of 42.94. In Mackenzie and Soukoreff’s study (2002) of input

methods using their model (1995) Metropolis II scored the highest prediction of entry

speeds of all the soft keyboards tested.




                           Figure 2.11 - Hooke’s Keyboard




                     Figure 2.12 - The Metropolis I & II Keyboard


                                                                                     24
Lewis et al. soft keyboard



Lewis et al. (1999b, 1999c) made an attempt to optimise the layout for soft keyboards

by using applied network analysis to character pair probabilities and determine the

most strongly associated pairs. Minimising the distances for the strongly associated

character pairs they produced the arrangement as seen in figure 2.13.




    Figure 2.13 - The keyboard layout produce by Lewis et al. (1999b,1999c)




Lewis et al. reported that evaluations were carried out but they did not publish their

results. MacKenzie and Soukoreff (2002) suggested using the published report that

the evaluations showed that it performed at speeds of 13 words per minute with a

QWERTY soft keyboard performing at 25 words per minute. MacKenzie and

Soukoreff (2000) predicted an expert input speed of 34.65 words per minute.




                                                                                         25
DotNote



Utilware (www.utilware.com) designed DotNote to support single handed text entry

on the palm as an alternative to the built in graffiti handwriting recognition (which

requires two hands, one to hold the device and the other to hold the stylus). DotNote

provides the user the ability to enter text using their finger or thumb. DotNote fills

most of the display with relatively large keys allowing only half of the alphabet to

appear at once (figure 2.14) . It displays the most common letters on the default

keyboard and then a shift key then switches the keyboard to the less common keys,

similar to the Half-Qwerty (Matias et al, 1993) keyboard. The arrangement is in an

alphabetical arrangement. No know published studies of DotNote are known to exist.




          Figure 2.14 - The two arrangements of the DotNote Keyboard




                                                                                         26
2.4.1 Predictive Input Techniques



Reactive Keyboard

An early predictive input technology is the Reactive Keyboard (Darragh, 1998;

Darragh and Witten, 1991; Darragh, Witten and James, 1990). The Reactive

Keyboard monitors what a user enters and presents text predictions that the user can

choose from using a mouse. The predictions are generated by finding the longest

matching sub-strings in the previously entered text. It also adapts to the user’s input

and so is not limited to a static set of words or phrases. No results of text entry speeds

or accuracy are reported for the Reactive Keyboard.



POBox



POBox(Masui, 1998; Masui, 1999) is predictive input technology that allows the

users to enter part of a word and then search for similar words by spelling,

pronunciation or shape (in the case of pictograph-based languages). POBox uses a

static database coupled with another primary input technique, such as soft keyboard or

telephone pad. The search results appear on the screen as the user types. A tap or key

press selects the desired word.



Lewis et al. predictive soft keyboard



Lewis et al. (Lewis et al., 1999, Lewis et al., 1999a) devised a predictive soft

keyboard technology for extremely limited screen sizes. Their system presents the

user with keys for the size to eight most likely characters and an “other” key revealing



                                                                                          27
the rest of the alphabet. Text entry speeds of a QWERTY soft keyboard, Lewis et al.’s

predictive keyboard and handwriting at 14 words per minute, 6 words per minute and

22 words per minute, respectively. Lewis observed that the arrangement of keys of the

predictive keyboard significantly hindered performance.




Watch Top text entry



A study carried out by Dunlop (2004) showed encouraging results that text entry

could be achieved on a watch with only 5 buttons using predictive text methods.

Compared against a mobile phone key-pad, the results favoured the key-pad but in all

they showed that reasonable watch text entry was feasible.




2.5 Summary



From the above review of text input methods for PDAs and mobile devices it is clear

that there have been many efforts to develop software to facilitate the mobile device

user and provide easier text entry in increasingly smaller devices, However the

challenge remains for further developments to increase accuracy and speed in

predictive text methods.




                                                                                    28
3 ARCHITECTURE

This chapter describes the overall architecture and high level design of the

dynamically resizing soft keyboard.




3.1 System Flow



An activity flow diagram (figure 3.1) was constructed to get a clearer picture of the

overall interaction involved in the new input method.




          Figure 3.1 – High level flow diagram of overall system design.




                                                                                        29
When the user selects the dynamically resizing keyboard it loads a QWERTY

keyboard layout predefined in class and then it loads a pre-constructed probability

tree. The input method then draws the layout onto a panel where the user can then

press up and down on a desired position on the screen. These up and down events

contain a screen coordinate which the soft keyboard uses to get the key which is set at

those coordinates. The key is pressed, the keyboard view updated and the character

sent to the system like a normal keyboard press. Using the character associated with

the key the most likely characters are retrieved from the probability model. The keys

of the most likely characters are then scaled up. When the user makes an up event the

current key is un-pressed and the keyboard view updated. This repeats until a new

input method is selected.




3.2 Platform



With the initial project brief not having any specific requirement about the handheld

device platform to target the input method for, it became necessary to decide a target

platform. After looking into what PDAs or palm-tops were available it was found that

the two leading platforms consisted of Windows CE and Palm-OS. Microsoft's

embedded operating system accounted for 43 % of 2004 PDA shipments (up from

37.7 percent in 2003), while PalmOS plummeted to 36.3 % (Gartner Dataquest,

2005a). To decide which target platform to develop for some searching for material

on developing for those platforms, the availability of developments tools and in

particular the availability of material in developing a custom input methods. During

the search it became evident that the Windows CE platform was the first choice, as no

material for developing input methods on PalmOS could be found. After some more


                                                                                       30
searching it was decided to choose the Windows CE platform as there was an

abundance of information available on development on the Windows CE platform. In

particular, information on developing a custom input methods. No material on

developing a custom input method for the PalmOS could be found so it was decided

that the Windows CE platform would be the target platform. The next step was to find

out the workings of an Input Method and how to develop a custom input method.




3.3 Tools and Language Restrictions



After the decision that the input method would be developed on

the Windows CE platform, it was thought that the programming language C# could be

used with the .NET framework and Visual Studio.Net to develop the input method.

This was desirable as C# is very similar to Java and there would be not much of

learning curve in converting over to the C# language. Unfortunately, after finding

some material (Perryman, 2005) on the web that confirmed that input methods for the

Pocket PC could not be implemented using .Net.



An unexpected restriction had been introduced. If the project required a fully working

input method then native unmanaged c++ code needed to be used. This introduced a

steeper learning curve for development language. A decision had to be made whether

to implement an actual working input method in the c++ language and risk difficulties

with the language or use a familiar programming language such as Java and

implement a program simulation of an input method. As it was felt that it good to

have a proper input method working that could provide better evaluation results. It




                                                                                      31
was decided that a trial period would be held for trying to implement a simple input

method. If that was successful then the project would go ahead and implement the

input method in native unmanaged c++ code. However, if the attempt to get a simple

input method working before a four week period failed, the fallback plan was to use a

familiar and easier language such as java to develop a simulation of an input method.



Fortunately a simple input method was developed and the project continued

developing in native unmanaged c++ code.



A further restriction came about as it was development of native code on an

embedded device. This required the use of Microsoft’s Embedded Visual C++

development environment (Evc++) and Mircosofts Pocket PC Software Development

Kits. Using native unmanaged c++ code and Evc++ has the advantage that is allows

the use of the c, c++, visual c++, Microsoft Fundamental Classes and Active

Template Libraries.




                                                                                       32
4 SOFT KEYBOARD INPUT METHOD

This chapter discusses design and implementation of the soft keyboard component.

The keyboard resizing component of the soft keyboard input method will be discussed

in chapter 6.




4.1 Keyboard Components



The first step involved in designing a dynamically resizable soft keyboard was to first

identify the components that make up a standard keyboard. To achieve this, a short

study was carried out on existing common hard and soft keyboards. The study

identified the following components common to hard keyboards:



   •   Character Keys – These keys produce characters such as alphanumeric,

       punctuation or symbol characters.

   •   Shift Keys – These keys are pressed with another key to change keys state or

       character (e.g. holding the shift key while pressing the number ‘1’ key causes

       the key to become an exclamation mark key).

   •   Control Keys – Theses keys perform a control action on the system such as

       moving the cursor by using the cursor arrow keys.

   •   Function Keys – These keys are used to perform various functions depending

       on the computer and software which the keyboard is being used with. They are

       mainly used as shortcuts for commonly-needed actions.




                                                                                     33
The study also identified different key press types for these keys:



    •   Normal Keys – These keys when pressed from an un-pressed state and then

        released are returned to an un-pressed state.

    •   Lock/Toggle Keys – These keys are a toggle version of a normal key where if

        a key is pressed in an un-pressed state and then released, it stays in a pressed

        state. These keys require another press and release to return the key to an un-

        pressed state.



During the study of soft keyboards it was found that the components identified in hard

keyboards were present in soft keyboards with only a slight difference in one of the

key types. These differences were due to the nature of how key presses are carried out

on soft keyboards. As soft keyboards make use of a stylus to register a screen press it

eliminates the ability to have simultaneous screen presses and therefore simultaneous

key presses on the soft keyboard. To allow the user of the soft keyboard to be able to

do combination presses, the lock key has been divided into two types of lock keys.

The first is a lock key that acts the same as lock keys on hard keyboards where the

user must explicitly press a lock key to unlock it. The second is a temporarily locked

key that only stays pressed until a key with a shiftable character is pressed. For

example a user can press the shift key to change the state of the character keys to their

equivalent shifted characters. The character keys stay in their shifted state until one of

them is pressed after which the shift key becomes un-pressed and the character keys

return to their un-shifted state. This kind of key is similar to that of ‘sticky keys’

found in accessibility software where a person with a physical disability who may not




                                                                                         34
be able to carry out simultaneous key presses on the keyboard can press a key and

have it pressed until they press another key.



A further type of key found to be present on a soft keyboard is one that when pressed

changes the layout of the keyboard. This allows the keyboard to make show

alternative keys that cannot be present on the main view of the soft keyboard due to

the screen space constraints on PDAs/palm-tops. As previously discussed the area for

a soft input panel is only 240 pixels wide by 80 pixels tall so some of the less

common keys have to be left out of the main soft keyboard view. An example of this

can be seen on the standard QWERTY soft keyboard found on Windows CE based

devices which allow a user access to a num pad layer similar to one found on full size

keyboards. Therefore a solution to this is to have a key present on the main view that,

when pressed, changes the view to a keyboard layout which contains a num pad and

extra characters and symbols. When the key is un-pressed the keyboard returns to

main keyboard view.




4.2 Soft Keyboard Design



The soft keyboard is an ideal situation to implement a Model View Controller design

pattern. The following identifies the classes that were designed for the soft keyboard

component:




                                                                                       35
                 Figure 4.1 – The Soft Keyboard Class Structure




In this structure the DRKeyboardLayout class is the model component, the

DRKeyboard Panel is the view and DRKeyboardLayoutManager is the controller

component.




4.3 Soft Keyboard Input Method



To develop an input method on a Windows CE device it was necessary to understand

the architecture of the Windows CE input system and the Interfaces required for

developing a custom Input method. Documentation available on MSDN helped to

understand the architecture. The following now describes the steps necessary to

implement a custom input method.




                                                                                  36
4.3.1 Software-based Input Panel Architecture


Microsoft Windows CE devices allow custom input methods that simulate keyboard

input because Windows CE implements a software-based input panel architecture.

This software-based input panel architecture allows you to have an input method

which can exist in various forms because the architecture consists of two components:

a software-based input panel subsystem and an input method. These two components

provide an additional level of interpretation allowing Windows CE to convert non-

keyboard input into a keyboard event. The conversion is handled by the software-

based input panel subsystem in the OS, which also manages the software input

methods. An input method is an in-process Component Object Model (COM) server

in the form of dynamically linked library (DLL) that implements the IInputMethod

interface. The software-based input panel loads the input method dynamically by

calling the CoCreateInstance function in the input method. The input method manages

the space inside the software-based input panel window. This allows the input method

to be responsible for screen output and for responding to user input. This is typically

done through creating a child window of the software-based input panel window. The

input method DLL can then convert the user input into characters and send those

characters to the software-based input panel through the IIMCallback and

IIMCallback2 interfaces. After the software-based input panel receives data from the

input method, it is then passed as data to the Graphics, Windowing, and Events

Subsystem (GWES) module. The GWES then passes the message to the current

application through the standard delivery system for keyboard events. Figure 4.2

shows how an input method, a software-based input panel, GWES, and an application

communicate.




                                                                                      37
             Figure 4.2 – The software-based input panel architecture


4.3.2 Custom Input Method



The first step in creating a custom input method involved creating a COM object. The

difficulties of COM can be avoided by using Microsoft Embedded Visual C++’s ATL

COM wizard. The next step was to make the COM object implement the

IInputMethod interface.



To use an input method, a user first selects the input method from the software-based

input panel dialog box or the Input Panel button (figure 4.3).




                  Figure 4.3 – The Input Panel button and panel




                                                                                   38
When the user selects a different input method, the software-based input panel frees

the existing input method by calling the Deselect function of IInputMethod interface.

The software-based input panel then calls the Select function of IInputMethod

interface to load the input method. These two methods show that the input method is

responsible for construction and destruction of the input methods components.



STDMETHOD(Select)(HWND hwndSip)

{

        AFX_MANAGE_STATE(AfxGetStaticModuleState())

        // Create Input Method Controlling Class

        m_pKeyboardLayoutManager = new DRKeyboardLayoutManager();



        // Create Child Window Input Panel of 240 pixels wide by 80 pixels high

        CRect layoutRect = CRect(0,0,240,80);

        m_pDRKeyboardPanel = new DRKeyboardPanel();

        m_pDRKeyboardPanel->CreateEx(0, NULL, _T("DynamicallyResizableKeyboard"),

WS_CHILD, layoutRect.left,layoutRect.top, layoutRect.right, layoutRect.bottom, hwndSip, NULL);



        // Pass Input Method Controller to allow panel to pass on mouse events

        m_pDRKeyboardPanel->SetKeyboardLayoutManager(m_pKeyboardLayoutManager);



        // Show the window

        m_pDRKeyboardPanel->ShowWindow(SW_SHOWNOACTIVATE);



        // Return OK to indicate method executed successfully

        return S_OK;

}



                                                                                                 39
STDMETHOD(Deselect)()

{

       AFX_MANAGE_STATE(AfxGetStaticModuleState())

       // Destroy and delete window if pointer not null

       if (m_pDRKeyboardPanel)

       {

                m_pDRKeyboardPanel->DestroyWindow();

                delete m_pDRKeyboardPanel;

       }

       // Destroy and delete input method controller if pointer not null

       if (m_pKeyboardLayoutManager)

                delete m_pKeyboardLayoutManager;



       // Return OK to indicate method executed successfully

       return S_OK;

}



The final essential function for an input method is that of the register call back

function. This allows the operator to get a pointer to the call back component in the

soft input panel so they may send keyboard character events.



STDMETHOD(RegisterCallback)(IIMCallback * lpIMCallback)

{

       m_pCallback = lpIMCallback;

       if (m_pKeyboardLayoutManager)

                m_pKeyboardLayoutManager->RegisterCallback(m_pCallback);

       return S_OK;

}

Using these three methods, a simple input method can be constructed.


                                                                                        40
Even though a input method has been constructed, to use it, it is necessary to register

the input method DLL. If you wish the input method DLL to perform self-registration

then your setup application needs to implement the DllRegisterServer and

DllUnregisterServer functions. Alternatively you can register the input method DLL

by setting the registry values directly. However to allow a Pocket PC to detect that

this COM object is an input method there has to be a special key 'IsSIPInputMethod'

with the value '1'.

HKCR

{

        …….

        NoRemove CLSID

        {

                ForceRemove {1945A6EA-9E32-4DD7-A95C-EC9D1558DE5D} = s 'Dynamically

Resizable Keyboard'

                {

                       …….

                       IsSIPInputMethod = s '1'

                       …….

                }

        }

}


4.3.3 DRKeyboardLayout



This class models the keyboard layout. It is made up of a keyboard layers. The class

contains a default layer pointer and an array of pointers to optional alternate layers.

Each of these alternate layers is associated with a layer key. Whenever a layer key is

pressed the current layer is removed and the corresponding layer is activated and



                                                                                          41
displayed. This class also holds a list of character shift states which indicate which

combinations of shift keys are to tell the keyboard to use a characters shifted

character.


4.3.4 DRKeyboardPanel



This class which is the child window of the soft input panel is the window which

provides the graphics context to draw the keyboard graphics on to. This is also the

object that receives the user input in the form of mouse events. The 3 main window

events which are handled in this class are that of the following:



OnPaint(CDC* pDC)

OnLMouseDown(CPoint point,UINT flags)

OnLMouseUp(CPoint point,UINT flags)



These are the messages received whenever a user presses down and removes the

stylus off the touch screen. However, when these methods are call nothing happens as

logic is not associated with them. Code is required to use these method calls to carry

out useful functions. Therefore it was required for these methods to be passed onto a

controller class. This is achieved by having a reference/pointer the controller class.


4.3.5 DRKeyboardLayer



This class represents a layer on the soft keyboard. Layers allow multiple layouts on

such a small area by having keys associated with layers, when pressed, display that

layer of keys. Layers consist of arrays of keys.



                                                                                         42
4.3.6 Key



This class represents the key of a keyboard. It has associated with it a character, a

label, a shifted character, a shifted label, a virtual key code and a Shape. The shifted

character and label allows a key to have a shifted character associated with it. The

shape of the key is the shape that defines the boundary of the key. This can also be

used for the graphic of the key.


4.3.7 DRKeyboardLayoutManager



This class is responsible for interpreting the mouse events and relating them to the

keyboard layout using the pointer to the call back interface to send the interpreted

characters to the input panel subsystem. This class is also responsible for buffering the

previous character presses, retrieving the next character probabilities using the

probability tree and resizing the keys. In the event that the layout manager tries to

navigate the probability tree using a particular sequence of characters that doesn’t

exist in the tree, the sequence is shifted left losing the first character and the resulting

sequence is used to navigate the tree starting from the root node. This is repeated each

time a complete sequence path is not found in the tree.



The following figure 4.4 shows a detailed flow diagram of a key press action.




                                                                                          43
        #



'                   '                    '               '       %
    %       &               %"   #   &           %   &
                                                                         &


    (                       (                (               (

                            "    #




                                                                     $




                !       "




        Figure 4.4 - The key press action flow diagram




                                                                             44
5 CHARACTER PROBABILITY MODEL

This chapter discusses the probability model used to predict the high frequency

characters, based on a user’s previous key presses


5.1 Probability Model Data Structure



The data structure used for the probability model is in the form of a tree structure. The

tree structure is made up of a Character Probability Tree class which has a pointer to a

root node and a pointer to Character Probability Tree Map. The tree map is an array of

characters indicating the characters that are present in the tree. The nodes in the tree

have an array of numbers and an array of pointers, both the same length of the

character map. The array of numbers holds the count/probability of each character in

the tree for that current node. The array of pointers are used for pointing to the

subsequent child node for each character in the corresponding array position. Figure

5.1 shows an example structure of the tree.




                            Figure 5.1 – The tree structure



                                                                                           45
5.2 Tree Generation



With a structure in place for storing the probabilistic data the next step was to create a

tree with actual probability data. This is achieved through the

CharProbabilityTreeCreator class which first reads in a text file representing the tree

map. Then, along with the tree map it reads in a text file containing a list of words

with a corresponding word occurrence count. A method adds the sequences of the

letters to the tree, updating each nodes number array with the words occurrence count

of the corresponding letters. To allow a more memory-compact data structure a

maximum sequence length can be set. This adds the letters of each word to the tree,

stopping at the letter position which equals the sequence length. This is equivalent to

setting a maximum tree depth. However, to get the benefit of word occurrence counts

with words longer than the maximum sequence length, all the letters of the words

word added to the tree. So for example, to add the word “there” to a tree with a max

sequence length of 3 you would first add the first three letters ‘t’,’h’,’e’ then you

would shift one position along the word to enter the letters ‘h’,’e’,’r’, and then again

with ‘e’,’r’,’e’. This allows trees with a restricted depth to gain extra information the

common combinations of letters that words contain. As this application is to work on

a memory limited device further efficiency was gained by creating efficient versions

of the probability tree and node classes. These contained the bare minimum variables

and methods needed for using a tree, unlike the original classes which consisted of

more variables and methods that were used in the construction of the tree. To gain

faster loading times of the tree structure serialisation was used to store the tree

instance in a binary file. This would allow faster loading of the tree but did portability


                                                                                        46
issues required the file to be generated on the platform that the binary file is to be

used. For this an additional utility application was needed to take a tree map definition

file and word occurrence count file to generate the binary file for the corresponding

platform. Figure 5.2 below shows the class relationship diagram for these classes.




                               )*

                                           )    )                      *
                )
                )                           *



        *
                                *                        ) *

                                           )*

                                                          *


        )


                                           )



            *                          )            *




     Figure 5.2 The class relationship diagram for the tree and efficient tree

                                structures and creators.




The efficient tree has the methods gotoRootNode() and gotoChildNode(int index) for

navigation through the tree. The index for particular characters can be found out using

the tree map. The input method then can navigate to particular nodes and get the

probability for a particular character using the getProbability(int index) method.




                                                                                         47
6 KEYBOARD RESIZING COMPONENT
6.1 Key Movement, Resizing and Shape Design



One important design decision that was necessary to make early was to decide how to

arrange the keys after some of the keys were enlarged. Two optional solutions

presented regarding how the arrangement could be.



The first solution was to alter the positions of the non-resizing keys about to

accommodate the resized (enlarged) keys. After consideration, it was felt that this

would not be a good solution for two main reasons. The first reason is that there is

already a size constraint for screen space in place for the input method. Most soft

keyboards tend to use up most or all of the screen space commonly reserved for input

methods (typically 240 pixel wide by 80 pixels high) so there would not be much or

any space to move the other keys to without going off visible screen area. The second

reason is that in this solution the keys would be moving about the keyboard each time

the most probable keys were enlarged. This would be result in it being hard to learn

the new layout of the keyboard and increase scan time needed to search for the key,

resulting in slower text input entry speeds.



The second solution proved to be more desirable and the one used for this project.

This involves enlarging the most probable keys and letting them steal space from their

surrounding keys. This would allow all the keys to stay in the same position but still

allowing the most probable keys to have a greater surface area. It was felt that if the

probability model is accurate enough the majority of the time the enlarged keys would




                                                                                          48
be the desired key. For the occasional time when the desired key happened to be one

of the keys who lost space, it would be preferable and quicker to press to have to

search for that key in a new position which the other option would have created.



To visualise this how this stealing of space approach would affect the surrounding

keys, a drawing was made using a standard QWERTY keyboard layout with square

key shapes to get a clearer picture of the situation (figure 6.1). After studying this

picture it was felt that the enlarged square key tend to make the immediate

surrounding keys into less desirable keys shape as identified in figure 6.1. The

resulting surrounding shapes appear as if they would create very little space for a key

label to be displayed clearly. They also looked like the shapes became a harder to hit

target due to a less of a surface area resulting in increase times taken to hit the target.

By using a different shape for the keys this would allow the surrounding keys surface

areas not to be reduced so significantly. Following several trials experimenting with

key shape a hexagon key shape was chosen, similar to that of the Metropolis I and II

keyboards (Hunter et al. 2000; Zhai et al. 2000). As can be seen in figure 6.2

whenever the hexagon shape is enlarged is doesn’t reduce the surface area as much in

the surrounding key shapes as the square shape did but it still allows the hexagon key

shape to enlarge to a reasonably greater surface area.




  Figure 6.1 – The square key shape that reduces the surrounding keys surface

                                     area too much.



                                                                                         49
  Figure 6.2 – The hexagon key shape that doesn’t reduce the surrounding keys

                                surface area too much.


6.2 Point In Polygon Test


Whenever a user presses down on the screen and generates a mouse down event it is

necessary to find out if a point lies within the key shape so the keyboard manager can

determine which of the keys to deal with. The Point in Polygon method needs support

for concave polygons for which the reason will be justified shortly. A few methods

that support concave polygons are those of the winding number method and the ray

tracing method. The ray tracing was chosen because it is simpler to implement and

more efficient than the winding number technique (Albert, 2002). It involves using a

horizontal line that lies on the test point and counting how many times the line

intersects the polygon. If the number of intersections is even then the point is outside

the polygon. If the number of intersections is odd then the point lies inside the

polygon.




                                                                                       50
6.3 Point of Intersection Calculation



To allow the computation of the point of intersection between two polygon contour

segments an algorithm to compute this point was implemented. As this algorithm

must support improper conditions such as collinear lines or vertex intersections

(where the end vertex of one line is the intersection point) tests for improper

conditions needed to be in place. By definition if two lines are collinear and the lines

overlap their end points, those end points become the intersection point of the others

line. This can easily be tested by checking if each end point lies between the two other

end points of the other line. The calculation of the intersection point is achieved by

solving the parametric equations of the lines (O’Rourke, 1994). As the intersection

point calculated can be a real number and the grid of the graphics context is of a

whole numbers (integer) it is necessary to round the intersection point to the nearest

integer. As this may change the type of intersection from a true intersection to a

vertex intersection it was necessary to have a test to see if the new rounded value was

equal to any of the line end points and change the intersection type flag accordinly.




6.4 Efficient Key Shape Modifying Procedure



A cached bitmap of the keyboard layout is used to avoid time consuming graphics

tasks. It was observed that the only occasion when a key shape modification was

needed, was when two or more enlarged key shapes intersected. As can be seen in

figure 6.2, whenever a key is enlarged and starts to overlap keys surrounding it, it still

visually looks like the surrounding keys have been modified even though their data



                                                                                         51
structure hasn’t. This saves the processor from having to perform any shape

modifications on the surrounding key shapes.



However, the data structures still share common pixels in memory and this means that

only the first shape that the ContainsPoint() method will be returned as true for that

pixel. A solution to avoid this problem is simply achieved by testing all the enlarged

keys first and if one of them contains the point return it as the key, otherwise the test

can be performed on the non-enlarged keys. In the case of two enlarged keys

intersecting it is necessary to perform a modification function on the shape to adjust

the shapes to share even space as desired in figure 6.3. The algorithm to carry out the

share space function will now be discussed.




                     Figure 6.3 – Hexagons sharing space ideally


6.5 Key Shape Share Space Function



With the input method not requiring perfect equal share of space, the following steps

were devised to achieve an acceptable sharing of space of two enlarged keys that

intersect each other.



                                                                                         52
Given an enlarged key shape A and an enlarged key shape B



Let C = the shape returned from the Intersection of A and B



Let BoundC = the Bounding Rectangle of C



Let CPA = the centre point of shape A’s bounding rectangle



Let CPB = the centre point of shape B’s bounding rectangle



Let AngleAB = the angle of the line made by point CPA to CPB



Loop {



  if ((AngleAB >= 337.5) AND (AngleAB < 360)) OR

     ((AngleAB >= 0) AND (AngleAB < 22.5))

                    MattePolygon = Right half of BoundC

  else if (AngleAB >= 22.5) AND (AngleAB < 67.5)

                    MattePolygon = Bottom Right diagonal half of BoundC

  else if (AngleAB >= 67.5) AND (AngleAB < 112.5)

                    MattePolygon = Bottom half of BoundC

  else if (AngleAB >= 112.5) AND (AngleAB < 157.5)

                    MattePolygon = Bottom Left diagonal half of BoundC

  else if (AngleAB >= 157.5) AND (AngleAB < 202.5)

                    MattePolygon = Left half of BoundC

  else if (AngleAB >= 202.5) AND (AngleAB < 247.5)

                    MattePolygon = Top Left diagonal half of BoundC

  else if (AngleAB >= 247.5) AND (AngleAB < 292.5)

                    MattePolygon = Top half of BoundC

  else if (AngleAB >= 292.5) AND (AngleAB < 337.5)




                                                                          53
                         MattePolygon = Top Right diagonal half of BoundC



       Let ResultingPolygon = A BOOLEAN_DIFF_OP MattePolygon



       // Swap Get angle from Angle B

       Let AngleAB = the angle of the line made by point CPB to CPA

     } (once more) // To process B’s shared space



The following figure illustrates 3 samples of Half of BoundC method.




    Figure 6.4 - The Bottom Right Diagonal Half of BoundC, Bottom Half of

                     BoundC, and Right Half of BoundC methods.


6.6 Geometry



As there are a few Geometry functions that would be used throughout different

classes it was felt it would be better to have a static utility class that would perform

these geometry functions.




                                                                                           54
6.7 Polygon Boolean



When it came to considering what algorithm to implement a polygon Boolean

operation it was found that there a few polygon algorithm methods. However some of

these are constrained to only convex polygons. It was required though that in this case

a Boolean operation algorithm that was able to handle concave polygons was needed.

This need came from the observation that a situation may occur when a key shape

would need multiple Boolean operations performed on it resulting in the possibility

one of those Boolean operations may have created a concave polygon such as that

seen in figure 6.6.



While investigating polygon Boolean operations, research by Michael Leonov, which

compared different algorithms for polygon Boolean operations was reviewed. Leonov

(1998) identified the running speeds and supported features of a list of libraries that

used different polygon Boolean operation algorithms. With requirement of a polygon

Boolean operation that supported concave polygons, an intersection (AND) operation

and a difference (SUB) two choices presented. It was felt that it would be better

implementing an algorithm rather than using a library so it could allow the input

method to be more efficient. Looking at the running times and the availability of

material describing the algorithm it was decided to use Leonov and Nikitin (1997)

algorithm. This required the design of a polygon class that made use of entities used

in the algorithm.




                                                                                          55
The following figure describes the structure of the polygon class designed.



             +            ,




                              -                       -


                              )   *                   )       *
              )       -                                           *
                                                                  *    -.

                                                  -
 -
                  *                               )       *

                                                                       -




                          Figure 6.5 – PolygonShape Class Structure


6.8 PolygonShape



The PolygonShape class represents the polygon structure and implements the Shape

interface. The following describes each of the implementations of the shape interface

methods.


6.9 PolygonContour



This class represents a contour of a polygon. It can represent either an outer contour

or an inner contour. An outer contour represents a boundary of the polygon. The inner

contour represents the boundary of the contour inside the polygon (i.e. the hole

boundary of a polygon. An outer contour is distinguished from an inner contour by

the direction of the vertices that make up the contour. For outer contours the vertices

are arranged in a anti-clockwise direction and inner contours the direction is

clockwise. A polygon contour is made up of an array of PolygonVertex’s.


                                                                                         56
6.10 PolygonVertex



This class represents a polygon vertex containing an integer coordinate. It has two

pointers which allow the vertex have vertices a previous and next vertex. This allows

a polygon contour structure to be constructed.




6.11 PolygonCrossVertexDescriptor



This class is needed for the polygon Boolean operation. It represents a polygon edge

which has a cross vertex as one of its endpoints. It can be either a forward descriptor

or backwards descriptor and it contains an angle variable representing the angle at

which the edge enters or emerges the cross vertex. It also holds pointers to the next

and previous descriptors for this particular cross vertex.




6.12 PolygonVertexCrossVertexDescriptorList



This class represents the cross vertex descriptor list which holds all the cross vertex

descriptors for a particular geometric coordinate. Note this is different from a cross

vertex as the geometric coordinate can contain many cross vertices. This class is

responsible for inserting the cross vertex descriptors in the right angles. The polygon

shape class holds a list of polygon cross vertex lists during a polygon Boolean

operation.



                                                                                          57
6.13 Polygon Boolean Operation Algorithm



The polygon Boolean Operation is implemented using the algorithm devised by

Leonov and Nikitin (1997). It involves four main steps:



   1. Processing of Intersections

   2. Labelling of edges and contours

   3. Collecting of edges into contours

   4. Returning of the resulting contours



This algorithm supports the AND, OR, XOR & DIFF Boolean operations on closed

polygons with holes (inner contours). The following figure shows the different

Boolean operations performed on hexagon shapes.




   Figure 6.6 – Boolean Operations on Polygons using Leonov and Nikitin’s algorithm (1997)




                                                                                             58
7 EVALUATION
7.1 Usability Evaluation



Experimental evaluations were carried looking at the speed of text entry achieved by

users using two varying forms of a soft QWERTY keyboard on a PDA. One of the

keyboards is a non-resizing static soft keyboard and the other is a soft keyboard that

dynamically resizes the next most likely keys with a larger surface area.



An experiment was designed to test the hypothesis that there would be a difference in

speed of performance and accuracy on sentence text input between the two types of

keyboards, when used by the same users. Using one sample the design is a related

repeated measures within subjects design.



Ho = There will be no difference between the scores for text input using the non-

resizing keyboard or the dynamically resizing keyboard.



H1 = There will be a difference between scores for speed of input on the non-resizing

keyboard and dynamically resizing keyboard.

H2 = There will be a difference between scores for accuracy of input for the non-

resizing keyboard and dynamically resizing keyboard.




                                                                                         59
7.2 Participants



Opportunity sampling was used. While this is not random nor representative there is

no reason to suppose that the students would not perform typically of the population

in general. However it is recognised that further studies should be carried out with a

larger more representative sample following this pilot study.



A total of fourteen users took part in the study of which ten were male and four

female. All the participants except one were MSc students at the University of

Strathclyde. There was no specific criteria for selecting participants, however, all

were computer literate and were willing to take part in the study. Self assessment of

computer experience showed 6 to self rate as “Intermediate” and 8 as “expert” using

criteria as outlined in Pre-task Questionnaire ( Ref. Appendix II)

Eleven (79%) were in the 18-25 year age range, two in 26-35 years with one in 35-45

years. The range of experience using a PDA varied from none to over 3 years. The

sample size was relatively small and therefore non representative of the larger

population of PDA users. Table 7.1 below shows the characteristics of the

participants:



                      Age        Computing       Length of time using

           Gender     Category   experience      PDA

           Female     18-25      Intermediate    1 to 3 months

           Female     18-25      Intermediate    Less than 1 month

           Female     18-25      Intermediate    Less than 1 month

           Female     18-25      Expert          None

           Male       18-25      Expert          3 to 12 months




                                                                                       60
           Male      18-25       Intermediate    Less than 1 month

           Male      18-25       Expert          Less than 1 month

           Male      18-25       Intermediate    Less than 1 month

           Male      18-25       Expert          Less than 1 month

           Male      18-25       Expert          Over 3 years

           Male      18-25       Intermediate    None

           Male      26-35       Expert          Over 3 years

           Male      26-35       Expert          None

           Male      35-45       Expert          None




              Table 7.1 - Participants by gender, age and experience




The subjects were asked to complete a pre test questionnaire and post test

questionnaire to record their experiences. (Ref:Appendix II)




7.3 Apparatus: test materials



The tests were performed on an HP iPAQ h5500 running Pocket PC 2003. An

evaluation application (figure 7.1) was developed to provide a mechanism for

displaying sentences and an input text box for the user to enter the sentence. This also

allowed the monitoring of the time taken (in milliseconds) between key presses while

entering short sentences. Additionally this permitted monitoring of any errors

performed by the user in order to elicit information re unexpected text entry times. It

would also show if the interface of the keyboard affected accuracy.




                                                                                      61
                      Figure 7.1 – The evaluation application


7.4 Procedure



A room that contained a layout of tables with a perimeter of 3M X 6M was set up

which provided a route to walk around while completing the tasks. The participants

were required to enter the test sentences using the PDA apparatus described above

and while moving.



The test sentences were selected to include a range of plausible sentences generated

by a number of mobile users. These were randomly selected from a list of sentences

which were produced by other students independently to avoid researcher bias.




                                                                                       62
7.4.1 Pre-task Questionnaire



A pre-task questionnaire was issued to participants before they took part in the text

entry task. This questionnaire was constructed to elicit face sheet data which would

allow categorisation of participants by gender and age group plus information about

their computing level of expertise and experience with PDAs and input methods. This

would permit analysis of relationship between participant’s text entry speeds and

previous experience of computers or PDAs.



The pre-task questionnaire also included questions to ascertain the preferences of

participants for different text input methods. For those with no previous experience of

PDAs or different text input methods definitions and brief descriptions were provided.



Instructions were given as set out on Task Instruction Sheet (Ref:Appendix I): To

ensure consistency and constancy these were read to all participants by the evaluator

and all subjects were treated equally. There were no time limits imposed and

participants were informed that they could ask any questions at any stage.


7.4.2 The Text Input Task



After completion of the questionnaire participants were given the instructions for the

PDA text entry task. Participants were instructed to enter as quickly but accurately as

possible 8 short sentences into a PDA while walking around a table.

The PDA was setup up with an application that displays a sentence above a text input

box where the sentence is to be entered. The application displayed a soft keyboard




                                                                                        63
below the text input box for entering the letters of the sentence. This application was

set to automatically alternate between a non-resizable keyboard and a dynamically

resizable keyboard for each sentence.

The text input box automatically focused each time a task sentence was loaded. The

backspace key and arrow keys were disabled and participants were told that if they

accidentally entered the wrong key, they should ignore it, and enter the key they were

trying to enter.

Capitalisation and punctuation was to be ignored.

Participants were to move on to each sentence by pressing the ‘Next’ button in the top

right hand corner to proceed to the next sentence till all eight were completed.



In order to test the efficiency of the method as a mobile device, participants were

encouraged to keep walking around the table while carrying out the task.

During the completion of the tasks the number of laps the user walked around the

table were recorded. Also recorded was the number of stops the participant made

during the task.




7.4.3 The Post Task Questionnaire



Following the text input task participants completed a post test questionnaire,

designed to gauge the participants’ views on the tasks and text input methods,

eliciting their opinions on the usage of the two keyboards they used (the non-resizing

and dynamically resizing keyboard).




                                                                                      64
The pre-task questionnaire, task instructions and post-task questionnaire can be found

in Appendices I and II.




7.5 Data Preparation



After all the evaluations were completed all the text entry log files were examined and

the average times in milliseconds between key presses for each sentence were

recorded into a spreadsheet. The sentences that were entered by the user were

compared against the actual target sentence that they were trying to enter and

mistyped character errors were counted for each sentence. Errors that affected the

prediction of the next most likely letters (such as missed spaces, multiple presses and

mistyped characters) were also counted and recorded for each sentence




7.6 Analysis



Data from the questionnaires and response times and accuracy of sentence inputting

were calculated and entered into a spreadsheet for analysis. The data for the first two

task sentences were ignored to allow the users have to adjust to the input methods.

Using SPSS statistical analysis software univariate and bivariate analyses were

conducted. A paired T-test for dependent was performed comparing the average time

in milliseconds between key presses for both the non-resizing keyboard and

dynamically resizing keyboard.




                                                                                      65
7.7 Results



Quantititive measures:

The following graph plots the average time between key presses for each of the eight

sentences entered in the evaluation task. As expected, users improved in entry speeds

in both keyboards the more they used the keyboards (i.e. entered more sentences).

This supports our earlier decision to leave out the data of the first two sentences to

allow the user to get used to the input method.




                                                                  The Entry speeds for users over the 8 sentences entered

                                             1200




                                             1000
  Average milliseconds between key presses




                                             800
                                                                                                                            Non-Reszing Keyboard


                                             600

                                                                                                                            Dynamically Resizing
                                                                                                                            Keyboard

                                             400




                                             200




                                               0
                                                       1                2                     3                  4
                                                                            Sentence Number




                                              Figure 7.1 – Average time (ms) between key presses for users over the 8

                                                                                 sentences




                                                                                                                                        66
 Figure 7.2 – The Paired T-test comparing time taken between key presses for a

                 non-resizing and dynamically resizing keyboard.




Comparing the average time taken between key presses between the two keyboards

using the level of significance of p<0.05% show that there was a significant difference

p0.019; t=2.671, df =13. Therefore we can reject the null hypothesis that there is no

significant difference between the two keyboards. Looking at the means of each the

results indicate that the non-resizing keyboard is slightly faster than the dynamically

resizing keyboard. The sample size, however, is small and the standard deviation is

large therefore results must be interpreted with caution.




                                                                                        67
However, the results of the Paired T-test did not show a significant difference

between the keyboards for accuracy therefore the null hypothesis cannot be rejected.

There was no significant difference in accuracy.




7.7.1 Discussion of Results



This section also includes comments on the analysis of qualitative results from

participant feedback through the post test questionnaires.



In considering why the non-resizing keyboard may have performed faster one reason

could be that the dynamically resizing keyboard would predict the wrong keys when

the user performed a probability tree altering mistake such as missing a space,

mistyping a letter or accidentally pressing the same key twice consecutively.



It was therefore important to examine the evaluation application’s log files where this

was noted to be a common occurrence. It was observed that the keyboard was quite

sensitive to successive presses. This would need to be considered in future redesign.

An interesting case summary that existed was that of comparing computer expertise.

Participants who rated themselves as Experts showed slower text input times than

those who rated themselves as intermediate but a better rate of accuracy. (Ref:

Appendix III)



Comparison of age groups showed that the older the age group the slower the text

entry speeds but the better the accuracy. However, there was only one subject over 35


                                                                                     68
and this could not be considered representative of that age group in text entry for

PDAs. Grouping by Usage of PDA it showed that Non PDA users had very similar

entry speeds on both keyboards with the non-resizing keyboard only just being fast.

(Ref: Appendix III)



Previous or current users of PDA users were actually less accurate but slightly

quicker. The post-task questionnaire found out that the majority of the participants felt

that the dynamically resizable keyboard predicted a desired letter often with 5

participants feeling that it only predicted correctly sometimes. (Ref: Appendix III)




7.7.2 Keyboard Preferences



The majority of the participants agreed or strongly agreed with the statement that the

enlarged keys made it easier to target when that key was one of the desired keys; with

only 2 disagreeing and 1 neutral. All but 3 three of the participants agreed that the

enlarged keys made it difficult to target the non-enlarged keys. One participant

strongly agreed that hexagon key shapes made the QWERTY keyboard layout harder

to find keys with 2 agreeing.



Twelve of the participants believed the enlarged keys and the regular keys were about

the right size with only 1 participant claiming that the non-enlarged keys were “far too

small”. When asked, half the participants believed that there should be a greater

number of keys which enlarge, suggesting about 5 or 6. Only one participant believed

that it should be less than 4 with a total of 3. One participant said that it should be

dependent on the probabilities of the keys. When asked which keyboard they


                                                                                          69
preferred using there was an equal division with 50% choosing one and 50% the

other. Interestingly not all preferred the one on which they performed better.


8 CONCLUSIONS



It has been seen that more longitudinal evaluations with a greater sample of

participants are needed to see if dynamically resizing the next most likely keys to a

larger surface area will improve text entry speeds on soft keyboards. The general

findings concluded are that some users find the resizing of keys distracting and

therefore slower to use than a static keyboard. However, the other participants tend to

find it fun to use and were not bothered by the constant resizing of keys. More

effective evaluations could be carried out reducing situations that involve probability

tree altering errors. These errors could be reduced by introducing a larger character

buffer to record the numerous previous characters entered by the user and allowing

the probability model to adapt to certain situations such as using the delete key to

correct input errors. Implementing a distance based double click rule in the keyboard

could prevent the sensitive multiple key press problems identified in the user

evaluations but allowing allow quick successive clicks in close adjacent keys. Further

work that could be done is to look into the layout and size of the hexagons to see if

there is a more optimal layout or shape space sharing method that maximises the

space on the input panel.




                                                                                        70
REFERENCES

Albert, N. (2002) Point in Polygon Determination. Available online at

http://ouray.cudenver.edu/~na0alber/computational_geometry/Project.htm . Last

Accessed: 10th September 2005.



Anson, D., George, S. Galup, R., Shea, B., and Vetter, R., (2003, June) A

Comparision of Chubon and QWERTY Keyboards. RESNA 2003, Atlanta, GA.



Anson D, George S, Galup R, Shea B, Vetter R. (2001). Efficiency of the Chubon

versus the QWERTY keyboard. Assist Technol. 2001;13(1):40-5.



Bellman, T., & MacKenzie, I. S. (1998). A probabilistic character layout strategy for

mobile text entry. Proceedings of Graphics Interface '98, 168-176. Toronto: Canadian

Information Processing Society.


Blickenstorfer, C. H. (1995, January). Graffiti: Wow!!!! Pen Computing Magazine,

30-31.


Chubon, R.A. and Hester, M.R. (1988). An enhanced standard computer keyboard

system for single-finger and typing-stick typing . Rehabilitation Research and

Development, 25, 17.



Dunlop, M. D. (2004). "Watch-Top Text-Entry: Can Phone-Style Predictive Text-

Entry Work With Only 5 Buttons?.". Proceedings of MobileHCI 04. September 2004.




                                                                                    71
Evans, F. and Skiena, S. and Varshney, A. (1999). VType - Entering Text in a Virtual

World, submitted to International Journal of Human-Computer Studies



Fitts,P.M. (1954). The information capacity of the human motor system in controlling

the amplitude of movement. Journal of Experimental Psychology, 47, 381-391.



Frankish, C., Hull, R., & Morgan, P. (1995). Recognition accuracy and user

acceptance of pen interfaces. Proceedings of the ACM Conference on Human Factors

in Computing Systems - CHI '95, 503-510. New York: ACM.



Gartner Dataquest, (2005). News Article. “Stupid Gartner Tricks - Palm OS

Marketshare Drops”. Available Online at:

http://www.palmzone.net/modules.php?name=News&file=article&sid=488 Last

Accessed: 10th September 2005.



Gartner Dataquest, (2005a). News Report: “Windows CE top PDA OS in 2004”.

Available Online at: http://www.windowsfordevices.com/news/NS5200181621.html

Last Accessed: 10th September 2005.



HandyKey Inc., Available Online at http://www.handykey.com . Last Accessed: 10th

September 2005.



IBM ShapeWriter. Available Online at

http://www.almaden.ibm.com/cs/people/zhai/shapewriter.htm. Last Accessed: 10th

September 2005.



                                                                                  72
Isokoski, P. (1999). A minimal device-independent text input method. Unpublished

MSc Thesis, University of Tampere, Tampere Finland.


Kristensson, P. and Zhai, S. (2003). Shorthand writing on stylus keyboard. In

Proceedings of the SIGCHI conference on Human factors in computing systems (CHI

‘03) (Florida, United States, April 5-10, 2003). ACM Press, New York, NY, 2003,

97-104.


LaLomia, M. J. (1994). User acceptance of handwritten recognition accuracy.

Companion Proceedings of the ACM Conference on Human Factors in Computing

Systems - CHI '94, 107-108. New York: ACM.



Leonov, M. (1998). Comparison of the different algorithms for Polygon Boolean

operations. Available online at: http://www.complex-a5.ru/polyboolean/comp.html.

Last accessed: 11th September 2005.



1998

Leonov, M. V. and Nikitin, A. G..(1997) An Efficient Algorithm for a Closed Set of

Boolean Operations on Polygonal Regions in the Plane (draft English translation). A.

P. Ershov Institute of Informatics Systems, Preprint 46, 1997.


Lewis, J. R. (1999). Input rates and user preference for three small-screen input

methods: Standard keyboard, predictive keyboard, and handwriting. Proceedings of

the Human Factors and Ergonomics Society 43rd Annual Meeting - HFES '99, 425-

428. Santa Monica, CA: Human Factors and Ergonomics Society.




                                                                                    73
Lewis, J. R., Allard, D. J., & Hudson, H. D. (1999a). Predictive keyboard design

study: Effects of word populations, number of displayed letters, and number of

transitional probability tables. Proceedings of the Human Factors and Ergonomics

Society 43rd Annual Meeting - HFES '99, 429-432. Santa Monica, CA: Human

Factors and Ergonomics Society.


Lewis, J. R., LaLomia, M. J., & Kennedy, P. J. (1999b). Development of a digram-

based typing key layout for single-finger/stylus input. Proceedings of the Human

Factors and Ergonomics Society 43rd Annual Meeting - HFES '99, 415-419. Santa

Monica, CA: Human Factors and Ergonomics Society.


Lewis, J. R., LaLomia, M. J., & Kennedy, P. J. (1999c). Evaluation of typing key

layouts for stylus input. Proceedings of the Human Factors and Ergonomics Society

43rd Annual Meeting - HFES '99, 420-424. Santa Monica, CA: Human Factors and

Ergonomics Society.


Lyons, K. Starner, T, Plaisted, D., Fusia, J., Lyons, A. Drew, A. and Looney, E.

(2004). Twiddler typing: One handed chording text entry for mobile phones. In

Proceedings CHI. ACM Press, 2004.



MacKenzie, I. S., Nonnecke, R. B., McQueen, J. C., Riddersma, S., & Meltz, M.

(1994). A comparison of three methods of character entry on pen-based computers.

Proceedings of the Human Factors Society 38th Annual Meeting, 330-334. Santa

Monica, CA: Human Factors and Ergonomics Society.



MacKenzie, I. S., & Soukoreff, R. W. (2002). Text entry for mobile computing:

Models and methods, theory and practice. Human-Computer Interaction, 17, 147-198.


                                                                                   74
MacKenzie, I. S., Zhang, S. X., & Soukoreff, R. W. (1999). Text entry using soft

keyboards. Behaviour & Information Technology, 18, 235-244.



MacKenzie, I. S., & Zhang, S. X. (1997). The immediate usability of Graffiti.

Proceedings of Graphics Interface '97, 120-137. Toronto: Canadian Information

Processing Society.


Mankoff, J., & Abowd, G. A. (1998). Cirrin: A word-level Unistroke keyboard for

pen input, Proceedings of the ACM Symposium on User Interface Software and

Technology - UIST '98 (pp. 213-214): New York: ACM.


Matias, E., MacKenzie, I. S., & Buxton, W. (1993). Half-Qwerty: A one-handed

keyboard facilitating skill transfer from QWERTY. Proceedings of the ACM

Conference on Human Factors in Computing Systems - INTERCHI '93, 88-94. New

York, ACM.


O’Rourke, J. (1994). Book: Computational Geometry in C. Cambridge University

Press 1994.


Perlin, K. (1998). Quikwriting: Continuous stylus-based text entry. Proceedings of the

ACM Symposium on User Interface Software and Technology - UIST '98, 215-216.

New York: ACM.


Perryman, M. (2005). Weblog. “Custom Soft Input Panel (SIP) for Pocket PC”

Available Online at http://blogs.msdn.com/marcpe/archive/2005/02/10/370341.aspx

Last Accessed: 10th September 2005.




                                                                                   75
Soukoreff, R. W., & MacKenzie, I. S. (1995). Theoretical upper and lower bounds on

typing speeds using a stylus and soft keyboard. Behaviour & Information Technology,

14, 370-379.



Sugimoto, M. and Takahashi, K. (1996) SHK: Single. Hand Key Card for Mobile

Devices. Conference Companion, CHI’96, pp.7-8.



Tegic Communicaions. T9. Available Online at http://www.tegic.com/ Last Accessed:

10th September 2005.


Venolia, D., & Neiberg, F. (1994). T-Cube: A fast, self-disclosing pen-based alphabet.

Proceedings of ACM Conference on Human Factors in Computing Systems - CHI '94,

265-270. New York: ACM.


VKB Ltd., Available Online at http://vkb.co.il . Last Accessed: 10th September 2005.



Zhai, S., Hunter, M., & Smith, B. A. (2000). The Metropolis keyboard - An

exploration of quantitative techniques for virtual keyboard design. Proceedings of the

ACM Symposium on User Interface Software and Technology - UIST 2000, 119-128.

New York: ACM.




                                                                                    76
APPENDIX I




             77
EVALUATION INSTRUCTIONS

This project evaluation is trying to find out if it can improve text entry using
soft keyboards on PDA/palm-top devices. This evaluation involves 3 steps:

   1. A pre-task questionnaire
   2. A task entering text into PDA
   3. A post task questionnaire

The whole procedure should take approximately 15 mins.

Step 1: Please fill out the following pre task questionnaire. There is no time
limit and feel free to ask any questions about anything you do not understand
or need confirming.

Step 2: This step involves carrying out the following task on a PDA.

This task requires you to enter as quickly but accurately as you can 8 short
sentences into a PDA while walking around a table. The PDA is setup up with
an application that displays a sentence above a text input box where the
sentence is to be entered. The application will display a soft keyboard below
this box for you to enter the letters of the sentence. This application will
automatically alternate between a non-resizable keyboard and a dynamically
resizable keyboard for each sentence. The text input box will automatically
have focus (be selected) each time a sentence is loaded. Please try and enter
the sentence as quickly but accurately as you can. The backspace key and
arrow keys have been disabled so if you accidentally enter the wrong key,
ignore it, and enter the key you were trying to enter. Do not concern yourself
about capitals or punctuation. Once you have finished entering a sentence
press the ‘Next’ button in the top right hand corner to proceed to the next
sentence. After the last sentence (Number 8) you can press the finish key to
finish the task. This will ask you to confirm if you wish to finish the evaluation.
If you accidentally pressed it you can select no to finish entering the last
sentence, otherwise press yes to finish the evaluation task. There is no time
limit but try and enter the sentence as quickly but accurately as you can.
Please try and remember to keep walking around the table while carrying out
the task. If you stop for a prolonged period, you will be prompted to keep
walking.

Step 3: Please fill out the following post task questionnaire. . There is no time
limit and feel free to ask any questions about anything you do not understand
or need confirming.




                                                                                   78
PRE TASK QUESTIONNAIRE

This questionnaire aims to investigate the different methods used to enter
textual data in to personal digital assistants (PDAs) or palm-tops and the
reasons for choosing that particular input method.

Note: All information collected will be anonymous and will not be passed on to
any third parties.

Demographical Information

Gender:
                                 Male                            Female

Age Category:
                             Under 18                              18-25

                                26-35                              36-45

                                45-65                        65 and over

Questions

The following questions relate to using text input methods on PDAs or palm-
tops. The following gives a brief description of common text input methods
available for most PDAs and palm-tops so to help you answer the questions.

   •   Soft Keyboards – software that displays a keyboard in an area on the
       screen and allows the user to tap a desired key. The layout may be
       changed to suit the user (e.g. Qwerty, ABC, Dvorak).
   •   Non-cursive Handwriting Recognition (e.g. Unistroke, Graffiti) – A
       user uses a stylus to draw strokes on an area of the screen. The
       strokes correspond to a predefined alphabet which the user must learn
       to enter characters.
   •   Cursive Handwriting Recognition (e.g. Transcriber) – A user uses a
       stylus to write characters cursively on an area of the screen and the
       recognition software deciphers the word written.
   •   Miniature Keyboards – These are built–in or attachable pieces of
       hardware that are a scaled down full size keyboard.
   •   Large Keyboards – These are attachable pieces of hardware which
       are a full size keyboard. The keyboard itself may be portable by being
       able to compact itself in some manner.
   •   Virtual Keyboard – These are built-in or attachable pieces of
       hardware which project a virtual keyboard onto a surface which can
       detect a user pressing a specific area of the surface (e.g. an Infra red
       projected keyboard)




                                                                             79
      1. How do you rate your expertise in computers? (Please tick the
         appropriate box)

           Novice;                Intermediate:                          Expert:


      2. Have you previously used or do you currently use a personal digital
         assistant (PDA) or palm-top device? (Please tick the appropriate box)

                         Yes:                         No:


      3. If a situation arose that required you to temporarily use a PDA or palm-
         top device while on the move what would be your order of preference
         of the following text input methods? (Please indicate your order of
         preference with numbers where 1 is your most preferred and 7 is your
         least preferred)

                                                                  Large Keyboard
                       Soft Keyboard
                                                                  Virtual Keyboard
Non-Cursive Handwriting Recognition
                                                            Other: (please specify)
    Cursive Handwriting Recognition

                  Miniature Keyboard



   If you answered ‘No’ to question 2 please skip to question 12.


      4. How often did you use or do you use a personal digital assistant (PDA)
         or palm-top device? (Please circle the appropriate answer)


       Never          Rarely        Sometimes          Often           Very often



      5. How long did you use or have you used a PDA or palm-top device ?
         (Please tick the appropriate box)

                      Less than 1 month                         1 to 3 months
                          3 to 12 months                         1 to 3 years
                            Over 3 years




                                                                                   80
        6. How often did you use or do you use a PDA or palm-top device for the
           following tasks? (Please tick the appropriate box for each task)

                          Never      Rarely      Sometimes         Often       Very often


     Note Taking

        Calendar

   Address Book

        To-do list
Writing short text
      documents
  Writing lengthy
 text documents
   Writing Emails

Internet Browsing



        7. How often did you use or do you use the following types of text input
           methods on a PDA or palm-top device? (Please tick the appropriate
           box for each input method type)

                             Never      Rarely     Sometimes        Often      Very often

        Soft Keyboard

         Non-Cursive
          Handwriting
          Recognition
  Cursive Handwriting
          Recognition
   Miniature Keyboard

     Large Keyboard)


      Virtual Keyboard

Other: (please specify)




                                                                                   81
      8. When you first used your previous or current PDA or palm-top device
         what was the main method for text input? (Please tick the appropriate
         box)

                                                                Large Keyboard
                       Soft Keyboard
                                                               Virtual Keyboard
Non-Cursive Handwriting Recognition
                                                         Other: (please specify)
    Cursive Handwriting Recognition

                  Miniature Keyboard



      9. Did you or do you still use the same text input method as when you first
         used the PDA or palm-top device? (Please tick the appropriate box)

                            Yes                              No


   If you answered ‘Yes’ to question 9 then please skip to question 11.


      10. Which of the following text input methods did you change to? (Please
          tick the appropriate box)

                                                                Large Keyboard
                       Soft Keyboard
                                                               Virtual Keyboard
Non-Cursive Handwriting Recognition
                                                         Other: (please specify)
    Cursive Handwriting Recognition

                  Miniature Keyboard



      11. What were the reasons for staying with the same text input method or
          changing the text input method?




                                                                                 82
   12. If you have any other comments that you would like to make then
       please write them here.




This is the end of the pre task questionnaire. Thank you for taking the time to
fill it out.




                                                                              83
POST TASK QUESTIONNAIRE

To evaluate the system, we now ask you to answer some questions about it
and the task. Please remember that this questionnaire aims to evaluate the
system you have used and not you.


   1. Using the dynamically resizable keyboard was: (Please circle the
      appropriate scale)

    Hard          1          2       3        4         5          Easy

 Distracting      1          2       3        4         5       Focusing

    Slow          1          2       3        4         5          Fast

   Boring         1          2       3        4         5          Fun


   2. Using the Non-resizable keyboard was: (Please circle the appropriate
      scale)

    Hard          1          2       3        4         5          Easy

 Distracting      1          2       3        4         5       Focusing

    Slow          1          2       3        4         5          Fast

   Boring         1          2       3        4         5          Fun



   3. How often do you feel the dynamically resizable keyboard enlarged the
      keys which you needed to enter? (Please circle appropriate answer)

   Never           Rarely        Sometimes         Often        All the time



   4. Agree or Disagree? The enlarged keys made it easier to target when
      one of the enlarged keys was a desired key:

  Strongly                                                       Strongly
                  Disagree        Neutral          Agree
  Disagree                                                        Agree




                                                                             84
5. Agree or Disagree? The enlarged keys made it difficult to target the
   non-enlarged keys:

Strongly                                                        Strongly
               Disagree         Neutral          Agree
Disagree                                                         Agree




6. Agree or Disagree? The hexagon key shapes make the ‘Qwerty’
   keyboard layout harder to find keys.

Strongly                                                        Strongly
               Disagree         Neutral          Agree
Disagree                                                         Agree




7. The size of the Non-enlarged keys were:

Far Too                       About the
              Too Small                         Too Big       Far Too Big
 Small                        Right Size




8. The size of the enlarged keys were:

Far Too                       About the
              Too Small                         Too Big       Far Too Big
 Small                        Right Size




9. Should the dynamically resizable keyboard enlarge more or less than
   the top 4 most probable keys? (If yes please state how many)

               No:                   Yes         How Many?




                                                                           85
   10. Overall which keyboard did your prefer using and why? (Please tick
      the appropriate box and write the reason)

 Dynamically Resizable Keyboard                Non-Resizable Keyboard

Why?




   11. Do you have any other comments (positive or negative) about the
       dynamically resizable keyboard that were not address in the
       questionnaire?




   12. Do you have any other comments regarding the evaluation task?




This is the end of the post task questionnaire and the evaluation session.
Thank you for taking the time to carry out this evaluation.


                                                                             86
APPENDIX II




              87
APPENDIX III




               88
T-Test

                                     Paired Samples Statistics
                                                                             Std.          Std. Error
                                                               Mean N
                                                                           Deviation         Mean
       Dynamically Resizing Keyboard Average Time
                                                               857.67 14      119.022           31.810
Pair   Between Key Presses (ms)
1      Non-Resizing Keyboard Average Time Between Key
                                                               789.07 14      149.621           39.988
       Presses (ms)
       Total of Dynamically Resizing Keyboard Mistyped
Pair                                                             2.29 14           2.054           .549
       Mistakes
2
       Total of Non-Resizing Keyboard Mistyped Mistakes          2.14 14           1.916           .512
       Total of Dynamically Resizing Keyboard Tree
                                                                 3.29 14           3.049           .815
Pair   Altering Mistakes
3      Total of Non-Resizing Keyboard Tree Altering
                                                                 4.36 14           3.104           .829
       Mistakes


                                    Paired Samples Correlations

                                                                                N Correlation Sig.

Pair Dynamically Resizing Keyboard Average Time Between Key Presses
                                                                        14                   .767 .001
1    (ms) & Non-Resizing Keyboard Average Time Between Key Presses (ms)
Pair Total of Dynamically Resizing Keyboard Mistyped Mistakes & Total of
                                                                                14           .047 .872
2    Non-Resizing Keyboard Mistyped Mistakes
Pair Total of Dynamically Resizing Keyboard Tree Altering Mistakes &
                                                                                14           .322 .262
3    Total of Non-Resizing Keyboard Tree Altering Mistakes



                                       Paired Samples Test
                                                Paired Differences
                                                                 95% Confidence                 Sig. (2-
                                                        Std.      Interval of the      t   df
                                           Std.                                                 tailed)
                                    Mean               Error        Difference
                                         Deviation
                                                       Mean
                                                                  Lower    Upper
     Dynamically Resizing
     Keyboard Average Time
Pair Between Key Presses (ms) -
                                    68.60     96.077   25.678      13.12   124.07 2.671 13         .019
1    Non-Resizing Keyboard
     Average Time Between Key
     Presses (ms)
     Total of Dynamically
     Resizing Keyboard
Pair
     Mistyped Mistakes - Total of     .14      2.742      .733     -1.44     1.73     .195 13      .848
2
     Non-Resizing Keyboard
     Mistyped Mistakes
     Total of Dynamically
     Resizing Keyboard Tree
Pair                                                                                     -
     Altering Mistakes - Total of   -1.07      3.583      .958     -3.14     1.00          13      .283
3                                                                                    1.119
     Non-Resizing Keyboard
     Tree Altering Mistakes




                                                                                                    89
   Summarize

                                        Case Processing Summary(a)
                                                                                       Cases
                                                                     Included      Excluded        Total
                                                                  N Percent N Percent N Percent
   Dynamically Resizing Keyboard Average Time Between Key
                                                                 14      93.3% 1         6.7% 15 100.0%
   Presses (ms) * Have you used a PDA before?
   Non-Resizing Keyboard Average Time Between Key Presses
                                                                 14      93.3% 1         6.7% 15 100.0%
   (ms) * Have you used a PDA before?
   Total of Dynamically Resizing Keyboard Mistyped Mistakes *
                                                                 14      93.3% 1         6.7% 15 100.0%
   Have you used a PDA before?
   Total of Non-Resizing Keyboard Mistyped Mistakes * Have
                                                                 14      93.3% 1         6.7% 15 100.0%
   you used a PDA before?
   Total of Dynamically Resizing Keyboard Tree Altering
                                                                 14      93.3% 1         6.7% 15 100.0%
   Mistakes * Have you used a PDA before?
   Total of Non-Resizing Keyboard Tree Altering Mistakes *
                                                                 14      93.3% 1         6.7% 15 100.0%
   Have you used a PDA before?
   a Limited to first 100 cases.




                                            Case Summaries(a)
                                                 Non-
                                   Dynamically
                                               Resizing                        Total of  Total of
                                    Resizing              Total of  Total of
                                               Keyboard                      Dynamically  Non-
                                    Keyboard            Dynamically  Non-
                                               Average                        Resizing   Resizing
                                    Average              Resizing   Resizing
                                                 Time                         Keyboard Keyboard
                                      Time               Keyboard Keyboard
                                               Between                          Tree      Tree
                                    Between              Mistyped Mistyped
                                                 Key                          Altering   Altering
                                   Key Presses           Mistakes   Mistakes
                                                Presses                       Mistakes   Mistakes
                                      (ms)
                                                 (ms)
Have            1                         937       792              2            0               1              0
you
                2                         659       674              3            3               3              3
used a
PDA             3                         815       776              2            2               6              4
before?
          No    4                        1173      1267              0            1               4              8
                        N                   4         4              4            4               4              4

                Total Mean              896.08    877.42         1.75           1.50            3.50        3.75
                      Std.
                                       217.004   265.123        1.258       1.291              2.082       3.304
                      Deviation
          Yes   1                         783       788              8            0              12              5
                2                         859       795              2            4               1              5
                3                         808       726              2            0               2              1
                4                         927       789              2            1               4              5
                5                         790       883              1            1               1              2
                6                         767       690              1            2               3              4
                7                         795       724              1            5               3             11




                                                                                                           90
                  8                       859       697              4             5               1              6
                  9                       931       771              0             1               0              0
                  10                      904       674              4             5               5              7
                          N                10        10             10            10              10             10

                  Total Mean           842.30     753.73          2.50           2.40            3.20        4.60
                        Std.
                                       62.026     63.638         2.321          2.119           3.458       3.169
                        Deviation
                  N                        14        14             14            14              14             14
           Total Mean                  857.67     789.07          2.29           2.14            3.29        4.36
                  Std. Deviation      119.022    149.621         2.054          1.916           3.049       3.104
 a Limited to first 100 cases.


    Summarize

                                       Case Processing Summary(a)
                                                                                        Cases
                                                                    Included        Excluded        Total
                                                                   N Percent N Percent N Percent
    Dynamically Resizing Keyboard Average Time Between Key
                                                                  14         93.3% 1        6.7% 15 100.0%
    Presses (ms) * Q1
    Non-Resizing Keyboard Average Time Between Key Presses
                                                                  14         93.3% 1        6.7% 15 100.0%
    (ms) * Q1
    Total of Dynamically Resizing Keyboard Mistyped Mistakes *
                                                                  14         93.3% 1        6.7% 15 100.0%
    Q1
    Total of Non-Resizing Keyboard Mistyped Mistakes * Q1         14         93.3% 1        6.7% 15 100.0%
    Total of Dynamically Resizing Keyboard Tree Altering
                                                                  14         93.3% 1        6.7% 15 100.0%
    Mistakes * Q1
    Total of Non-Resizing Keyboard Tree Altering Mistakes * Q1    14         93.3% 1        6.7% 15 100.0%
    a Limited to first 100 cases.


                                           Case Summaries(a)
                                                  Non-
                                    Dynamically
                                                Resizing                        Total of  Total of
                                     Resizing              Total of  Total of
                                                Keyboard                      Dynamically  Non-
                                     Keyboard            Dynamically  Non-
                                                Average                        Resizing   Resizing
                                     Average              Resizing   Resizing
                                                  Time                         Keyboard Keyboard
                                       Time               Keyboard Keyboard
                                                Between                          Tree      Tree
                                     Between              Mistyped Mistyped
                                                  Key                          Altering   Altering
                                    Key Presses           Mistakes   Mistakes
                                                 Presses                       Mistakes   Mistakes
                                       (ms)
                                                  (ms)
Q1 Expert             1                    808        726                2              0               2             1
                      2                    937        792                2              0               1             0
                      3                    927        789                2              1               4             5
                      4                    790        883                1              1               1             2
                      5                    815        776                2              2               6             4
                      6                    795        724                1              5               3         11




                                                                                                            91
                     7                     931        771               0             1           0             0
                     8                    1173       1267               0             1           4             8
                            N                 8           8             8             8           8             8

                     Total Mean          897.17    841.00           1.25         1.38          2.63           3.88
                           Std.
                                       128.827    179.204           .886        1.598         1.996       3.980
                           Deviation
                     1                     783        788               8             0          12             5
                     2                     859        795               2             4           1             5
                     3                     659        674               3             3           3             3
                     4                     767        690               1             2           3             4

    Intermediate 5                         859        697               4             5           1             6
                 6                         904        674               4             5           5             7
                            N                 6           6             6             6           6             6

                     Total Mean          805.00    719.83           3.67         3.17          4.17           5.00
                           Std.
                                         88.161    56.373         2.422         1.941         4.119       1.414
                           Deviation
                     N                      14         14              14         14             14            14
    Total            Mean                857.67    789.07           2.29         2.14          3.29           4.36
                     Std. Deviation    119.022    149.621         2.054         1.916         3.049       3.104
a Limited to first 100 cases.


     Summarize

                                       Case Processing Summary(a)
                                                                                      Cases
                                                                    Included      Excluded       Total
                                                                  N Percent N Percent N Percent
     Dynamically Resizing Keyboard Average Time Between Key
                                                                  14        93.3% 1       6.7% 15 100.0%
     Presses (ms) * GENDER
     Non-Resizing Keyboard Average Time Between Key Presses
                                                                  14        93.3% 1       6.7% 15 100.0%
     (ms) * GENDER
     Total of Dynamically Resizing Keyboard Mistyped Mistakes *
                                                                  14        93.3% 1       6.7% 15 100.0%
     GENDER
     Total of Non-Resizing Keyboard Mistyped Mistakes *
                                                                  14        93.3% 1       6.7% 15 100.0%
     GENDER
     Total of Dynamically Resizing Keyboard Tree Altering
                                                                  14        93.3% 1       6.7% 15 100.0%
     Mistakes * GENDER
     Total of Non-Resizing Keyboard Tree Altering Mistakes *
                                                                  14        93.3% 1       6.7% 15 100.0%
     GENDER
     a Limited to first 100 cases.




                                                                                                         92
                                               Case Summaries(a)
                                                      Non-
                                        Dynamically
                                                    Resizing                        Total of  Total of
                                         Resizing              Total of  Total of
                                                    Keyboard                      Dynamically  Non-
                                         Keyboard            Dynamically  Non-
                                                    Average                        Resizing   Resizing
                                         Average              Resizing   Resizing
                                                      Time                         Keyboard Keyboard
                                           Time               Keyboard Keyboard
                                                    Between                          Tree      Tree
                                         Between              Mistyped Mistyped
                                                      Key                          Altering   Altering
                                        Key Presses           Mistakes   Mistakes
                                                     Presses                       Mistakes   Mistakes
                                           (ms)
                                                      (ms)
                      1                        859       795          2         4          1            5
                      2                        815       776          2         2          6            4
                      3                        859       697          4         5          1            6

            Female 4                           904       674          4         5          5            7
                                N                4         4          4         4          4            4

                      Total Mean             859.17    735.42       3.00     4.00        3.25         5.50
                            Std.
                                             36.064    58.887      1.155    1.414       2.630        1.291
                            Deviation
                      1                        783       788          8         0         12            5
                      2                        808       726          2         0          2            1
                      3                        937       792          2         0          1            0
                      4                        927       789          2         1          4            5
GENDER                5                        790       883          1         1          1            2
                      6                        659       674          3         3          3            3

            Male      7                        767       690          1         2          3            4
                      8                        795       724          1         5          3           11
                      9                        931       771          0         1          0            0
                      10                      1173      1267          0         1          4            8
                                N               10        10         10        10         10           10

                      Total Mean             857.07    810.53       2.00     1.40        3.30         3.90
                            Std.
                                            141.518   171.432      2.309    1.578       3.335        3.542
                            Deviation
                      N                         14        14         14        14         14           14
            Total     Mean                   857.67    789.07       2.29     2.14        3.29         4.36
                      Std. Deviation        119.022   149.621      2.054    1.916       3.049        3.104
a Limited to first 100 cases.




                                                                                                93
   Summarize

                                       Case Processing Summary(a)
                                                                                     Cases
                                                                    Included      Excluded      Total
                                                                  N Percent N Percent N Percent
   Dynamically Resizing Keyboard Average Time Between Key
                                                                  14       93.3% 1     6.7% 15 100.0%
   Presses (ms) * Age Category
   Non-Resizing Keyboard Average Time Between Key Presses
                                                                  14       93.3% 1     6.7% 15 100.0%
   (ms) * Age Category
   Total of Dynamically Resizing Keyboard Mistyped Mistakes *
                                                                  14       93.3% 1     6.7% 15 100.0%
   Age Category
   Total of Non-Resizing Keyboard Mistyped Mistakes * Age
                                                                  14       93.3% 1     6.7% 15 100.0%
   Category
   Total of Dynamically Resizing Keyboard Tree Altering
                                                                  14       93.3% 1     6.7% 15 100.0%
   Mistakes * Age Category
   Total of Non-Resizing Keyboard Tree Altering Mistakes * Age
                                                                  14       93.3% 1     6.7% 15 100.0%
   Category
   a Limited to first 100 cases.


                                           Case Summaries(a)
                                                 Non-
                                   Dynamically
                                               Resizing                        Total of  Total of
                                    Resizing              Total of  Total of
                                               Keyboard                      Dynamically  Non-
                                    Keyboard            Dynamically  Non-
                                               Average                        Resizing   Resizing
                                    Average              Resizing   Resizing
                                                 Time                         Keyboard Keyboard
                                      Time               Keyboard Keyboard
                                               Between                          Tree      Tree
                                    Between              Mistyped Mistyped
                                                 Key                          Altering   Altering
                                   Key Presses           Mistakes   Mistakes
                                                Presses                       Mistakes   Mistakes
                                      (ms)
                                                 (ms)
Age              1                        783       788                8          0            12              5
Category
                 2                        859       795                2          4             1              5
                 3                        808       726                2          0             2              1
                 4                        790       883                1          1             1              2
                 5                        659       674                3          3             3              3
                 6                        815       776                2          2             6              4
                 7                        767       690                1          2             3              4
           18-
           25    8                        795       724                1          5             3             11
                 9                        859       697                4          5             1              6
                 10                       931       771                0          1             0              0
                 11                       904       674                4          5             5              7
                         N                 11        11             11           11            11             11

                 Total Mean             815.45    745.27          2.55          2.55          3.36           4.36
                       Std.
                                        73.466    64.170         2.207         1.968         3.384       3.042
                       Deviation
           26-   1                        937       792                2          0             1              0
           35
                 2                        927       789                2          1             4              5



                                                                                                        94
                           N              2         2       2       2       2           2

                   Total Mean         932.17    790.83    2.00     .50    2.50        2.50
                         Std.
                                       7.307     2.121    .000    .707   2.121    3.536
                         Deviation
                   1                   1173      1267       0       1       4           8
                           N              1         1       1       1       1           1
           35-
           45      Total Mean        1173.00   1267.33     .00    1.00    4.00        8.00
                         Std.
                                           .         .       .       .       .           .
                         Deviation
                   N                     14        14      14      14      14          14
           Total Mean                 857.67    789.07    2.29    2.14    3.29        4.36
                   Std. Deviation    119.022   149.621   2.054   1.916   3.049    3.104
a Limited to first 100 cases.




                                                                                 95

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:40
posted:6/12/2011
language:English
pages:101