It's one of the fundamental questions of teaching, especially teaching mathematics: how much do you explain and how much do you leave for the students to figure out on their own. There are compelling arguments on either side. The end goal is to produce students who are independent and resourceful, who can work independently, thus making the case against spelling things out. On the other hand, discovery is a slow and often frustrating process. Given the material to cover and the danger of students just giving up, simply leaving them to their own devices is not an option.
This leads to obvious questions (if not obvious answers) about when we should and shouldn't teach algorithms, step-by-step procedures for solving specific classes of problems.
It takes a great deal of thought to come up with an algorithm and to understand why it works, but actually performing one should be an almost entirely mechanical process. The whole point is to get the answer reliably and quickly with an absolute minimum of thinking.
This isn't a bug; it's a feature. There are situations where you want people operating on autopilot. Thought is slow, unpredictable and distracting. You probably don't want your tax preparer stopping to reflect on the subtleties of economic distortions while filling out your 1040 and if you're an administrator, you certainly don't want students thinking about the nature of numbers while doing long division on a standardized test that determines your next bonus. You could even argue that most of the progress of mathematics over the past three centuries is due to notation that makes much of the work thought-free thus allowing mathematicians and scientists to focus on more important matters.
So, to be clear, I'm not opposed to sometimes just coming out and telling students "these are the steps for solving this kind of problem" rather than always having the students think through everything on their own. What I am opposed to is teaching without thinking things through.
Only a small portion of what we learn in math classes (or most classes, for that matter) will show up in any sort of significant way in life after graduation. Keep in mind, my day job is writing programs, building models and mining data. It's math-centric work but I use almost none of what I learned in junior high algebra. How often do you actually need to factor a polynomial?
That does not mean that these topics weren't useful to me. They taught me how to approach problems. They helped me develop learning strategies and study skills. They provided an intellectual framework for other ideas. They enhanced mathematical intuition. You could even make the case that some of those problems I would never see again were the most important and useful ones I studied.
This raises some big questions about when to teach detailed, non-intuitive algorithms. I put in the non-intuitive condition because some algorithms do illustrate broader points. For example, you can lay out a simple and intuitive algorithm for approximating square roots through a split-the-difference iterative process which ties in nicely to a number of important ideas and builds intuition at the same time.
But let's take something like synthetic division, an alternate algorithm for performing polynomial long division. Keep in mind the following:
1. It is very likely that you will never have the occasion to perform polynomial long division;
2. The traditional method (modeled after regular long division) is easy to remember, intuitive, and it helps illustrate the relationship between algebra and the more familiar arithmetic that preceded it.
3. The time savings from synthetic isn't that great.
That's an extreme case but it's not all different from more familiar examples like factoring trinomials, things you will probably never use outside of a high school math class. Most of these techniques do have value as part of a larger framework of ideas, but that value depends on having the students actually think about what they're doing. That's not what algorithms are good for.
This is one of the fundamental tensions of teaching. We can't wait for students to rediscover hundreds of years of mathematics (even if we hold their hands). Sometimes you just have to tell them "this is how you do it." The trouble is, when you tell someone an answer, you take away the chance for them to figure it out on their own.