Accessible Computer Coding

What is Computer Coding?

Computer Programming, or coding, is the art and science of making a computer do what we want it to do. Programmers "code" when they use special computer languages to create a set of instructions that can be carried out by a machine in order to perform a specific task or tasks. In essence, coding creates inputs (instructions) that produce outputs (actions). A good way to think of this is by considering a familiar household object, a microwave. Punching in a cooking duration and pressing the start button is an example of an input. This input triggers the action, or output, of releasing microwaves for a set time that will heat your food, the desired outcome. Programming is the same thing. A coder specifies a program, or a set of inputs, designed to produce specific outputs creating a desired outcome, for example, an app for your phone, a website that looks a certain way, or an online learning management system.

Computer code is behind the technology we all use and is becoming an increasingly prevalent area of study in schools. But can computer coding be made accessible? The short answer is yes. This chapter will focus on how coding is being taught in an accessible fashion by leveraging accessible methods, tools, and programming languages and why doing so is important. The terms code/coding and program/programming will be used interchangeably and refer to the process of developing computer software. Computer science (CS) will also be used and refers to the field of education where coding is primarily taught.

Why is it Important to Teach Computer Coding Accessibly?

Computer science education (learning to code) is an important priority as our economy becomes increasingly technology based. A new report from (Burning Glass, 2016), a job market analytics company, found that there were seven million job openings in 2015 in occupations that required coding skills. Per the Bureau of Labor Statistics, employment of computer software and information technology occupations is projected to grow 13 percent from 2016 to 2026, faster than the average for all occupations. Employment of software developers in particular is projected to grow 24 percent from 2016 to 2026, much faster than the average for all occupations. It is expected that in 2020 there will be 1.4 million computer programming jobs in the U.S., but only 0.4 million qualified workers.

In his (State of the Union Address, 2016), President Barack Obama commented on the tremendous growth in coding-based fields, stating that "in the coming years, we should build on that progress, by offering every student the hands-on computer science and math classes that make them job ready on day one." Society needs coders from diverse backgrounds, including those with special needs. Teachers are our most powerful agents in preparing students for this future.

In addition to the tremendous career opportunities in computer science, the study of programming has been shown to strengthen and improve academic performance for all students with added benefits for students with learning disabilities (Stanberry & Raskind, 2009).

For one thing, learning to code builds important life skills such as organization, higher order thinking, self-esteem, socialization, and teamwork. These skills are intrinsically difficult for many children with disabilities such as Attention Deficit Disorder, Obsessive Compulsive Disorder, and Autism, which affect 1 in 68 school-aged children, according to the Centers for Disease Control and Prevention. Per the National Center for Learning Disorders, "Many individuals with learning disabilities (LD) suffer from low self-esteem." Coding builds confidence in one's ability to learn and create, as well as a sense of pride in the creation of something tangible, as opposed to other types of learning, which can cause confusion and frustration in students with learning disabilities.

According to Beth Rosenberg, parent of an LD student and founder of Tech Kids Unlimited, an organization that is pioneering the learning of code for students with disabilities, coding gives LD students "real world skills," and "it turns them into producers of digital culture." It also interests them and makes them more willing and "likely to socialize," building the important skill of teamwork and socialization that is often lacking in the LD student population. Rosenberg went on to comment that technology learning also appeals to many LD students, including those with autism, who are especially receptive to concrete, non-abstract concepts (Vidcode, 2017).

Independence is also a skill taught through coding and coding clubs. "Adolescents with autism can benefit from transition services that promote a successful maturation into independence and employment opportunities of adulthood," according to Autism Speaks, a leader in autism help and awareness (Vidcode, 2017).

However, as beneficial as learning to program can be for academic success and career opportunities, those with disabilities are vastly underrepresented. While it is estimated that seven million job openings in 2015 were in positions that require coding skills (Dishman, 2016), research shows that persons with disabilities still experience barriers to computer technology that impedes learning how to code (i.e., barriers to providing computer input, interpreting output, and reading supporting documentation) (Burgstahler, 2012). This research indicates that the lack of representation is not due to a lack of student ability, but rather it is due to the lack of teaching computer science in a way that is accessible for all learners. Fortunately, some groups are doing just that, and so can you.

Tools and Resources for Teaching Computer Coding Accessibility

According to recently released analysis from the Georgia Institute of Technology, 54,379 high school students took the Advanced Placement (AP) Computer Science exam in the United States in 2016, which sets a new record. That number reflects a 17.3% increase over 2015 and has been averaging a 20% increase each year for the past five years (Georgia Tech, 2016).

And while that is a promising number, it is important to note that the college board does rigorously track people with disabilities. Further, none of the existing curriculum for Computer Science Principles, nor the new exam, are accessible. Another reason why it is so imperative that tools and resources are utilized when learning and teaching computer coding accessibility.

Many organizations, clubs, businesses, teachers, and individuals are bringing coding instruction to the classroom. There are also "boot camps" and summer programs that teach learners of all ages how to program outside of school hours. The National Science Foundation is promoting computer science programs in K-12 education to try and mitigate any shortages in the job market.

Text-Based Languages

For teachers interested in more advanced computer science instruction, out-of-the-box accessible text-based programming languages may be of particular interest. Quorum is one of these languages. Funded under AccessCSForAll and led by Andreas (Stefik et al., 2011) of the University of Nevada, Las Vegas, and Richard Ladner of the University of Washington, Quorum is an evidence-oriented programming language (Stefik and Siebert, 2013), meaning that the vocabulary and syntax of the commands are based on actual research and observation of programmers and what seems intuitive.

Currently what makes Quorum accessible is that the language itself is simple and easy to learn and understand. The Quorum development environment is based on universal design principals including visual, auditory, and tactile design elements such as a custom vibration library that provides various kinds of vibration events and patterns. The most recent release, which came out on July 6, 2018 contained even further capabilities for doing a larger variety of tasks accessibly. Notably, a way for students to request images from the Skynet telescope network or other online libraries was added. This work was done in collaboration with the University of North Carolina and the University of Chicago. Android support was also added and included a new vibration control library to make physically interactive graphical applications. That piece was worked on in collaboration with Jenna Gorlewicz from St. Louis University. Work was also done on accessible input and output. One of the major problems in the computer science field is that there are often highly graphical applications that even if coded accessibly, produce outputs that are inaccessible. The work the Quorum team did attempts to make not just the input of programming accessible, but the output as well.

Richard Ladner and Andreas Stefik are also partnering with Washington State School for the Blind, the Texas School for the Deaf, Landmark School in Massachusetts (School for LD students), The College Board and Code.org. Through a newly awarded AccessCSforAll grant, they will be developing an accessible version of the AP Computer Science Principles course and doing professional development for teachers at schools that focus on teaching students with disabilities. From July 9-13, they conducted a professional development workshop for 13 teachers of blind students as well as two additional one's next summer targeted for teachers of the deaf and teachers of LD students. The curriculum is currently in Beta and is expected to be public in December, 2018.

AccessCSforAll is a program that aims to create a researcher practitioner partnership (RPP) that includes practitioners at schools who serve students who are deaf, blind, or learning disabled, as well as schools that serve mainstream students. The project seeks to develop resources for computer science teachers to include students with disabilities in their classes and showcase solutions for universal design in tools, curriculum, and pedagogy that appeal to general education students as well as students with disabilities. The project will build a community that is focused on accessible K-12 computer science education.

Block Languages

This K-12 computer science phenomenon has been fueled in large part by the popularity of block-based programming environments such as Alice and Scratch, which allow students to code by dragging and dropping what look like digital puzzle pieces. Block-based languages are very different from their more advanced counterparts that are considered text-based languages. Text-based languages like HTML or Python require programmers to write strings of code that can be more complicated and confusing for those new to the discipline. However, block-based languages are often considered the precursor to text-based languages like JavaScript. The logic behind blocks is that they're immediately engaging, and there's a low barrier to entry. Even very young children can begin a form of programming right away. However, block-based languages are not accessible for students with disabilities in their current form.

The Blocks4All prototype is one such modified programming environment that uses a touchscreen tablet computer. In a study, Blocks4All was used successfully by young children who are blind or visually impaired to control a cartoon-like physical robot named Dash, while enjoying their programming experiences. Here is a YouTube video that describes Blocks4All. Blocks4All is universally designed so that all children – whether blind, low vision, or sighted – can compose programs that control a robot.

Hybrid Methods

While block-based programming languages are engaging for early learners and easier to learn, studies by David Weintrop at the University of Chicago (and now the University of Maryland) have shown that novice learners who worked with a text-based programming language had small, but measurable, learning impacts on high-school aged students in the classroom (Weintrop and Wilensky, 2015A). If an educator's goal is to introduce students to computer science and foster critical thinking and problem-solving skills, then the block-based language approach is appropriate. However, if the goal is to help students develop the computer skills needed to pursue a career in the programming field, a hybrid method such as Pencil Code may be an approach. Hybrid methods allow students to switch seamlessly between blocks and text. In another study presented at the American Educational Research Association (AERA) meeting, Weintrop found that students in those environments will often move back and forth between the two modes of programming, thus showing the effectiveness of the dual modality approach for welcoming and supporting novices while keeping more experienced programmers engaged (Weintrop and Wilensky, 2015B). However, it is not yet clear how effective Block-based vs. Text-based languages truly are. In the paper (Weintrop and Wilensky, 2017), they explore how block-based programming compares to text-based programming with respect to learning outcomes, attitudes, and interest in the field of computer science.

Robots

Studies have shown that the use of robots in teaching computer science can be very effective. The University of Central Florida experimented with this method of teaching computer science to students from special populations such as those with critical illnesses, intellectual disabilities, and autism. They used the Dash and Dot system that uses a robot and block languages. The robot, named Dash, responds to voice commands, dances and sings, and also navigates objects. The challenge is that children have to use block languages to program Dash to do things. Using Dash, researchers at the University of Central Florida encouraged students to first use their bodies to plan their programs. They could adopt the robot's perspective by acting out the robot's behaviors. For example, a maze was created for students to solve using Dash. In the planning phase, students walked through the maze themselves, wrote down their steps, and then used the information to program the steps for Dash to take in the maze (Taylor, 2017).

Other tools

Another approach that uses technology to teach computer science to students with disabilities is Apple's Everyone Can Code curricula. With teacher guides and lessons, students learn the basics of computer programming using an iPad with Swift Playgrounds which lets them use real code to solve puzzles and control characters. The program is compatible with VoiceOver, which is screen-reading technology for people with vision impairments, so students can learn to code without having to see the screen. For students with hearing disabilities, FaceTime can capture expressions and gestures so that they can fully interact with the program. Additional features like Type to Siri and devices like made-for-iPhone hearing aids can also help deaf students use Everyone Can Code.

Ways to Teach Accessible Computer Science

An effective way to teach coding is to start with a basic overview. Coding involves three basic elements: 1) events, 2) sequences, and 3) loops. An event is something that happens that triggers something else. A sequence is a series of actions. A loop is a repeated sequence. A good example of all three would be getting ready for school. The event might be an alarm clock going off. The sequence of events is the steps involved in getting ready. A loop is the repeated steps in brushing one's teeth or combing one's hair. Once you've introduced the concept, there are many ways to teach it.

The Unplugged Approach

With unplugged activities, teachers don't have to prepare any technology and can engage the entire classroom at once. Depending on students' needs, these activities can be especially good for children with special needs. Code.org, promoter of the Hour of Code, offers many courses that teach important programming concepts. Some of the activities don't require a computer. Here are a few examples from their extensive curriculum that has courses for K-12 and beyond.

For Loop Fun

In this exercise, students pair up to learn about starting value, stopping value, loop intervals, and counter values. Students roll dice to move down a number line. (Download instructions and worksheets here.) By using dice (which act like a random number generator) students can randomly select the start, end, and interval for the loop. The number line shows the students how the loop will start and where they will end along with the numbers the loop will land on based on the interval. This activity illustrates what to expect when students program the same loop with a computer.

Getting Loopy

This exercise requires space for dancing/moving. Students watch (or do) a series of dance moves and identify the loop. Here is a short video that describes Get Loopy. (Download instructions here.) Making a computer repeat a task is what computers do best. When students repeat a series of steps themselves, they learn how computer loops work. Even if the moves are complex, a computer will perform them exactly the same each time through the loop.

The Online Approach

James Denby and Robin Ulster are the founders of IdeaDriven Education. They have hand-picked online activities to introduce programming to students. The exercises introduce HTML and CSS, as well as block-based languages. Also included are lessons for older students, including high-school age and beyond. Join edWeb.net to see the list.
Note that not all programs work on all devices. For example, Hopscotch is only for iPhone and iPad, and Scratch doesn't work on mobile devices – although ScratchJr, which is not on the list, does.

Denby and Ulster cautioned that it isn't enough to have the students just follow the online instructions in the exercises. To really absorb the meaning of what they are learning, students need to use the knowledge of the underlying concepts to solve problems. Teachers can help by presenting students with challenges. For example, to students who have learned a few lessons in Scratch, present these challenges:

  • When the sprite is in the top 25 percent of the screen, make the sprite say, "I like it up here."
  • When two sprites collide, make one of them say, "Excuse me."
  • Make the sprite glide around the edge of the screen using only the Glide and Turn blocks.
  • Make the sprite move in a rectangle using only the Move, Turn, and Repeat blocks.

Denby and Ulster recommend that teachers move around the classroom and have students explain what they are doing and which concept (event, sequence, or loop) they are using. They suggest putting students with special needs with other students (or each other) to spark collaborative problem solving.

Another option for online curriculum is Bootstrap World which has online courses in programming and focuses heavily on accessibility. The programming environment is screen-reader friendly so that a blind programmer can navigate easily through complex programs using keyboard navigation coupled with oral descriptions/renderings of the program text and structure.

The user interface (UI) is divided into three regions: (1) the toolbar, (2) the interactions area, and (3) the definitions area. Each button or field on the toolbar has been labeled appropriately: each control announces itself with a descriptive name and the appropriate keyboard shortcut.

The Bootstrap initiative is funded by the National Science Foundation and the Entertainment Software Association (ESA) Foundation, as well as through the contributions and support from Sina Bahram, President and Founder of Prime Access Consulting. Learn more about Bootstrap on their blog.

The Robot Approach

For educators interested in incorporating methods of teaching accessible computer science using a robot with LEGO mindstorm, or perhaps using the Dash and Dot system, it can be helpful to start with demonstrations incorporating the "think aloud" model. Begin each lesson with basic actions to show what robots are capable of while explaining the thought process. Teach the robot a single, simple behavior like how to turn left and describe the thought process. Then give the students a challenge such as making the robot turn around six times. Provide a few questions to guide their thinking as they solve the challenge. As students become comfortable solving one challenge, teachers can introduce other behaviors in the same fashion. Not only will this method help children to distinguish steps taken to solve problems, but it will also help them learn to be better communicators and reveal how their minds work when solving challenges. It also gives educators an easy way to intervene and correct them at the exact moment they need help.

Once students get comfortable with the basic programming for the robots, a fun way to increase the complexity of the challenge is to encourage the students to use their own bodies to plan their programs. For example, they can act out the behaviors of the robot and use step-by-step prompts to make the robots do what they want.

One of the most important things to keep in mind when teaching coding in this manor, especially for students with disabilities, is to design and modify tasks for specific students as needed and to include a balance of direct instruction and strategy instruction. Strategy instruction involves teaching children the engineering design process. Methods include:

  • Provide children with information or explanation about the robot's behaviors, programming blocks, or procedures specific to the task
  • Use redundant text
  • Provide an advanced organizer to illustrate the relationship between what students are about to learn and what they have already learned
  • Scaffold tasks from easy to difficult

During instruction, teachers can facilitate discussion about the coding and the feedback provided by the robot (i.e., its execution of the code). Methods include:

  • Provide instruction in small group settings
  • Encourage children to ask questions
  • Provide strategy cues (reiterate the engineering design process)

There is no right or wrong way to teach computer science in an accessible manor; use the methods that work best for teacher and students.

My Robotic Friends

This is a one-hour group activity adjustable for all ages. Students convert real-world activities into instructions and practice coding with symbols that control an actual robot. They learn the need for precision in coding and practice debugging code. (Download instructions and handouts here.) Programing a real robot do follow instructions is extremely engaging for students. Instead of just running the program and looking to see if it returns the correct result, the robot physically follows the programed instructions. It moves, picks up and drop objects following the code the student wrote. If anything is wrong with the sequence of steps programmed, the robot will carry out the instructions exactly as they were written. Regardless if they lead to the result that was intended. This allows students to see first-hand how one mistake can cause the robot to crash into something, drop something or try to pick up something that isn't there. In addition, having something physical that a student can see and touch is beneficial for students with different disabilities. For example, students who cannot see can feel the robot as it moves and picks up and drops objects, and they can determine when and where something goes wrong during the sequence.

Benefits and Challenges

Learning to code is becoming increasingly prevalent in school curricula. From after-school clubs to dedicated class periods, coding and computer science programs are occurring in schools worldwide. But like all things new and innovative, teaching computer science, especially in accessible ways, does not come without challenges. Of course, there are tremendous benefits as well. This section will explore both, so educators can understand the landscape as they consider incorporating computer science into their learning plans.

Challenges

Since accessible computing is a relatively new field, teachers face the added burden of not only creating lesson plans around software development, but also setting up a computer lab with an accessible programming environment. As mentioned in the section on resources available for teaching accessible computer science, block-level languages (like Blockly) are popular among teachers and students who are new to programming because they are easy to program and results are immediate. These languages, however, may be challenging for students with both visual and physical disabilities. That doesn't mean there aren't accessible options, but it takes some research to find or modify them to fit the needs of students with special needs. In a similar vein, as technology companies develop graphical user interfaces for programming, students with visual impairments may face challenges using those interfaces, as they tend to be visually oriented and not accessible.

Additionally, some of the more complicated developer environments can be daunting for younger students or students with cognitive disabilities. Teachers also need to be considerate of how they display information in teaching kids with disabilities. For example, an instructor presenting a pictorial representation of an algorithm may also need to provide a textual and/or auditory description of that material for students with visual impairments. The good news is that multimodal representation of an algorithm with images, text, and sound can benefit all students regardless of disability. That approach can require more work for the educator, but is ultimately a better solution for all.

Benefits

While the challenges might seem daunting, the benefits are numerous. Coding builds important life skills such as organization, higher order thinking, self-esteem, socialization, and teamwork, among many others.

Independence is also a skill taught through coding and coding clubs. "Adolescents with autism can benefit from transition services that promote a successful maturation into independence and employment opportunities of adulthood," according to Autism Speaks, a leader in autism help and awareness (Autism Speaks, 2018).

Additionally, learning computer science has shown to improve (Tynker, 2018):

  • Math: Coding helps students visualize abstract concepts, lets them apply math to real-world situations, and makes math fun and creative.
  • Writing: Students who code understand the value of concision and planning, which results in better writing skills. Many students even use Tynker as a medium for storytelling.
  • Creativity: Students learn through experimentation and strengthen their brains when they code, allowing them to embrace their creativity.
  • Confidence: Parents enthusiastically report that they notice their child's confidence increase as they learn to problem solve through coding.
  • Focus and Organization: As they write more complicated code, students naturally develop better focus and organization.
  • Resilience: With coding comes debugging – and there's no better way to build perseverance and resilience than working through challenges.
  • Communication: Coding teaches logical communication, strengthening both verbal and written skills. Think about it: learning code means learning a new language.

Furthermore, developing skills in computer science helps prepare students for the adult world by instilling:

  • Life Skills: Coding is a basic literacy in the digital age, and it's important for students to understand and be able to innovate with the technology around them.
  • Career Preparation: There's a high demand for workers in the tech industry; mastering coding at a young age allows students to excel in any field they choose.

Final Thoughts

Computer science teachers and those interested in introducing computer science into their classrooms or learning plans need to incorporate accessible workflows into their curriculum. From teaching the initial concepts and design in a multimodal way to providing an accessible development environment, the curriculum must give all students the opportunity to participate and excel.

With federal government support and increased demand for a workforce with coding skills, computer science is one of the most important growth areas in education. Now with the Section 508 Refresh aligning with Level AA Conformance to Web Content Accessibility Guidelines (WCAG) 2.0, computer software needs to be accessible, as well as the development environments to build accessible programs.

A critical takeaway behind the motivation to ensure that computer science and programming are accessible is that persons with disabilities must be part of the creation of assistive technologies and solutions designed for them. By making programming accessible, we guarantee that an audience that may benefit enormously from having access to technology is able to use this access to help devise solutions most appropriate for their own needs.

Here are some things to keep in mind:

Educators

  1. Ensure that pictures, diagrams, flowcharts, and the like are accessible by having alternative representations available for students who may need them.
  2. Familiarize yourself with Quorum and the accessible IDE SODBeans to determine if these tools are applicable to your students. Sodbeans is being upgraded to a new, even more accessible system called Quorum Studio in December, 2018.
  3. Ensure all tools and collaborative environments surrounding the coding experience are accessible.
  4. If the desired coding tool/environment is not accessible, consider writing the author to see if anything can be done to make it more accessible.

Parents

  1. Find out what accommodations the teachers have available that can meet your child's needs regarding an accessible computer environment.
  2. Identify various accessible tools that your child could use and discuss them with teachers and/or administrators.
  3. Find out if the accessible development environment can be installed on a home computer and if your child can access the accessible workstation at school if extra time is needed to complete programming projects.
  4. If the school uses any software that is not fully accessible, consider working with your child and school to approach the developer to request the accessibility features needed.

Students

  1. Learn everything you can about your assistive technology, including how to modify it and build simple scripts to interact with inaccessible components.
  2. Inquire ahead of time what tools will be used in the classroom so you can become familiar with them at home.
  3. Research any workarounds others have done to make the development environment more accessible. It may be worth finding out what tools coders use as you may find some accessibility plugins (such as the Bootstrap accessibility plugin) that could save time and effort.
  4. Write to the author of your development environment, and ask him or her to improve its accessibility if needed.

References:



Additional Resources

Ideas that work.The DIAGRAM Center is a Benetech initiative supported by the U.S. Department of Education, Office of Special Education Programs (Cooperative Agreement #H327B100001). Opinions expressed herein are those of the authors and do not necessarily represent the position of the U.S. Department of Education.

HOME | BACK TO TOP

  Copyright 2017 I Benetech

Log in with your credentials

Forgot your details?