doug — off the record

just a place to share some thoughts


Problem solving or solving problems

Ahead of the CSTA Conference, I met up with a long time friend and we sat around chatting and solving all of the ills of the world.  If only anyone would listen to us.

The conversation eventually got around to problem solving with computer science.  Most computer science teachers will tell you that it’s the ultimate discipline for having students solve problems.  You see so much of the current thinking about visible thinking, collaboration, testing hypotheses, etc.

Then he made an interesting observation.  Do we, in fact, teach problem solving?

I thought it was an odd question.  Isn’t that what we do?

Then he pushed on.  We both agree that the best computer science book ever written was Oh! Pascal!  Just reading it made you want to program and solve more difficult problems.  But that’s not how many courses work.

Courses, and most textbooks, teach about the structure of the language.  So, you might have a unit or a chapter on the FOR structure or the IF structure or …

Then, to reinforce the learning, the student will see and then write a number of programs using that routine so that they can prove they understand.  The common wisdom is that you have to do that in order to understand how it works.  But is that really problem solving?  In the context that it’s usually applied, there’s no question about “how” the problem should be solved.  You just spent classroom time on the unit.  And, for the most part, the solutions that are submitted are much the same.

But what about the big project where the student evaluates everything – the tools, the interface, the data, the logic, and comes up with a unique solution that solves the problem?

I think that it speaks volumes to the concept of the major project given towards the end of the course.  But should there be more of this sort of thing?

It’s also a chasing your tail concept too.  Students can’t write the program until they understand the constructs of the language.

If nothing else, it does give you pause to think.



4 responses to “Problem solving or solving problems”

  1. As I read this post, I can’t help but think of process vs. product and the role that big projects play in the classroom. I also think of your examples of more basic activities (with no real problem solving) that then lead up to a big project that requires problem solving. I wonder, would daily in-class work help you determine who knows the skills, who doesn’t, and what to do next? Are little projects necessary? Could the assessment take place daily through your observations during student work time? After learning a couple of different skills, could they apply their knowledge through some mini-projects that lets you see what they’re retaining from before, what they understand, and where they may need more support? Would this allow for more problem solving during the PROCESS of learning? Could the need for a big project in the end, change?

    I say all of this and,

    1) I know very little about computer science.
    2) I’ve never taught any grade above Grade 6.

    I’d love to hear some thoughts from others. Thanks for making me think, Doug!

    Aviva

    Liked by 1 person

  2. As I read post about problem solving I wonder, what problem could my students solve? I teach a first year computer science class that starts at ground zero. When I taught chemistry I wondered what real chemistry could my students do? I was a research chemist for five years and have done “real research ” and understand what chemicals are involved. It would be hard to replicate that in high school.
    In cs it seems that there is a great deal of background one needs before you jump into solving real problems. Then there is the AP exam to consider. So I am at a loss to think of real problems.

    Liked by 1 person

  3. Makes me completely rethink how CS textbooks should be written. And classes taught. I’m always trying to find that balance that teaches the programming language and how to use that to solve problems.

    Liked by 1 person

  4. I tend to agree that most CS books (and the AP itself for that matter) focus not on problem solving, but on merely language structures. The concept, I suppose, is that in learning the language structures, students can develop problem solving skills.

    I completely disagree with this approach, and I have, for the last seven years, been focused on problem solving first. Then I fit language constructs into the loose framework. However, I find that I have to (re)train students from Day One, and the first year isn’t enough to actually move them forward enough. BUT… learning in my classes is like a exponential curve. By the end of the second year, they’re pretty damn good (and can switch language pretty easily).

    The result: Students are much better at solving problems, but they struggle a bit on the AP. And since I teach a four-year sequence of CS, I’m okay with that; I just recommend that students take the AP after Data Structures.

    Like

Please share your thoughts here. I’d enjoy reading them.

This site uses Akismet to reduce spam. Learn how your comment data is processed.