How Might I Proactively Differentiate My CS Instruction to Reach All Learners?

The CS4ALL team is committed to reaching all students, including students with disabilities and English language learners. Universal Design for Learning (UDL) is a planning and teaching framework developed by CAST that proactively thinks about all students rather than doing so after the fact. We can ensure meaningful computer science (CS) learning is accessible to all students by applying the three UDL principles of representation, expression, and engagement.

Multiple Means of Representation

Multiple Means of Action and Expression

Multiple Means of Engagement

Provide options for perception

Provide options for physical action

Provide options for recruiting interest

Provide options for language, mathematical expressions, and symbols

Provide options for expression and communication

Provide options for sustaining effort and persistence

Provide options for comprehension

Provide options for executive functions

Provide options for self-regulation

Examples for CS

Examples for CS

Examples for CS

This guide applies the three UDL principles to three stages in the preparation process for teaching CS:

  • Evaluating CS education platforms and curricula
  • Planning a meaningful CS learning experience
  • Receiving and giving feedback on the learning process

We also briefly summarize assistive technologies that are built into everyday devices.

Evaluating CS Education Platforms and Curricula

Like all other content areas, there is no one solution or tool for making CS accessible to all learners. A good starting point is to evaluate what is currently available and what is already being done in the classroom through a UDL lens.

    • The user interface (UI), or how the student interacts with the computer, can affect how a student learns. When evaluating an application, determine what aspects of the UI will assist the student and which could potentially be a challenge. Some examples: block or text-based programming, device types, multiple colors, sound, and so on.  
    • The Web Accessibility Initiative provides web content accessibility guidelines to help meet the needs of users. In addition to these guidelines, content providers include additional accessibility features such as these:
    • Often online curriculum and tools provide additional instructional materials to support student learning. When evaluating these resources, keep the following in mind:
  • It can be just as valuable to evaluate the work done in preparing for a CS lesson. Drawing on prior experiences and best practices in teaching other content areas can provide guidance when creating materials, determining pacing, and setting expectations.  
    • Materials: When preparing material for a CS lesson, it is important to have the material accessible to all learners.
    • Pacing: Following the concept of decomposition or task analysis, it is important to identify all the steps necessary to completing a lesson or activity. Identify the minimum steps or number of tasks to success. Then allow for extension activities if students want to go further.  
    • Expectations: CS projects are often open ended and allow for a lot of creative freedom. For some students this can be encouraging, but for others it can be overwhelming and frustrating. It is important for students to clearly understand what is expected of them and how it will be evaluated. Project rubrics, checklists, or activity cards help provide students with clear expectations.

Scratch Activity Cards are a good example of content that addresses all learners through images, sample code, and text. They provide a breakdown of activities at appropriate pacing and shows the final outcomes.

Planning a Meaningful CS Learning Experience

To plan a meaningful experience for all learners, it is important to identify strategic opportunities for implementing the UDL principles.

  1. Setup
    1. Prior Knowledge: It is important for teachers to determine what they know and what students know prior to teaching CS. Teachers should review, practice, and solve coding puzzles and tutorials before instructing the class. In addition to building the teacher’s understanding, this helps identify where additional support or content may be needed. Showing a completed sample project created by the teacher is a great way to build student excitement. If there are paraprofessionals or teacher assistants, they should be encouraged to prepare as if they were teaching the class. For students, conduct a pre-assessment or survey to find out what they already know. Finally, it is important to dedicate instructional time for students to practice logging into accounts, saving work, and other computer literacy skills.
    2. Student Interest: Finding out what students like and do not like can go a long way toward creating activities that keep all students engaged. Interest inventories and questionnaires help to identify relatable, culturally relevant topics for projects, and they help the teacher identify student strengths.
    3. Materials: CS lessons can be online or unpluggedThis provides a range of possible materials needed throughout the class. In addition, some students may need more support or resources. Management and maintenance of these materials can be time consuming. Strategies for classroom organization, material checklists, service manuals and student jobs can help support a lesson.  
  1. Grouping: CS lessons offer numerous opportunities for collaboration and group work, such as pair programming and assigning of roles based on student strengths and needs. Make sure to teach or review collaboration in the classroom to help build communication, cooperative learning, and social skills. Foster an inclusive computing environment.    
  2. Managing behaviors: When working on an activity or task, students can experience a number of feelings and emotions. Offering students strategies for addressing those feelings helps them self-regulate. For example, provide debugging strategies to address frustration, an opportunity to share projects to express excitement, and task cards to keep students engaged.  
  3. Assessments: Similar to other content areas, there should be a variety of assessment types when teaching CS. Formative assessments, such as using signals or exit slips, allow teachers to check in with the class and students to provide immediate feedback. Formative assessments, such as checklists and rubrics, allow students to keep track of their progress. Summative Assessments can include prototyping and presentations. It is important to remember that all assessments are clearly explained to students in advance and offer multiple ways of expression. Go to CS Teaching Tips for more ideas.
  4. Celebration of Student Work: Students are proud of the work they do and the projects they complete. Providing opportunities for students to share and celebrate their work helps to build an inclusive classroom. Using bulletin boards, class platforms such as Google Classroom, and events are perfect opportunities for all students to show what they learned.
  5. Breakdown - Ending the CS lesson in an organized fashion is just as important as starting it as such. Many times students are engaged and focused on an activity and project. Stopping abruptly can be frustrating and upsetting. Strategies such as posting a schedule, counting down before a break, and giving a time warning can help prevent negative behaviors. Do not forget to employ similar student roles for breaking down materials. 

Receiving and Giving Feedback on the Learning Process

There should be multiple opportunities for students and teachers to provide feedback on activities, procedures, and resources. Not only does it provide ownership of the content, but it helps develop the ability to communicate ideas and concerns specific to CS.

  1. Student Feedback: Students should have opportunities to give teachers feedback on what worked and did not work. Types of feedback include exit slips, coding or design journals, reflection, and teacher conferences. Students can provide feedback on the work as well as their own experiences working in groups, using specific devices, and so on. Students should also provide suggestions for improving upon the activity and experience. Encourage students to use content-appropriate language while providing different mediums (that is, text, draw, or circling images) to express feedback.
  2. Teacher Feedback: It is just as important for teachers to provide students with feedback on their work. Establishing classroom norms for how and when feedback is provided helps students with the iteration process often seen in CS. Teachers should also provide feedback to developers of the CS education platforms and curricula with what worked and did not work.  Providing specific concrete examples and recommendations based on the student and teacher experience. It is important to set reasonable expectations on how and when content providers will respond. It may also be beneficial for students to experience providing feedback to content providers. 

Assistive Technology

Assistive technology includes assistive, adaptive, and rehabilitative devices and software that provide people who have disabilities with greater independence by enabling them to perform tasks that they were formerly unable to accomplish.

Operating systems and devices are beginning to incorporate assistive technology into the system designs. Apple provides accessibility features in its OS and iOS, Microsoft provides ease of access, and Chrome has several extensions such as SpeakIt! and Google Translate.

  1. Text to Speech
  2. Speech to Text
  3. Translator
  4. Switch Access
  5. Others


  • Proactively plan to engage all students in meaningful CS learning experiences by utilizing the three UDL principles:
    • Multiple means of representation
    • Multiple means of expression
    • Multiple means of engagement
  • Give students an opportunity to provide feedback on how tools and curricula worked for them so you can continually iterate your instruction to meeting the needs of all learners. And remember to give them multiple means of expressing this feedback.
  • Take some time to give feedback to the developers of the CS education platforms and curricula you use. The challenges in your classroom are opportunities for developers to improve the experience for all learners.
  • Assistive technology is being built into more and more devices. Take some time to explore and use these tools.