We have all at one point or another encountered some sort of typing tutor program. They teach you how to position your hands on the keyboard, which keys to press using which finger in order to achieve maximum speed 10-finger typing skill.

My problem with these programs was always the boring routine of repeating the same basic lessons over and over. Rows and rows of asde sad desa ased dads sead deeds seeds sdsa needed to be typed over and over again.

While I am not a professional typist, I find my own 6-finger technique perfectly satisfactory for my everyday needs. I do, however make mistakes, especially when typing on an unfamiliar keyboard. I got so used to my own Logitech G15, that my typing speed and accuracy falls down dramatically when using a laptop keyboard or trying to type on someone else’s computer.

I often see people who type on the computer hitting the delete/backspace key several times a minute. Observing them made me realize that they more often than not tend to make mistakes around the same group of keys or words. That got me thinking:

How about creating a typing tutor program that analyzes your daily typing habits and suggests exercises and tips on how to improve your skill based on the mistakes you make?

Such program would reside in the background of the operating system, monitoring every keystroke you make. In other words, it would act as a keylogger. All the typed data, along with the mouse movement would be then stored in the program’s database, ready for analysis at user’s request.

The analysis algorithm would look for particular strings and patterns in order to determine problematic zones on the keyboard, or letter combinations. It could also analyze the general practices of the user and provide feedback on how to increase their efficiency.

Some examples:

  • Search the input database for occurrences of backspace, analyze the preceding letters and match them with proper exercise words.
  • Search the input database for occurrences of www.***.com and suggest the user to use ctrl+Enter for quicker typing of web addresses.
  • Search the input database for strings of short data punctuated by short mouse movements and clicks and recommend using Tab button to navigate fields on the form.

The main obstacle to overcome while designing the program would be to ensure the security of the database and convince the users of it. With the current plague of keyloggers, it is understandable if the users would be hesitant to use the program.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.