Typing Speed Test

A multiplayer session of the game in progress

Try it here

For the Summer 2019 offering of CS 61A (The Structure and Interpretation of Computer Programs), I designed a new project where students implement a typing speed calculator and other features, including autocorrect so users can “cheat” and correct their mistakes as they type. It has since been updated to allow users to compete against each other in a multiplayer mode. In its current iteration, it is called CATS (the “CS 61A Autocompleted Typing Software”). Additionally, it was featured as a “Nifty Assignment” as part of SIGCSE 2020.

In its original incarnation, the project featured

At the point in the course the project appeared, students had just learned how to manipulate sequences in Python and had some experience with problems involving recursion and multiple recursion. Our goal for this project was to reinforce these skills through familiar string-manipulation problems, and to introduce students to using external libraries and file I/O to build a program.

You can try out the most recent version of the project here or view a video overview of the project here. The project spec and starter code delivered to students in Summer 2019 is located here

The project turned out to be a hit with students, as shown by this feedback shamelessly cherry-picked from our student survey:

[I liked] the fact that the amount of code provided was minimal and basically we were responsible to implement all functions. This project was a big step towards understanding of how to write code and functions step by step to create a project.

I really enjoyed that we were making something that we encounter everyday- autocorrect. I finally understood recursion after this project too so it was interesting to implement for this project.

I have played type racer before and it is a lot of fun but never thought about how it works! So doing this project was really interesting because I could relate to it and wanted to recreate it myself.

While I implemented most of the Python starter code, tests, and instructions delivered to students, Ryan Moughan and Tiffany Perumpail helped with the initial design of the project, Aman Shah made the initial tkinter GUI delivered to students, and Rahul Arya developed the React-based web GUI that is now in use.