Differentiation is a scary word for a lot of teachers. Most of the time, it is synonymous with “more work.” Teaching is hard. Teaching computer science is even harder. You might think, “we have to differentiate our computer science classes now?!” However, we all know the outcome when we differentiate our lessons – we are able to meet the various needs of our students, keep all of them engaged, and increase their intrinsic motivation by achieving success.
When I started teaching computer science 4 years ago, I had no idea what I was getting into. I was a special education science teacher who only had basic training in coding from programs run by Computer Science for All (CS4ALL), which is a NYC initiative to expose all students to computer science. The first year of teaching was somewhat easier than I expected because I had very motivated students who wanted to pursue computer science related career paths. The years after that were a different story. I had all kinds of students who had different knowledge backgrounds enrolled in my classes, and it was hard to keep them on the same page. Some students would complete a project within 30 minutes, while others would take multiple days to create a simple script using if/then blocks on Scratch. The levels of the students’ understanding were all over the place.
However, this is the case in any class of any subject area. And we, teachers, make it work. We work our magic to help them understand what we’re teaching. When that “light bulb” moment happens, everyone feels the rush (students and teachers alike) that we’ve conquered something and did it together.
I am here to share the differentiation strategies that I’ve used in my computer science classes so that we all can experience that exhilarating moment a little more often. Take it from me; this doesn’t take a lot of effort!
Differentiation can take many forms. According to Carol Ann Tomlinson, “teachers can differentiate at least four classroom elements based on student readiness, interest, or learning profile.” Those four elements are content, process, product, and learning environment. For this series, I will share strategies on how to differentiate the first three elements in a CS classroom.
Differentiating content means differentiating how we are presenting the material to the students. There are several strategies that I often use.
Pictures in PowerPoint slides may not be all. Color code the code itself! Any block-based programming languages do this already. If you are teaching any text-based languages, follow the color-coding format in your presentation that your coding editor uses. For a simple activity, print out a snippet of code and have groups of students color different parts of the code! Have the groups compare and contrast their work and discuss the differences.
Another way to include visuals in your lesson is by using a flowchart. Using a flowchart is a great method to have them plan out their program or even debug. During one of the CS4ALL training sessions, I learned a really cool trick to create a flowchart: use sticky notes to organize or rearrange the algorithm of the program!
Digital fatigue is real. It’s really nice to get off the computer once in a while and refresh your brain. One of my favorite unplugged activities was creating a PB & J algorithm. After each group writes their own algorithm, I act like a robot and show them how their algorithm would run. (Talking like a robot adds the panache to your lesson, and the whole class will start giggling!) If you are looking for resources, [https://www.csunplugged.org/en/](CS Unplugged) is a great website full of lesson plans, activities, and printables. Plus, they are all free!
YouTube is great, but why not put in the real “You” in YouTube? Use websites like Loom or Google extensions like Screencastify to record yourself when coding. For some reason, students hearing your voice and/or seeing your face on a YouTube video works wonders! If you are too afraid to create a public YouTube video, you have an option to keep it “unlisted” (ie. only the people with the link are able to see the video).
Differentiation doesn’t have to take extra effort. For example, don’t put too many words on a presentation slide. Use a bell-ringer activity to review the previous lesson. Make fonts bigger so that all students can see better. Give enough space between lines. Have a higher-level student explain the process to a lower-level student. You guys probably already do this in your classrooms!
Despite all the strategies listed above, the best strategy of all is to take it slow. Take time to review vocabulary and concepts. And then practice, practice, practice.
I hope these strategies can help you reach CS students of all levels!
Special Education/Computer Science high school teacher