Project: Developing Tactile Graphics for Blind Students in Computer Science

Student Researchers: Beth Bell, Tomoko Maruyama, Rachel Novak
Advisor: Joan M. Francioni, Mingrui Zhang
Institution: Winona State University




Introduction

The study of computer science is a challenging endeavor for all, but the learning process poses additional obstacles for students with visual disabilities. For example, graphs and diagrams used to help sighted students are not useful to visually impaired students unless they are represented in some alternative manner, using assistive technology. The research project conducted involved working with three first-year computer science students who have visual disabilities. The goals of the CREW project are to make the computer science major more accessible to people with impaired sight, to find tactical and other alternative ways of representing diagrams and data to sight impaired computer scientists, and to find out how sight impaired students "see" the diagrams and understand them. Early on, it was confirmed that tactical diagrams help students with visual disabilities learn computer science concepts just as visual versions help sighted students. Also, it was discovered that the non-sighted versions did not have to be modified very much to be extremely useful. Keeping these ideas in mind, a variety of experiments were designed to gather information that would help reach the goal of making computer topics, in particular computer science curriculum, more accessible to blind students.

Technology

To implement the experiments, a Tiger embosser from ViewPlus Technologies was used to produce Braille printouts of Microsoft Word documents. Alphabetical and numerical Braille representations were printed, along with tactical graphs and diagrams. This use of assistive technology enabled non-visual representations of text and graphics to be produced.

Computer Science Topics Considered


For our research experiments, we considered the topics that are traditionally taught in the computer science curriculum. The main concern was the use of diagrams to help students understand many computer science topics. These topics can be very difficult to learn without the use of diagrams. So, we chose three specific topics: flow chart, parameter passing, and scope of variables. These are basic and important topics for analyzing or understanding a programming code.

When we try to grasp the control flow in the program, we often use flow charts. Most of the programs have many decision-making statements, and these are often nested and complicated. In Java programming, there are several control statements such as if statements, switch statements, while loops, do-while loops, or for loops. These are often represented by flow charts showing the control flow of those selections or repetitions, and these are quite helpful for sighted students to understand the control flow by giving them the whole picture. However, blind students figure out the parts of the diagrams first, so we must figure out if they can clearly understand those flows. In our research, we picked up three common statements: if-then and if-else statements, while loops, and for loops.

For beginners of programming, one of the most difficult parts to understand without diagrams is parameter passing. Generally in the Java programming, we use some separated classes and methods, and some variables or objects are often used in more than one method using the technique of parameter passing. Sometimes these variables or objects seem to be passed from one method to another as parameters, but actually not. In Java programming, parameters are always passed by value, not exact variables or objects, which means original values do not change even if the passed values have changed. It causes much confusion for beginners. In our research, we picked up some situations of parameter passing of variables and drew diagrams of each step of the memory state.

Related to the parameter passing as mentioned above, we often have to handle the scope of variables. In Java programming, variables can be declared either outside or inside of methods. The variables declared outside of the methods are called global variables, and those declared inside of the methods are called local variables. Those are sometimes declared with the same name, and it might cause confusion. In our research, we considered three different situations of the scope in the parameter passing example: the variables' names (actually the parameters' names) are different from those in the main method, the same names of the variables passed from the main are also used for parameters' but in reverse order, and the local variables with the same name as the variables in the main are declared in the other method.

Experiments

In the definition of research, experiments need to be performed to find a solution to the problem at hand. In our research we performed two significant experiments. The first experiment consisted of creating diagrams to represent flow charts. As mentioned above, tactile flow charts of if-then and if-else statements, while loops, and for loops were created. Certain guidelines were followed in creating the diagrams. Spacing between text and lines was monitored in order to minimize confusion between letters and the actual lines. Another guideline was making sure arrows, used to show the direction of the flow of data, were big enough and distinct enough for the blind students to feel and understand. In using the word distinct we mean a judgment in tactile difference, not a visual difference. This will be explained further with the results of the experiments. Besides these few guidelines, the tactile diagrams were generally the same as those used in a textbook, by the request of the students to stay with the convention used by the authors. The diagrams were then given to the students to help them learn about the control flow of the various statements. The students gave feedback, and suggestions were taken for further experiments.

The second experiment consisted of making parameter passing more understandable to sight impaired students. This experiment also involved making tactile diagrams for the blind students. These diagrams however were different from the flowcharts. We discussed and agreed upon a template for each parameter-passing situation. The template consisted of the following: a block of code, numbered, to be executed in order, line-by-line; a show of control flow from one line to the next including passing control to a method; and a run through of the code and how data members and objects appear or disappear with each execution of a line. The execution of a line was shown by placing a dot next to the line number that was assigned to that certain line of code shown at the top. Diagrams were "drawn" to show what objects and variables appeared and disappeared at the execution of that certain line of code. For the next line of code, the diagrams from the previous line were repeated if that variable or object had not disappeared with the execution of that line. After the diagrams were given to the blind students, the professor reported they helped tremendously with their understanding of parameters.

Results

The results of the first experiment were very basic. The major concern of the students was to make the diagrams in the most similar way as possible to those used for sighted students. It was confirmed early on that the diagrams helped the blind students just as they help sighted students. Blind students process things sequentially because they cannot see the big picture up front that sighted students get to see. This fact helped with the planning for the second experiment.

The second experiment went smoothly because of the information gathered from the first experiment. The sequential pattern helped the blind students understand the diagrams even better than the experiment with the flow charts. The most important result found from the two experiments combined is finding the judgment for tactile differences versus visual differences in a diagram. First, take the symbols and . Sighted people see these symbols as a whole and they look very similar. The symbols look so similar that we thought the blind students would have difficulty distinguishing between them. The key word in the last sentence was 'look.' We see them as individual symbols that we can distinguish from the rounded edge of the subset symbol. On the other hand, blind students feel the symbols and because of their size, 'see' them as a whole. Because of this, they can distinguish between the two symbols.

Now take a flow chart as another example. For a while loop, a diamond is used for the conditional statement and lines are drawn out from it to show the flow of data. We see a flow chart diagram as a whole because we see the big picture. Blind students do not have this luxury and the diagram is made up of individual parts. Because the diagram is felt, each individual part needs to be just that: individual, and independent from every other part of the diagram. For this reason, each line coming out of the diamond conditional statement of the flow chart diagram was separated from the diamond itself. This allows the blind student to figure out where the diamond ends and the line begins, and thus furthers the understanding of the diagram.

Conclusion

In conclusion, the experiments were a success, and provided valid information for the future. In making diagrams for blind students, always follow the convention when possible. Separate the different parts of the diagrams to keep individual parts independent of each other. Shorten the text used with the diagram as much as possible without losing the meaning or abbreviating. Make sure there is adequate spacing between text and other parts of the diagram. And finally, always keep in mind that it ultimately does not matter what it looks like, as long as the feeling of it is correct.

Overall, this is a good start to upcoming experiments. The amount of information gathered from just two experiments was substantial and has laid a firm foundation for those to come.