How to study abstract algebra I am taking Abstract Algebra course at the university. We are doing chapters 1-20 from Gallian's abstract algebra text book.
I am just doing assigned homework everyweek ( About 5 questions from each chapter). Although I am getting an A in all the assignments and midterms, but I am really worried that my understanding might be shallow or just enough to do the homework that I am going to promptly forget when the course is over. 
My question is how do I know that I am gaining knowledge that would stay with me and not just studying enough to do the assignments.
Also, What else can I do other than just doing homework assignments. 
 A: My first pass at Abstract Algebra was actually from that book. It is not great for covering the theory of Abstract Algebra as heavily as other texts but it is excellent at giving many simple clear examples that make it very easy to approach the subject. I'll phrase my advice using two excellent quotes from his own book!
"A good stock of examples, as large as possible, is indispensable for 
a thorough understanding of any concept, and when I want to learn
something new, I make it my first job to build one." - Paul Halmos

As you cover material, construct the groups you are talking about. Play around with them! Get good at group operations, mappings, and getting a feel for what groups/rings look like and how they work. They are meant to generalize $\mathbb{Z}$ and $\mathbb{R}$. So as you learn new theorems, try to see how it builds on what you just learned. Carefully think about how the properties help groups and rings mimic the appearance of things like $\mathbb{Z}$ and $\mathbb{R}$. What doesn't hold in groups and rings? A useful thing here is going as many exercises from Gallian as possible. For example, he asks for many such examples where a property may hold in $\mathbb{R}$, but not under the group/ring operation. 
This stock of examples not only helps you get a feel for the subject but often helps gives you a stock of counterexamples for such exercises. Groups/rings you especially will want to focus on are the symmetric group $S_n$, the alternating group $A_n$, the rings $\mathbb{Z}$ and $\mathbb{Z}_n$, the dihedral group $D_n$, cyclic groups, the basic matrix groups/rings introduced by Gallian. Moreover, don't just limit exercises to those in Gallian! Many of the exercises from the famous Dummit and Foote's Abstract Algebra are great for focusing on more proof intensive exercises than Gallians more 'example' exercises. You can get the questions from his text along with their 'solutions' (don't trust them all and moreover, DO THEM FOR YOURSELF!) here
Finally, a last piece of advice to really keep to heart and practice through this (and more importantly) and Mathematics class you will ever take:
"Don't just read it! Ask your own questions, look for your own examples, 
discover your own proofs. Is the hypothesis necessary? Is the converse 
true? What happens in the classical special case? Where does the proof
use the hypothesis?" - Paul Halmos

This is highly important to learning Mathematics. The only way to learn Mathematics is to do it. Sadly, though learning the theorems and proofs often takes away vital experience discovering and proving them for yourself through lab-like exercises! So as you read through the book, think why they came to the conclusions they did. Try the proofs before you read them or at least think about how you might show it! (It helps especially with your confidence if before you read it you outline how you would try it and it turns out that that's how it's done!). Find examples where the theorem fails if you take away one of the assumptions. Check the converse. Et cetera. 
But most of all, good luck! Abstract Algebra is a fascinating subject and I hope you love it as much as I do!
A: Some random points that may help in any math class:


*

*Solve more problems not only the ones assigned. Take problems from other textbooks.

*Try to explain the material to some of your colleagues that maybe having difficulties with the course. Tutoring someone is a great way to discover points you thought you understood but you really do not have a firm grasp yet.

*For every new definition you see, come up with a list of concrete examples.

*For every theorem you see, remove one of its assumptions and try to get a counter-example.

