Different teaching techniques are required for different students. For the students at the upper edge of the curve, the homework assignments and lectures are more than enough. For the students near the middle of the curve, some additional exercises and confidence building may be required. For students near the bottom of the curve, it will be necessary to break problems into parts and reinforce smaller parts before building back up to the overall problems. These students must be taught how to break problems into discrete steps, and a lot of emphasis needs to be placed in teaching them how to recognize the patterns. Mnemonics, rhymes, and other catchy phrases can help to reinforce both the pattern recognition and the execution of steps.
Bear in mind that we can teach computers to perform algebra. There is a heuristic involved. This heuristic can be memorized by anyone who can memorize a bible verse, a song, or a poem. You would be surprised what someone with a low IQ can do when time is spent to organize a heuristic in terms that this person can memorize, and enough time is spent to reinforce both this learning and the confidence of this individual.
I used to believe this until I actually tried. Maybe they lied about how much studying they really did, but I've seen people putting in many hours a week and still unable to grasp the basics of algebra. I think many of us have never really been exposed to the thinking power of people at the bottom 10-20% (IQs below 80-87) , they weren't in our classes in high school. And now these people are going to college.