I was co-teaching recently with a lower elementary colleague. We were doing a FunBrain activity called Guess My Number.
http://www.funbrain.com/guess/index.html
You guess a number between 1 and 100 (or 1 and 10) and the computer tells you if the answer is higher or lower than the guess. This process repeats until you guess correctly or you run out of turns. You have 7 guesses for 1 to 100. My recollection from my Computer Science graduate work was that a binary search is the optimal strategy for this type of problem. So, your first guess would be 50. If the computer said lower, you would then guess 25. If the computer said higher, your next guess would be 75. This allows you to rapidly hone in on the answer.
When I asked my colleague if she taught the kids this strategy, her response was that she never teaches kids strategies but always lets the kids find their own strategies.
I really questions this approach, which seems to be an extreme interpretation of the constructivist philosophy of education. From wikipedia, Constructivism is a theory of knowledge, which argues that humans generate knowledge and meaning from their experiences. If taken to its limits, teachers never actually teach anything but provide the materials and experiences so that children can discover everything for themselves.
In my experience, it is an excellent practice to give students a chance to explore problems on their own without giving them the answer or the strategy to get the answer. However, not all algorithms are the same. We know from the field of computer science, that algorithms can be mathematically evaluated as to their efficiency. Of course, they need to be correct too! Some teachers (and I am not sure if my colleague is one or not), seem to feel that all ways of getting the answer are equivalent and equally valid. This is clearly not true. So we should encourage different ways of getting the answer but we should also be evaluating them as to which methods are better than others. I think it is misguided in the attempt to preserve self esteem to say that all methods are equally good. Some even think that getting a correct answer is not important, but only the method. I would say that both are important.
I also think that we most definitely need to teach kids strategies and methods after giving them time to explore on their own. To not do so robs students of all the mathematical work that has gone before them. You would not get very far in math without understanding what has gone before us. So I teach specific problem solving strategies and computational algorithms. Frankly, some students would never arrive at good algorithms if never shown to them. Children also construct knowledge from what we teach them. In my view, they need to make sense of not just their own ideas but the ideas of those that have been gone before them. That can be done in a hands on way with math manipulatives with young children.