Computer Science Computer Speech, Music and Images Assignment: Speed Reader
CSC 545/645 Computer Speech, Music and Images
Background
In recent years, several applications have been developed to teach people to “speed read”—to read and comprehend text at rates beyond the 200 to 400 words per minute capability of the average reader. These applications are based on presenting text to the user, one word at a time, at high rates of speed. In this assignment, you will develop a speed reader system.
This assignment is based on http://nifty.stanford.edu/2015/posera-speed-reader/; you should read the description on that website, which also includes a couple of sample implementations in Python.
You should be aware, though, that there are differences between the requirements of this assignment and the one described on the website. In particular, this assignment requires you to control the presentation rate using a slider, it does not ask you to present a “focus letter” in red and it does not call for you to evaluate the effectiveness of the application using comprehension tests. This assignment must be implemented in Processing and must not require the installation of any libraries.
Procedure
Implement a Processing program to present text at rates of speed controlled by the user. The program should present one word at a time, horizontally centered in the display canvas; choose the vertical position for aesthetics and usability. Store the text in a text file in the program’s data folder. A good source for text is Project Gutenberg ( https://www.gutenberg.org/). Your program should not assume pre-processing of the text file; in other words, your program may not assume that each word is on a separate line or that punctuation has been removed. I will test your program with my own test file.
Your program must present words at rates ranging from at least 120 words per minute to 500 words per minute. Be sure the text does not drop out during display—in other words, don’t display white space or isolated punctuation (such as dash). While it’s not required, it would be a good idea to remove punctuation from the text before starting display (use the String remove function). For full credit, allow the user to control the presentation rate dynamically using a slider—move the slider to the right to increase the rate and to the left to decrease the rate. Indicate the current slider position by a small button or cursor inside the slider bar. The user should be able to click-drag the mouse inside the slider to change the rate; the user should also be able to click inside the slider bar to move the slider directly to the mouse position. The slider should only respond when the left mouse button is pressed and the mouse position is inside the slider bar. Label the two ends of the slider appropriately (probably Slower on the left and Faster on the right). For a 15% penalty, you may use up and down arrow keys to control the display rate. For a 10% penalty, you may use buttons drawn on the canvas.
Display the current rate unobtrusively in one corner of the canvas or inside the slider. If the rate is 400 words per minute or higher, display the rate in red. If the rate is 200 to 399 words per minute, display the rate in green. If the rate is lower than 200 words per minute, display it in blue.
Allow the user to pause/restart the display using space bar as a toggle. The application canvas should look similar to the image below (this image shows the presentation rate both inside the slider bar and in the lower left corner; you only have to display the rate in one location).
Name your assignment Asn1_<your username>; for example, I would name my program Asn1_ls555. Zip your assignment folder and submit it on Blackboard. Be sure your program is well documented internally.