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 thoughts on “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. Len Klein says:

    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. Brian Sea says:

    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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s