##### All Topics for this Forum

## Topic: "How do we transition from general problem solving to CT?"

### Topic Posts

### Topic started by: Katie Rich on 3/7/16

In the "Computational Thinking in Elementary School" thread, we discussed the the differences between general problem-solving strategies (like breaking a problem into smaller parts) and strategies that are specific to computational thinking (like breaking a problem into parts that can each be addressed by a different algorithm or previously developed computational solution). There seemed to be general agreement with the idea that general problem-solving ideas used in many academic subjects have synergy with CT, but in order to be CT, users of the strategies must be applying the strategy to a computational solution.

(Please feel free to protest if you don't agree with the above!)

I walked away from that conversation feeling that developing CT curricula in elementary school will likely involve finding ways to start with the general problem solving strategies kids already use, making the relationship to CT clear to teachers, and defining pathways from the general strategies to CT-specific activities, eventually making the relationship to CT clear to students.

What are some ways we might facilitate this transition?

### different problems, or just different strategies?

posted by: Katie Rich on 3/7/2016 1:19 pm

An example of the former might be something like this:

1. Students in elementary school practice writing really clear directions for someone else to follow. (A good practice in general, applicable to a number of pursuits.)

2. A bit later, students do the same exercise, but a teacher or someone else provides feedback by doing exactly what the directions say and nothing more (imitating the actions of an agent that does only what it is explicitly directed to do).

3. Even later, students learn that a computer is such an agent, and learn the specifics of how to write directions for a computer to do the same task.

An example of the latter might be something like this (thanks to Irene Lee for sharing a similar example and inspiring this one):

1. Students find the shortest path from one location to another in a context in which there is only a finite number of possibilities (say, 5). They solve the problem by trying each one.

2. Later, they solve a similar problem where there are too many possibilities to reasonably try them all, and discuss ways they could eliminate possibilities without trying every single one.

3. Still later, they consider how Google maps might choose a route from one location to another and learn how computers can be used to sort through thousands of possibilities quickly.

I think the benefit of the first approach is that is makes it clear that computing is a strategy that can be considered alongside others. However, in some ways it seems to minimize the power of computing and doesn't to provide much insight into why you might choose a computing strategy. The latter makes this clearer.

Is there a place for both of these kinds of progressions?

### Multiple options

posted by: Trevor Takayama on 3/17/2016 8:38 pm

I find that most elementary school students along with adults do not use logic. Maybe it takes a job or personality that tends to think logically for people to develop that type of mindset. Regardless, it should be taught.

Students are taught basic cause and effect, but they should develop that into various CT functions. It will greatly help them improve their step-by-step directions and improve their logical thinking.

### The /lack/ of causality in a digital world

posted by: Paul Goldenberg on 3/21/2016 2:09 pm

That's not true with today's keyboards and calculators. Take them apart and you get no new information. They're magic.

I think students are *not* "taught" cause and effect except in the most trivial ways that they already sort of know -- actions (social, physical) have consequences -- but not in any deeper sense of *trains* of causality. That is part of the hope behind CCSS Mathematical Practice #3, "construct viable arguments and critique the reasoning of others." A "viable argument" is not just a claim, or even a discussion, but a chain of "A, therefore B, whereupon C, resulting in D" causality. It's not physical causality, of course, but the kind of logical connectedness that you mentioned. In mathematics, that's what we ask from proof --- as much (or more) to establish the *mechanism* by which something is true than to establish the *fact* that it is true. The call, in the early 90s, for "reduced attention to proof" felt, to me, very anti-causality, and I'm glad it's gone.

While I'd like to see kinds have hands-on experiences with causality, building things (e.g., with the Lego gears and other moving parts that interact in clearly causal ways), I also think that programming is a good virtual complement. It's not a substitute, but it has capabilities that mechanical parts do not. Writing a program is an exercise in causality, a lot like proof. This sequence of steps leads inevitably to that outcome. Even a buggy program --- one that leads to an unexpected or unwanted outcome --- is a proof that *that* sequence of steps has that specific outcome.

To me, programming in some suitable language --- one that lets a child focus on the meaning of the steps and not the semi-colons --- seems a particularly constructive way to build logic. It's certainly true to any notion of CT that I've seen discussed.

### inside the black box

posted by: Katie Rich on 3/22/2016 5:23 pm

In other (non-CS-related) work with mathematics and technology, I have often made the argument that there's no reason kids need to know how to divide by hand, for example, before they use a calculator to divide. I think exploring what happens when you use the division key on a calculator can be helpful to understanding the meaning of division -- more helpful, when approached the way, than memorizing and applying the steps of an algorithm. In that sense, I didn't mind that calculators were sort of a black box.

However, what's really inside the black box is not a paper-and-pencil algorithm. It's a computer program. And I think kids examining that, rather than the paper and pencil alternative, has better potential to enrich mathematical learning.

I'm not sure what this means for how to approach integration, but it's always helpful to have new ways to think about things. Much to ponder.