Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein, is a good introductory textbook to algorithm design and analysis for the undergraduate student in their first course on the study of algorithms.
It is a good learning text in that the writing style offers more explanations and has a more "conversational" tone (as compared to other texts that are much more succinct). Having said that, this is still a textbook and assumes students to have a fairly decent math background and ability to think in a mathematical manner.
It would not be far off to say that this is more of a math text than a programmers' text. That is to say, this is not a cookbook with code that can be copied to make things work. This is a text to help students learn to think and reason about algorithms.
For a first course in formal algorithms for undergraduates, this would be a good text. If you want a more rigorous, mathematical, and succinct reference or introduction, Algorithm Design by Kleinberg and Tardos (which I have reviewed) may be a better fit for you.