Improving Accessibility in Computer Science Education
In Massachusetts, 19% of students are protected by the Individuals with Disabilities Education Act (IDEA), however, only 10% of those students take part in Computer Science (CS) courses. Nationwide 14.4% of students receive services under IDEA, but only 8% take part in CS. This is likely in large part due to the lack of accessibility in Computer Science courses currently offered. Computer science courses have long focused on Java, a difficult starter language, and have been touted as AP and honors courses with rigid academic expectations and approaches. With the advent of courses like CSUnplugged and Exploring CS and AP CS Principles, the CS education community has taken steps to open courses to more students than ever before, but little has been discussed by way of accessibility. As a special educator for the last 13 years and CS teacher for the last 9, I have worked hard to improve the accessibility of CS through outreach efforts with the Computer Science Teachers Association (CSTA) as an Equity Fellow and AccessCSForAll through the University of Washington, providing professional development to teachers, and advising the College Board and Code.org. I often speak at conferences on ways to make CS courses more accessible to students with LBLD.
Using Block-Based Code
There are a few quick and easy ways you can make your computer science courses more accessible to students with Language-Based Learning Disabilities (LBLD). I like to start students who are new to CS with a block-based program like Scratch, Arcade MakeCode or MIT App Inventor. These programs allow students to access CS principles without having to focus on spelling or syntax, tasks that can be notoriously frustrating for students with LBLD. They do this by using prewritten blocks of code that fit together, allowing the user to focus on concepts instead of syntax errors. It is important to note that block-based languages are often not very screen reader-friendly, making them a poor choice for students who are blind or visually impaired.
Work Sample A. McGill (‘24) in Arcade MakeCode
Reducing Text in the Classroom
Another key strategy that I like to employ includes limiting text in the classroom. Doing this removes a barrier many of my students often face. As reading fluency and decoding unknown words can be areas of difficulty for students with LBLD, allowing them to access material in a way that is comfortable for them shows them that they can take part in this subject matter. I rarely use a textbook in my CS classes, and when I do it is supplementary only. When a text is needed, I use the HeadFirst series by O’Reilly because it is an interactive text with lots of diagrams. YouTube tutorials are also beneficial in reducing text. By allowing students to utilize a YouTube tutorial, they can see the programming task being completed and can listen to the information presented instead of reading it. With video tutorials, students can learn at their own pace, allowing them independence in their learning. Using independent tutorials also allows students with LBLD more time to process materials and new concepts. Giving students the time they need allows them to be successful and grow as computer scientists. A huge part of learning CS is learning how to use the vast resources at your fingertips, and by providing students with materials in a variety of modes, we as educators are putting them in control. CS is an ever-evolving field. As such, being able to search out new methods and techniques, while utilizing tried and true methods as well, is very important for any computer scientist.
Language Starting Point
Choosing a language for your classroom is another place to think about accessibility. If you are not limited by AP exams, considering this choice is worthwhile. For a text-based language, I often begin with Processing or p5.js. I start here because they provide a visual output, making a more concrete link between input and output. This is very useful for students who are starting out, as they can catch errors more easily. Oftentimes, Python is suggested as a starter language, but the concept of whitespace as an endpoint is very abstract, which can be a difficult piece to grasp. Ending a line with a semicolon, as they do in JavaScript or Java, is much more concrete and accessible. Another great place to start may be Quorum. Quorum is the first programming language that is built to be fully accessible. It is fully screen reader accessible and completely free online.
Development Environments
When thinking about text-based coding, what Integrated Development Environment (IDE) you use is often a personal decision. When students are just starting out though, I like to introduce them to the JetBrains suite of IDEs. They provide free educational licensing and have several features that make this very user-friendly for students with LBLD. This suite of programs allows for auto-completion of keywords and will spell check not only regular terms but also user-created variables. This is so helpful, as a number one issue in my CS classes is spelling. This can be incredibly frustrating for students who have worked hard on their code; their logic is sound, and the thing holding them back is a spelling error.
Further Resources
To learn more about accessibility in Computer Science education, feel free to check out the work that AccessCSForAll is doing, including helping to set up internships for students and providing ideas and materials. Their mailing list is also very helpful, and they are always more than happy to help brainstorm ideas for accessibility in your classroom. Every learner is different, and they have helped innumerable educators create accessible solutions. The CSTA is also working hard to ensure equity in CS education, and recently took over the work of CSForAll, another equity-focused group in CS education. Their conferences are a great way to learn, and they often have free webinars and meet-ups, along with an active virtual community.