An excellent introduction to abstract algebra. The strength is clearly the problem sets. There are many problems with difficulty ranging from very easy to very hard. The exposition is easy to follow. Most proofs are very clear. However, this is probably not the most friendly book for the average math major--it would take a lot of hard work to absorb all the material.