2E. Adjust content, process, product and learning environment

Coach teachers in and model design and implementation of technology-enhanced learning experiences using differentiation, including adjusting content, process, product, and learning environment based upon student readiness levels, learning styles, interests, and personal goals. (ISTE, 2011)

One of the issues I have discovered in my computer science programming courses is the tendency of students to give up fairly early on challenging programming assignments.  In my post about developing problem-solving skills, I mention Miller’s article on Avoiding Learned Helplessness.  I found this ‘learned helplessness’ behavior in many of my computer science students.  These students would constantly ask me ‘Did I get this right?’ or ‘Is this what you wanted?’ for a particular exercise on an assignment, displaying a strong sense of powerlessness and helplessness.

Masks showing helpless and secure/safe masks
PixABay.com – Polarity Persona Opposites Drama Masks Duality

At first, I thought this may be a sign that the material was new to students and that it would dissipate in later weeks of the course.  However, I saw the same helplessness in some of my students even as we approached the half-way point of the course.  This troubled me greatly, as I had designed the early assignments to build my student’s confidence in solving more challenging problems.  Even more puzzling is the fact that most students scored fairly well in these early assignments.  Clearly, something was not working in my lesson plan.

This is where Miller’s article came to my rescue.  I decided to use Miller’s set of probing questions with struggling students to see if I could discover the fault in my instruction.

    • What else could you try?
    • Have you experimented with another idea/approach?
    • Why do you think the program is not working correctly?

I soon discovered that many of my students did not really understand the solutions that were submitted for the early assignments.  After asking one student the third question above, I got a puzzling look and an answer like ‘because it crashes’.  I asked why the program crashes, and the student pointed me to the line in the code where the crash ended.  I explained to the student that even though that’s where the crash ‘landed’, the problem is probably somewhere else in the code, and that the student would have to debug and step the code to discover the ‘real’ problem causing the crash.  Again, I got a puzzling look from the student.  I asked how the student had done so well on the early assignments without knowing how to ‘fix’ crashes like this one.  The student informed me that when this happened, another student or tutor would point out the exact line at fault and even give the student the fix for the crash.  I pointed out to the student that while this got the student ‘past’ the crash, it did not help the student learn the skills to fix future crashes.

I had several inquiries with different students that followed a similar path.  My programming course is a 200 level course in which students are expected to have completed the introductory programming courses.  One of the skills in the introductory programs is learning how to debug code by setting breakpoints, stepping through code, inspecting local variables and the stack trace.  Clearly, this was not happening for all students.  I decided to give a ‘mini’ tutorial on debugging in my first class to help students learn these essential skills.  I have since included this practice in all of my programming classes, and seen far less student helplessness that I witnessed in the past.  I then circled back with my fellow faculty and shared this technique as a best practice to be used in all of our department’s programming courses.

References

<< Previous: 2D  Next: 2F >>