Enabling Technology


Addition in Progress….


My semester project for Comp 290 is Big Words, software that aims to break the second grade reading barrier. I have used Python, wxPython, and pyTTS to implement a basic “fill-in-the-blank” exercise to afford students some simple pattern matching with morphemes. This prototype will be built upon in my work on Big Words through NSF and with Dr. Bishop and Dr. Erickson in the coming year.

Problem Description:

According to the 24th Annual Congress Report, fifty-five million students attend national K-12 public schools, and nearly three million of those children have some form of learning disability. Several million students with disabilities require direct, systematic, sequenced instruction in order to learn the skills required to read polysyllabic words. These students are unable to demonstrate accurate word identification, fluency, and silent reading comprehension beyond the second grade level due to difficulty with applying letter-sound knowledge to read and spell words with more than one or two syllables. Older students with reading disabilities seem to have mastered knowledge of letter-sound correspondence, but fail to process all of the letters in the larger words and thus read inaccurately. These students benefit from instruction on strategies of chunking large words into morpheme components. Morphemes (prefixes, suffixes, roots) are important building blocks of reading that may be more easily understood as a result of their meaningful nature in isolation contrasted with phonemes (single sounds).

Project Audience:

“Big Words” is intended to provide instruction and practice with literacy skills for students who have difficulty breaking words into their morpheme components. This group of students can successfully identify phonemes, but struggle with word chunking.

Project Proposal:

My goal in development of “Big Words” is to target this audience of readers with the design, implementation, and evaluation of enabling technology developed for users with cognitive disabilities. In utilizing technology to provide additional morphological instruction, I aim to enhance a student’s language experience and reduce demand on teacher resources.

I hope to eventually equip “Big Words” with a component that will simulate the instructive feedback of human teachers, which provides an extension beyond the binary positive feedback of many existing rote drill software programs. Ultimately, feedback to build and reinforce appropriate problem-solving strategies must indicate to the student why his/her answer is correct or incorrect, equip the students with strategies for improvement, prevent repetitive errors, and expand knowledge. In this manner, “Big Words” can capture the teachable moment.

This semester, I aimed to create a demo that would prototype the “fill-in-the-blank” exercise modeled by existing literacy softwares.


I have utilized Python, pyTTS, and wxPython to create a simple GUI with TTS capability. I have currently implemented a “fill-in-the-blank” literacy exercise.

Project Design:

I first designed a “dictionary” which we can refer to as the MorphemeDictionary. The MorphemeDictionary is a Python dictionary which utilizes a morpheme(prefix, suffix, or root) as a key and then contains a list of all the words that are associated with that morpheme (ie, contain it). I read the MorphemeDictionary from a file which is set up as:

key: chunk1, chunk2; chunk1, chunk2, chunk3.

The key is the morpheme to file the word by, next is a series of chunks separated by commas that form a word. Words are separated by semicolons, and the entry is ended by a period.

I have incorporated a feature in my GUI that allows a user to add words to the dictionary. By clicking on “File, Add Word,” the user will be prompted for the morpheme under which to file the new word (the key). The user will then enter the word with chunks separated by periods and ending the word with a semicolon. The word will be added to the MorphemeDictionary filed under the “key.”

I used pickle in Python to allow a user ability to save and load a dictionary. After a user has made changes to the dictionary, they can opt to save it through, “File, Save.” This only dumps out the MorphemeDictionary at this time. The user may also load a dictionary with “File, Load.” This will only load whatever is saved as “MorphemeDictionary.pickle” at this time.

I incorporated “Exit,” “About,” and “Instructions” options into the GUI menus. The user also has the ability to track their correct responses and exercises attempted with “File, Current Totals.”

Exercise Design:

A user will see a bank of 5 morphemes to select from, and objective, three blanks, and three options (“Next Exercise”, “Check My Answers”, and “Clear Blanks”) on the Big Words GUI.

If a user left-mouse-clicks on any of the text on the GUI, it will speak itself. Additionally, a morpheme piece is selected through a left click.

The user will then right click on the blank in which he/she feels the morpheme belongs. After placing a morpheme on a blank, the user can left-click on it again, and if it is correct, it will speak itself. If it is incorrect, it will provide the user with feedback that he/she has selected the wrong piece.

After at least one morpheme has been selected through a left-click, the user may elect to right click on any of the blue “commands.” Selecting “Next Exercise” will randomly select a new word from the MorphemeDictionary and construct a list of five new Morpheme Choices. Selecting “Check My Answers” will compare a user’s selections with the correct answer. The user will receive feedback about their selection. Finally, choosing “Clear Blanks” will clear all of the blanks. The user may move morpheme pieces among the blanks; however, once they are in a blank, “Clear Blanks” must be selected to move it back down to the word choices bank. This feature was incorporated to reward a student who is able to select the correct morpheme but who may not place it in the right blank. A blank may not contain more than one morpheme at a time.

Current Limitations:

In order to add ease in my dealing with the words in the dictionary, it is currently only implemented for three-syllable words. I will expand this in later versions to include words of any length.

Furthermore, I have incorporated some basic binary feedback which will be expanded to be more instructive in the next year.

Unresolved Issues:

I will need to learn Python better in order to code this project. Furthermore, I will need to gain some knowledge about language processing in order to synthesize appropriate feedback responses.

Domain Expert and Evaluation:

The Carolina Center for Literacy, and more specifically, Dr. Karen Erickson, will be my domain expert. Dr. Erickson has provided a good deal of preliminary information regarding morpheme components and instructive responses. The software should ultimately be evaluated by Dr. Erickson and potentially some of the students that she works with in the coming year.

Demonstrating Success:

I had proposed success as:

“I will consider this semester project a success if I am able to get a working prototype of this software completed. It will have to be limited in scope with regard to activity, word base, and possible feedback generated: however, it will be a good start for a larger scale project in the future. A successful project will be able to take advantage of some teachable moments and provide some instructive responses to student selections.”

I believe that I have mostly met my semester goals. I have implemented a working version of a basic literacy exercise. I have also laid the groundwork for expansions in incorporating instructive feedback, allowing users to add content, tracking a student’s progress, and maintaining a morphological database. I would consider this semester’s work a success, though merely a stepping stone to much bigger and better things in the coming year.