Making Block-Based Programming Accessible to People with Cognitive Disabilities

Varsha Koushik, University of Colorado Boulder, varsha.koushik@colorado.edu

Abstract

Block-based programming languages are a popular way to introduce programming concepts to novice learners. However, block-based languages have inaccessible representations, which can create cognitive difficulties in manipulating blocks, assembling programs, and interpreting code. In my dissertation, I plan to address these problems by developing techniques to make programming accessible using a touch screen device. I will evaluate my designs through usability studies with adults with cognitive disabilities, special educators, and caregivers. My research aims to provide empirical findings on accessible representations and alternative interaction techniques in block-based languages.

Introduction

Computer science education is a gateway to employment in this digital age. Apart from job skills, learning computing can develop computational thinking skills which can useful in everyday life [14]. There are approximately 5 million people with some form of cognitive impairment in the United States to whom these skills are currently inaccessible [1].

Block-based programming languages like Scratch, Scratch Jr., Snap, Blocky are widely popular ways of introducing novice learners to programming and computational thinking. Although block-based languages are used extensively, they pose accessibility barriers to people with disabilities. Much of the research on accessible block-based languages has focused on people with visual impairments, and there is limited research on introductory programming for people with cognitive disabilities. Although the visual nature of existing block-based languages can be useful to people with cognitive disabilities, current implementations  pose a number of accessibility barriers to this population like manipulating blocks, reading block-based code, assembling programs, interpreting code, keeping track of different functional areas in the environment, executing, and debugging programs. 

My research explores representations of block-based programs on touch screen devices to support at least the following accessible interactions: (1) reading and interpreting code, (2) easy moving and placement of blocks to create logical programs, (3) enable following the order of execution, and (4) recognizing and keeping track of different functional areas in a block-based environment. I will conduct user studies with adults with cognitive disabilities, special educators, and caregivers to evaluate my designs.

Related Work

Universal Design for Learning

The Universal Design for Learning (UDL) model emphasizes representing information in multiple forms, providing clear and simple instructions, and including interactive prompts in activities [10]. The UDL model can be applied in computer science education to support students with a wide range of abilities [2,6]. I will incorporate UDL principles in designing and representing introductory programming concepts. My research will implement those principles in an accessible block-based environment.

Accessible Block-Based Environments

A majority of prior work in making block-based languages accessible has focused on people with visual impairments [5,7,12]. Prior work also explored how dyslexia affects learning programming [8]. Some research has found that the visual aspects and creative outputs of block-based representations can be beneficial and motivating to people with cognitive disabilities. For example, Taylor et al. introduced block-based languages to students with Down Syndrome and found that while students enjoyed the experience, they had trouble in identifying and selecting code blocks [11]. Thompson et.al have explored the use of blocks-based languages to teach math skills through text-based stories [13]. While stories are an engaging medium for learning, using text-based blocks can be challenging for people with cognitive disabilities as they can have difficulties in reading text.

My proposed work extends previous work in making block-based languages more accessible to people with cognitive disabilities through comic animations, as creative media can motivate people to engage in computational activities [3,9].

Prior Research

Over the past year, I have conducted field studies to document a program that teaches computing technologies to young adults with cognitive disabilities through computing education [4]. I have also observed classrooms and conducted extensive interviews with instructors to understand accessibility challenges in teaching introductory programming and strategies used to overcome those barriers.

Based on insights from my field studies, I found that participants felt a sense of agency by engaging in computational activities. They felt they were gaining skills that could help them in solving accessibility challenges for their community. I observed that the program used a peer-mentoring model to motivate and empower people with cognitive disabilities, where peers taught and helped each other. Although the program used workarounds and scaffolds to teach introductory programming, I found a number of accessibility challenges in using existing block-based programming languages. I found that individuals with cognitive disabilities faced challenges in reading, understanding, and interpreting blocks of code in existing block-based languages. Designing accessible interaction techniques and representations of blocks can help people with cognitive disabilities in reading and assembling code to interpret outputs.

Planned Research

My findings from pilot studies indicate that people with cognitive disabilities are motivated to learn introductory computing concepts, but the current representations of blocks and program structure create accessibility barriers in existing block-based programming environments.

Designing Accessible Interaction Techniques for Block-based Programming

In current block-based languages, the block categories have different colors, but they all have similar shapes, which makes it difficult to scan individual blocks and identify them. I plan to design representations for block-based code elements using the Universal Design principle. I will implement those principles by designing block-based representations using multiple formats with limited text, like images, color and shapes. I plan to support blocks with distinct features to know what individual blocks or a set of blocks do any time in the program structure. I will explore designs in flow-based programming, tangible programming, and direct manipulation techniques to design the block-based programming elements.

Existing block-based languages use a repertoire of actions to select, move, and place blocks. Users are expected to be able to click to select a block, drag that block over to a workspace, and place the block in the workspace. Placing the blocks in the right location and right order are key to create logically correct programs. Although block placement is a critical part of block-based programming, it can be inaccessible due to cognitive disabilities. We plan to explore the use touchscreens equipped with visual and audio directions to support users in placing and updating blocks, and recovering from incorrect placement of blocks.

I will develop initial prototypes and get feedback from caregivers and special educators on challenges that individuals with cognitive disabilities might face using our system. I will iterate and evaluate our designs through usability studies with adults, where they will perform the following tasks: reading an existing program, interpreting the output for a completed program, and completing a partial program. This research will produce quantitative metrics and qualitative findings on how much they liked the system, what aspects they found challenging, how well did they did in reading the program, how well they did in interpreting the output from an existing program, and how they interacted with the system to select and place blocks in the system.  

Contributions to Accessibility

This research will result in the following contributions to the accessibility community: identifying accessibility challenges in existing block-based programming languages for people with cognitive disabilities, design considerations for creating accessible tools to learn programming concepts, empirical findings from usability studies on how people with cognitive disabilities and staff use and interact with our explored designs. My work aims to study how we can use principles of the UDL model in designing accessible touchscreen interaction techniques to support people with cognitive disabilities in accessing and using introductory programming environments.

Acknowledgments

I thank all of my participants throughout the years. I would like to thank my advisor Shaun Kane for his constant support. I would like to thank Clayton Lewis, Erin Buehler, Patrick Carrington, and my lab colleagues for their valuable feedback.

References

  1. David Braddock, Richard Hemp, Mary C. Rizzolo, Laura Haffer, Emily Shea Tanis, and Jiang Wu. 2008. The state of the states in developmental disabilities. Vol. 444. Washington, DC: American Association on Intellectual and Developmental Disabilities.
  2. Sheryl Burgstahler and Richard Ladner. 2006. An alliance to increase the participation of individuals with disabilities in computing careers. SIGACCESS Access. Comput. 85 (June 2006), 3-9. DOI=http://dx.doi.org/10.1145/1166118.1166119
  3. Caitlin Kelleher, Randy Pausch, and Randy Pausch, Sara Kiesler. 2007. Storytelling alice motivates middle school girls to learn computer programming. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '07). ACM, New York, NY, USA, 1455-1464. DOI: https://doi.org/10.1145/1240624.1240844
  4. Varsha Koushik and Shaun K. Kane. 2019. "It Broadens My Mind": Empowering People with Cognitive Disabilities through Computing Education. In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (CHI '19). ACM, New York, NY, USA, Paper 514, 12 pages. DOI: https://doi.org/10.1145/3290605.3300744
  5. Varsha Koushik and Clayton Lewis. 2016. An Accessible Blocks Language: Work in Progress. In Proceedings of the 18th International ACM SIGACCESS Conference on Computers and Accessibility (ASSETS ’16), 317–318. DOI: https://doi.org/10.1145/2982142.2982150
  6. Maya Israel, Quentin M. Wherfel, Jamie Pearson, Saadeddine Shehab, & Tanya Tapia. 2015. Empowering K–12 students with disabilities to learn computational thinking and computer programming. TEACHING Exceptional Children, 48(1), 45-53.
  7. Lauren R. Milne. 2017. Blocks4All: making block programming languages accessible for blind children. ACM SIGACCESS Accessibility and Computing, 117: 26–29.
  8. Norman Powell, David Moore, John Gray, Janet Finlay, & John Reaney. 2004. Dyslexia and learning computer programming.
  9. Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond, Karen Brennan, Amon Millner, Eric Rosenbaum, Jay Silver, Brian Silverman, and Yasmin Kafai. 2009. Scratch: programming for all. Commun. ACM 52, 11 (November 2009), 60-67. DOI: https://doi.org/10.1145/1592761.1592779
  10. David H. Rose, & Anne Meyer. 2002. Teaching every student in the digital age: Universal design for learning. Association for Supervision and Curriculum Development, 1703 N. Beauregard St., Alexandria, VA 22311-1714 (Product no. 101042: $22.95 ASCD members; $26.95 nonmembers).
  11. Matthew S. Taylor, Eleazar Vasquez, & Claire Donehower. 2017. Computer programming with early elementary students with Down syndrome. Journal of Special Education Technology, 32(3), 149-159.
  12. Anja Thieme, Cecily Morrison, Nicolas Villar, Martin Grayson, and Siân Lindley. 2017. Enabling Collaboration in Learning Computer Programing Inclusive of Children with Vision Impairments. In Proceedings of the 2017 Conference on Designing Interactive Systems (DIS '17). ACM, New York, NY, USA, 739-752. DOI: https://doi.org/10.1145/3064663.3064689
  13. Rob Thompson. 2016. Teaching coding to learning-disabled children with Kokopelli's World. In Visual Languages and Human-Centric Computing (VL/HCC), 2016 IEEE Symposium on (pp. 258-259). IEEE.
  14. Jeannette M. Wing. 2006. Computational thinking. Commun. ACM 49, 3 (March 2006), 33-35. DOI: https://doi.org/10.1145/1118178.1118215

About the Authors

Varsha is a third year Ph.D. student in Computer Science at the University of Colorado Boulder. She is advised by Shaun Kane, and her research focuses on exploring accessible technologies to empower people with disabilities.