Your frustration may be well justified. Math courses are sometimes taught as a list of recipes to solve certain problems, and since the users of those recipes don't understand how they work, in order to generate reasonable facility, one has to practice until things become mechanic. (There may be several reasons for teaching a course like this. The teacher may have been told to do it this way, she may feel that this is the only way to get through to the students, or he may not know better.)
I propose that no matter how the class is taught, and no matter that it may take a little more time at first, you approach every problem differently, with an understanding of the context, and the ability to figure out (rather than remember) what you can do to solve the problem. In the long run this approach is vastly more efficient and it allows you to recover from errors (that you make, or that are contained in the problem or recipe description). Approaching a problem with an alert and open mind instead of a recipe also opens you to the opportunity of learning something new. There's always something else to learn, and you should enjoy the process.
Fine print, your comments, more links, Peter Alfeld, PA1UM