Evan Marlo Anderson


Undergraduate Computer Science Student

AI Typing Trainer

For my CS5890 AI Applications in Education final project I created a typing trainer that makes use of generative AI. This trainer uses ChatGPT to generate new text for the user every time they want to practice typing. It also tracks what keys the user struggles with, and generates text that incorporates those keys.

Purpose

Typing is an essential skill for most people. The main purpose of this project is to improve both typing speed and accuracy of the user. The secondary purpose of this project was to evaluate ChatGPT's ability to incorporate certain keys into a paragraph, while keeping that paragraph sensible.

Approach

I wrote this project in Python and used Tkinter for the UI. I used GPT 3.5 Turbo for text generation. I spent a total of $0.04 on the OpenAI API throughout developing, testing, and demonstrating my prototype in class (which I found surprisingly cheap).

Evaluation

Anecdotally, ChatGPT did a great job at generating text with noticeable amounts of letters the user struggles with. In order to quantitatively show the letter increase, I found data on regular English letter frequencies. I also charted letter frequencies of regular ChatGPT text, that was (expectedly) identical.

I charted letter frequencies for text after the user struggled with the letter "Z". The text was sensible and the frequency of "Z" increased to 8.8%, or 44 times as many "Z"s as would normally be generated.

English letter frequencies ( Keating, Barry. University of Notre Dame )
English letter frequencies generated by ChatGPT
English letter frequencies generated by ChatGPT when prompted to include more of the letter "Z"