Daily Archives: March 11, 2017

Differentiated Instruction, Part 2

DIFFERENTIATION, part 2

2017-03-11

by Richard White

I was recently asked by our IT director John Yen how I handle differentiated instruction in the classroom: what strategies do I employ to try to ensure that students of widely varying abilities and skill levels are all appropriately challenged in my courses?

It’s a question that public school teachers face all the time, and independent school teachers arguably somewhat less. Technology teachers at both types of institutions have the biggest challenge here, because:

  1. there isn’t (yet?) a standardized curriculum path that has been developed and accepted around computational thinking and computer science, and
  2. there is a large, and perhaps growing, “digital divide” between those students who have nearly unlimited access to technology and training (even informal training via YouTube videos and the internet) and those who don’t.

My reply to John’s question took a little while to narrow down to a response to his questions, but here are my remarks, lightly edited for clarity.

=====Beginning of Email=====

  • That’s one of the million-dollar questions right now: How do I bring students with widely-varying experience into the curriculum?
  • The 2-million dollar question is: What CS curriculum do we want to offer/require? This varies depending on the school population, the goal of the curriculum (CS for managers? Coding for vocation?), the instructors available, the budgeting, salaries…
  • The 3-million dollar question is: Who is going to teach this curriculum? At this point, that is going to have an overwhelming influence on the other questions. CS people don’t do much with game design, and Game Designers don’t know a lot about Linux, and software engineers may or may not know about networking or control systems…

In Computer Science courses, I’ve found that I often have to provide up to five different kinds of differentiation, given at different times according to the idealized schedule given here.

Steps in Assigning/Conducting a Computer Science activity or project

  1. I prepare the assignment, preferably on paper or online so I can check that the idea and the process are fully articulated. NOTE: When looking through some online references a few years ago I stumbled upon an assignment format used by professors at Michigan State University, and I’ve adopted it for many of my CS courses. An example is attached here.
  2. During the preparation of the assignment, I try to prepare 1-3 Extension activities that are more complex or require application of the project to a new context. This is the first differentiation that I’ll use with some of my more advanced students who would otherwise complete the assignment too quickly. On the assignment I also often include a section called “Questions for you to consider (not hand in)” which ask the students to think about other aspects of the subject that may not be directly related to the assignment. These can be a nice jumping-off point for a conversation with more advanced students.
  3. Also for the assignment, I prepare a few “Notes on Getting Started” that are included with the instructions. These notes include suggested work strategies and/or questions that might help clarify the direction their problem-solving process should take. This is the second differentiation.
  4. Deliver the assignment (paper or online) in class, with whatever introductory remarks are appropriate. Students begin working.
  5. After students have been working on the assignment for some length of time, I’ll usually check in with them to see how things are proceeding so far. If there’s a stumbling block in the assignment that I’m aware of, I may bring it up at that time, and ask them what they think about it. I’ll usually write some amount of code on the board here, developing ideas with those students who have become stuck. This is the third differentiation strategy. ( Example: This video (narrated) of me working with students in class: https://www.youtube.com/watch?v=ZJ3z51n1Ndo )

    If I notice that a number of students are having difficulties with a concept or problem, I may prepare a small video for them going over the issue in more detail. I’ll post the video and send the link to them so they can take another crack at it. This is the fourth differentiation strategy. ( Example: This video, covering the topic of website permissions for some students’ websites: https://www.youtube.com/watch?v=sEES_N3ZQHk )

  6. Ultimately some students will need more individualized attention, sometimes down to the point of sitting down with them individually and picking through their code line by line. This is the most challenging and time-intensive differentiation strategy, and not something that I’m able to do with every student every time. Fortunately, if I’m doing my job well, I don’t need to do it very often.

=====End of Email=====

What strategies do you have for providing differentiated instruction for your students? What evidence do you have that those strategies are successful (or not?)

Is the Digital Divide something that needs to be addressed by CS teachers? If so, what steps do you take towards ameliorating that problem?