By Maya Israel and Meg J. Ray

Our work in computer science (CS) classrooms focuses on studying strategies that support teachers who have students with learning and cognitive disabilities in their classrooms. This work reinforces that “CS for All” can, and should, include ALL learners, and shows that when CS activities are planned using Universal Design for Learning (UDL) all students can learn and find joy in CS education. UDL is an instructional framework that addresses learning barriers through flexible planning that includes multiple ways of (1) engaging learners, (2) representing instructional content, and (3) allowing learners to express their understanding. Students with disabilities are obviously diverse, with different strengths, challenges, and support needs. The table below includes strategies that our work has shown effective for a wide range of learners.

General Strategies
Strategy Explanation Example
Talk with students’ special education teachers about supports and accommodations The IEP has critical information. Unfortunately, it may not include goals/accommodations specific to CS. Special educators can help translate these supports to CS education. If students use text-to-speech software for reading, see whether that software is compatible with the tools and materials used in CS.
Work with your paraeducators Paraeducators can provide significant support to help students participate in CS activities. They have knowledge about student needs and supports, but they may hang back because of limited CS knowledge. Explain and model for them how you want them to assist in the classroom. When possible, give lesson plans ahead of time to the paraeducators so they know the big ideas of the lesson(s). Also, encourage them to provide verbal prompting during instruction. This “hands off” approach creates a physical space for students and will prompt students to implement CS problem-solving strategies.
UDL-based Strategies
Create flexible activities that allow students to engage in multiple ways Students can engage in CS activities differently and still have meaningful experiences. Consider creating a tiered activity wherein everyone does a base project with extension activities for students who complete the base project. In a robotics activity, create a menu of activities at different challenge levels. All students select an activity from the first challenge level, such as navigating a maze with movement commands and a loop. An extension option could be to refactor the pathway through the maze with fewer commands and multiple loops.
Provide students with project planning strategies Students often benefit from using planning documents and graphic organizers that help them plan the steps of their computational projects. Teachers can model the use of these documents in project planning and engage in collaborative “think alouds,” prior to students working on individual computational projects. Planning sheets help students plan out their ideas using pseudocode. For some students, this might include checklists of required components (e.g., use of conditional statements. The teachers can then check these planning documents and discuss steps with students. If students get stuck, they can then go back to these planning documents for support.
Encourage and teach collaboration Teach and practice collaboration strategies. It may be helpful to use conversation protocols and sentence starters to help students collaborate productively. Additionally, strategically seat students with disabilities next to peers without disabilities. Students may use sentence starters when they need help with debugging, such as “I want my sprite/program to…” and “Right now my sprite/program is…” They could also place a “Help” card on their desk if they struggle with seeking out peer support. Lastly, the  Collaboration Discussion Framework provides a guide for productive peer collaboration.
Use concrete representations tied to computing Many students with learning and cognitive disabilities benefit from starting with concrete representations when developing abstract concepts. Tactile and physical activities in the CS classroom provide this concrete introduction. Teachers can create cards with Scratch or JavaScript commands for students to use to give each other directions to move around the room. They can write a function for a popular dance move. Later, the students can create a similar program with sprites or turtle graphics in a visual programming environment.
Include relatable and interesting context Motivation plays a key role in learning and persevering through challenges. Tying CS activities to familiar concepts and personal interests will help students make meaning of new concepts. Exploring the shortest path (Dijkstra’s) algorithm: Some students go on road trips while others visit friends using public transit systems. Teachers can use this personal experience to create a CS activity related to finding the shortest path between nodes in a graph.