Augmentative and Alternative Communication Device Assignment

By Catherine Baker CatherineBaker -at- creighton.edu

Descriptions

There are many disabilities that affect a person's ability to speak. As such, alternatives to verbal communication are often sought. These alternatives are referred to as Augmented and Alternative Communication Systems (AACs). An AAC can be either high-tech or low/no-tech. While many AACs require a user to type out what they want spoken, there are also AACs that rely on symbols for communication. With symbol based AACs, when the user clicks on the image, the device speaks aloud the text that represents that image. For this assignment, students will work to create a simple version of a symbol-based AAC device1.

For the students to get the AAC working, they are asked to write code that allows the AAC to:

  • Read in the file to set up the AAC
  • Add new categories and items within categories
  • Return the images that will be displayed on the GUI
  • Respond to a users selection by either updating the category or returning text to be spoke
  • Writing the mapping back to a file

This AAC assignment has been used for at least 3 terms and has been used at least two different universities. The instructions for students are available at: AAC Assignment Details

Starter Code

Starter Code As Zip

Starter Code on Github

Grading

Grading Materials As Zip

For the grading script, you will either need to create your own solution to the two classes as MyAACCategory and MyAACMapping or email catherinebaker@creighton.edu for the solution.

Metadata

Summary This assignment asks students to create the backend for an AAC (Alternative and Augmentative Communication) device. The AAC is a symbol board where there is a page with categories (e.g. food, clothing), which when selected goes to another page with the different items. When an image is selected within the category, the relevant text is spoken aloud. The students are asked to write the relevant methods for the AAC such as determining what images to load and what is spoken aloud.
Audience This assignment was used in a data structures course to give students experience working with maps. This assignment is focused for students who are working in Java and comfortable with an object-oriented approach. Beyond maps, the assignment includes topics such as using classes to encapsulate the category data, interfaces to describe what the GUI expects, and error handling.
Difficulty The students found this to be of average difficulty. The first part of the assignment, AACCategory, was found to be pretty simple by most students and then the AACMappings required more thought to the approach. The assignment was for 2 weeks, which seemed to be right for the students.
Topics This assignment focuses on maps and to a lesser extent interfaces. It assumes that the students are comfortable with the basic Java topics of loops, methods, classes, etc.
Strengths

The real world context of using devices that are commonly used by people with disabilities that affect their speech was interesting to students. The assignment served as an introduction to certain disabilities and showed students the real-world use of technology to help people communicate.

The assignment GUI interface made it pretty clear if the methods were working or not. In addition, the assignment was scaffolded so that they could get something working quickly by completing the AACCategory class. This class was found to be fairly simple by students and gave them something they could see working early on by changing out a line in the GUI to test the category.

Weaknesses Students frequently struggled with reading in the file into the correct, nested format, which made it harder for them to see the code working until they finished that method. In addition, students were asked to handle errors that were not possible with the currently provided GUI, but could be possible with other user interfaces.
Dependencies The assignment is written in Java and provides the students the code for the front-end of the application. For the code to work, the FreeTTS library needed to be imported into the project (done for the students in the github starter code).
Variants The main assignment used nested maps to encourage students to more deeply interact with the data structure. A second version which might be appropriate for a smaller, easier version would be to have students only implement a non-nested version of the map (e.g. just AACCategory, not AACMappings). The GUI is set up to support any class that implements the AACPage interface, which just requires the based functions of the AAC (e.g. select, add, etc.). It would be easy to remove the interface requirement if needed for a class where it wasn’t yet covered. In addition, the assignment asks students to handle errors and throw exceptions, which can easily be modified/removed if needed.
Teaching Notes When introducing the assignment, I found that talking through the different methods by discussing how a real world user would be using them. For instance, saying that AACs tend to be customized to the person, so the add button would allow them to add their own categories like my family and then add their own pictures of their family. Then showing that the writeToFile is needed so that once they have customized the AAC, those customizations can be used the next time they load the AAC.

1. This assignment is inspired by one mentioned in Annalu Waller, Vicki L. Hanson, and David Sloan (2009). Including accessibility within and beyond undergraduate computing courses. In Proceedings of the 11th international ACM SIGACCESS conference on Computers and accessibility. https://dl.acm.org/doi/10.1145/1639642.1639670