Teaching Introductory Real Analysis I am currently helping teach an introduction to real analysis course at UC Berkeley. The textbook we are using in Rudin's "Principles of Mathematical Analysis" (aka baby rudin). 
I am trying to find ways to help the students understand the material better. My jobs include 


*

*Writing solutions to the homework exercises

*Finding other examples that can supplement Rudin, as Rudin sometimes doesn't present enough examples

*Suggest Problems for the Midterm and Final Examinations
For (2), I have found Kenneth Ross's book (Elementary Analysis: The Theory of Calculus) very helpful. Does anyone suggest any other books, that do a good job in "holding your hand and walking through" with various concepts in analysis?
Also, this is my first time teaching, so I am wondering how a good solution set should look like. Should it just show the formal solutions, or should it also tell the students a little bit about how to approach the problem and build intution. Or is that too much writing that will distract and be unmotivating for the student to read through? 
Also, each week we assign about 10-14 problems, but only 3 problems are graded. My solutions are to the 3 graded problems. I believe there is some advantage to this system, but do you I am putting the students at a strong disadvantage if I do not write all of the solutions? Time is limited sometimes, but I plan on writing the solutions to some other problems other than the graded problems. So:
How do you decide which problems are worthy of writing solutions to (assuming time is limited and I don't have time to write solutions for all 14 problems)? 
Does anyone have good ideas to supplement Rudin(which I think is a great book, but my students may disagree) to the 40 student undergraduate class? This is a sort of a broad question. I'm wondering what others did in their previous experiences, if any, while teaching a class with that book?
 A: An excellent book for beginners is Stephen Abbott's Understanding Analysis. You might also try A Radical Approach to Real Analysis by David Bressoud
A: De​ar Ro​han,
First let me say that I got a little jealous after reading your first paragraph!  What you are about to do should be very rewarding and a lot of fun.
I think you are right to be concerned that many students will find Rudin's book [as an aside, I don't really like this "Baby X" stuff: it seems not so subtly discouraging to describe university-level texts in this way; you could say either Rudin's Principles or, if you must use an epithet, "Little Rudin", because it is indeed a smaller book than his other analysis texts] too terse in and of itself.  Sufficiently strong students will consider it a rite of passage and adapt to it eventually, but the entire current generation of "off-Rudin" undergraduate analysis texts seems to be fairly convincing evidence that the average undergraduate needs somewhat more help.  Which is not to say that Berkeley is populated by average undergraduates, but I think even very strong students, whether they realize it or not, could learn more efficiently if the text is supplemented.  (It happens that this was the primary text used in the math class I took during my very first quarter at the University of Chicago.  It wasn't completely impenetrable or anything like that -- much less so than some of the lectures later on in the course! -- but I think I would have benefited from some of the supplementation you describe.  In any case I'm too old to give a really independent evaluation of that book now: I've had it for getting on 20 years and have read much of it backwards and forwards countless times.)
The good news is that the off-Rudin phenomenon is so widespread that there are almost infinitely many places to go for a source of more problems, examples and so on.  You really can have your pick of the litter.  But since you asked, here are two books I like a lot, one old and one rather new:
Gelbaum and Olmstead, Theorems and Counterexamples in Mathematics.
What it claims is what you get, and what you get is very valuable.  Asking students for counterexamples is a great way to keep them alive and awake in such a course: it's so easy for a young student to get snowed under by the barrage of the theorems and not to appreciate that so many theorems in real analysis have somewhat complicated statements because the simpler statement you are hoping for at first is simply not true.   Coming up with counterexamples really helps students participate in the development of the material: if you don't do any of this explicitly, the very best students will do some of it on their own, but for a lot of the students learning the theorems will amount to a lot of arduous memorization.
Körner, A Companion to Analysis....
This is a pretty fantastic book: a long, chatty text much of which fills in nooks and crannies and works very hard to get the student to appreciate why things are set up they way they are.  For instance, by now a lot of instructors have realized the pedagogical need to provide more up-front motivation for the real numbers and the obviously important but initially mysterious least upper bound axiom.  Körner's book carries this line of thought through more deftly and thoroughly than any other I have seen.  He asks the question "What happens if we try to do calculus on the rational numbers?" and he comes back again and again to answer it.  It's tempting to throw out an example of a continuous function on a closed interval which attains its maximum value only at an irrational point and just move on, but this leaves a lot of cognitive work to the students to really appreciate what's going on.  Körner does much better than this.  Moreover, Körner's book ends with the best list of analysis problems I have ever seen.  There are literally hundreds of pages of problems, thoughtfully organized and appealingly presented.  This is an invaluable resource for someone trying to flesh out an analysis course.
I see that I've now written at length and not addressed most of your questions, which concern the solution sets.  That may be for the best: it's been a long time since I regularly wrote up solutions to problem sets.  This takes me back to my undergraduate days as well, when they were handwritten and mimeographed: yes, that was a pretty strange thing to do even back in the 1990's.  (I will advise you tex up the solutions rather than handwriting them, although even this is not as de rigueur as one might think: I have colleagues who think that handwritten solutions are more appealing.  I think they're crazy, but oh well.)  I didn't get any feedback on them and often wondered if they were actually being read.  So I had better leave this for someone else to advise you.
Good luck!
A: I really enjoyed Bergman's supplement to the exercises in Rudin's Principles. He also has a short set of notes to instructors and answers to questions from students. These helped me a lot in going through Rudin.
Also, I don't think they're at a disadvantage if you do not provide them with solutions. There are plenty to be found on the web if they want to check their work (hopefully after the homework has been graded).
A: Both Pete-if you mind me calling you 'Pete',Dr.Clark,I apologize-and Jesse have given you terrific advice. I'd like to chime in and add my 2 cents on the matter. 
Firstly,I also have Körner's book and I like it immensely.The book's frequently been attacked,strangely enough,for not being very original or creative in its choice of topics and organization. I do not understand this critique.It's a book for an  intermediate undergraduate real analysis course-how creative could it be without defeating its purpose?!? It's a great supplement to little Rudin and asks a lot of the deep questions Rudin avoids. I also agree Gelbaum and Olmstead is a necessity on your desk for such a course and now that it's in Dover,there's no good reason not to have it. 
Next,I'd like to recommend an alternative to Rudin. I know,the purists in the audience want to lynch me right now. Unfortunately,the sad fact of the matter is that most students today-especially in the United States-just aren't what they used to be in terms of discipline or background training. But my objection is deeper then that. Even if you're fortunate enough to have strong students,they really won't get as much out of the course using Rudin simply because it's so pristine and terse. They'll be able to do all the problems,understand the definitions and theorems. But I'll bet most of them walk out of there not understanding *why*it's necessary to build all this machinery into calculus.I saw a review of little Rudin at Amazon with some student praising the book as The New Testament of analysis and one of his comments gave me pause:" Don't let people steer you away from it with motivation. Motivation is for those too feeble-minded to handle real math. He's not selling you a car,Rudin-just do the book and the you will learn The True Way of Math." Or something to that effect. I think this attitude shows exactly what's wrong with using the book even with strong students. 
The book I'm recommending was written-ironically-by Charles Chapman Pugh,who taught the honors analysis course at Berkeley for over 30 years. It's called Real Mathematical Analysis and I affectionately refer to it as Rudin Done Right. The book is pitched at the same level as Rudin, with exercises just as difficult if not more so.
  So what's different about it? 
 Firstly,Pugh writes in a beautiful,conversational yet very concise style that's immensely personable,contains many references to the mathematical literature and yet is amazingly curt and direct. There's very little chatter.So how is Pugh able to be concise like Rudin and still be very informative and illuminating? Pugh has a remarkable gift as a textbook author:He seems to know instinctively exactly how many words it takes to explain something,not one word more, not one word less. For example,when defining the Cantor set,he refers to it as "Cantor dust". This phrase is extremely insightful in picturing the Cantor set for the first time.This intentional parsimony,where he carefully chooses,weighs and measures every word and phase,is one way he does it. The other is the book is full of pictures-there's literally a picture on every other page. But what's amazing here is that none of the pictures are throwaways or space fillers-every single picture is very specifically designed to make a point. For example,when proving that in a general metric space,every open ball is itself an open set,he presents it alongside a picture of an open disk in the plane and how a smaller open ball can be constructed anywhere inside an open ball. The book is loaded with beautiful pictures like that and if Rudin had done half of this in his presentation,the book would have been so much more approachable. It also covers certain topics vastly better then Rudin-his chapters on function spaces and their applications to differential equations,theoretical multivariable calculus and the Lebesgue are infinitely better then Rudin's. 
Run right out and order this book for your students.You'll thank me later.Trust me. 
Lastly,to the very good advice given to you by Pete and Jesse, I'd like to add one more thing. I strongly suggest you take a few lectures to build the real numbers from the integers for your students. Yeah,I know-a lot of analysts right now are screaming at me. But hear me out. I think one of the reasons students struggle with doing calculus rigorously for the first time is that they don't really understand the properties of the real numbers. Oh sure,they get the 10 axioms,they learn them-and then a lot of them still struggle with deriving inequalities. This,in my opinion,is really where the average student gets lost when doing analysis for the first time. They don't really understand the Cauchy-Schwarz inequality or why it's important in deriving the Triangle inequality,they don't really "get" why there's a rational number in between any 2 reals,why there's an integer N > 0 such that for any 2 reals x and y, Nx > y-you get the idea. After I took the time to construct the real numbers from scratch,I never had any trouble doing it. The big objection a lot of mathematicians have is that the derivation would eat up an entire semester by itself. Well,if you spell out and spoon feed every little detail of the construction, sure,that's true. But I don't think you have to do this to achieve the experience needed. Only certain steps need a lecturer to help the students through it-the rest is just spade work they can-and should-do if properly supplied with hints. Clearly,the jump from the rational numbers to the real numbers should be done carefully and in full detail.I think the earlier steps-building the natural numbers from the Peano axioms,etc.,can be done with far less detail if the key steps are done.Filling in these gaps can be the basis for wonderful problem sets for the students. Terence Tao's analysis course at UCLA famously was done that way.Tao found the 2-3 weeks or so work that was needed to do it more then paid off in the depth of understanding his students then had-the standard struggling with limits was almost completely avoided and the latter parts of the course not only went much more rapidly then in a standard class, there was much greater overall understanding by the students. I was absolutely floored reading about this in the preface to Tao's Analysis I and Analysis II books and I'm itching to try it myself when I teach real analysis the first time. I strongly suggest you try it and see how it goes.
  (In fact,Pugh rather hastily sketches the development in the first chapter-giving a nicely detailed account of building R from Dedekind cuts of rationals where most texts prefer convergent Cauchy sequences of rationals.This is quite well done-although I don't agree with him calling Edmund Landau's Foundations of Analysis "classically boring".I think Landau's book should be required reading for all mathematics majors as they get ready for graduate school.)   
Anyway-that's my very lengthy 2 cents on the matter. Good luck,let us know how it went!      
A: Before I begin, a disclaimer: I am an undergraduate who has never officially taught an upper-division math course before, so perhaps you should take these suggestions (and opinions) with a grain of salt.  (But for what it's worth, I do think I spend an inordinate amount of time thinking about pedagogy and curriculum design, especially as pertains to undergraduate analysis classes.)
Suggestions:
(1) Examples.  Saying that Rudin "sometimes doesn't present enough examples" is, I think, a bit of an understatement.  Personally, my inclination is always to present an example (and non-example) of a definition as soon as it is introduced.
For examples regarding metric space concepts, you should definitely check out Metric Spaces by Searcoid.  This book follows a somewhat unconventional approach to the topic, but is loaded with examples.
Another great book is Counterexamples in Analysis, whose utility I cannot overstate.
(2) Provide motivation.  In a first course on real analysis, it is not unusual to see students wondering what exactly the point of it all is.  Rudin also does not provide much in the way of motivation.
I often like to explain that at least one of the goals is to provide a rigorous treatment of calculus.  Providing counter-examples is also a good way of illustrating how all of these seemingly pedantic details are in fact quite necessary.  On a related note:
(3) Name the concepts. For example, in Chapter 2, Rudin proves that compactness implies limit point compactness... except that the term "limit point compactness" is never actually used.  As a result, the theorem (2.37) seems rather arbitrary; why should we care?  Giving concepts names can help emphasize their importance.

I myself first learned real analysis from Baby Rudin's Principles.  Here are some things that I really wished Rudin had mentioned:


*

*Fact: If for all $\epsilon > 0$, we have $a < b + \epsilon$, then $a \leq b$ -- assuming that $a$ and $b$ are independent of $\epsilon$.


This fact is implicitly assumed in countless $\delta$-$\epsilon$ proofs.  As a student, I found it mystifying why we could sometimes "get rid of the $\epsilon$" and sometimes we couldn't.  This fact explains it.


*

*Fact: $a = \sup S$ iff:
a) $a \geq x$ for all $x \in S$, and
b) $\forall \epsilon > 0$, $\exists x\in S$ such that $a < x + \epsilon$.


This one fact makes dealing with infs and sups very easy.


*

*Compact subsets are always closed and bounded.  The importance of Heine-Borel is that in $\mathbb{R}^n$, the converse is also true.

*Openness and closedness are properties of subsets of a metric space.  In every metric space $(X,d)$, the sets $\emptyset$ and $X$ are always both open and closed.  (On a related note: sets can be open, closed, both or neither.)

*Cauchy sequences are bounded.

*The actual "formulas" for limsup and liminf are not included.  By that I mean:
$$\limsup a_n = \inf_{n\geq 1}\sup_{k\geq n} a_k,$$
$$\liminf a_n = \sup_{n\geq 1}\inf_{k\geq n} a_k.$$
This definition is so much easier to work with than "the largest subsequential limit." Perhaps the equivalence of the two concepts can be included as an exercise.

*Let $a,b \in \mathbb{R}$. If $f, g$ are uniformly continuous, then so is $af + bg$, but $fg$ may not be.  If $f_n, g_n$ are uniformly convergent, then so is $af_n + bg_n$, but $f_ng_n$ may not be.

*Theorem 7.12 states that uniform convergence preserves continuity.  But in fact, uniform convergence also preserves uniform continuity, too, as well as boundedness (which is an un-mentioned step in Exercise 1 of that chapter.)  These facts provide additional reason to care about uniform convergence.

*Uniform convergence only makes sense for sequences of functions.  Also, it is equivalent to convergence in $C(X,Y)$ with the topology induced by the sup norm.  (This is the true content of Theorem 7.9)

*Theorem 7.25 is a weak form of the Ascoli-Arzela Theorem (also un-named).  As stated it provides sufficient conditions for the existence of a uniformly convergent subsequence.  So what?  Well, the real point is that this theorem classifies the compact subsets of $C(X,Y)$ -- much in the way Heine-Borel classifies the compact subsets of $\mathbb{R}^n$.  (Admittedly, this bullet point might be a little abstract for most students.)  Anyway, this connection is established via Theorem 3.6 which involves sequential compactness (also un-named!), which brings me to:

*Compactness is equivalent to sequential compactness in metric spaces (Rudin only mentions one direction).

Finally, I would suggest that if you are typing up formal solutions that you try to be 100% bullet-proof rigorous.  If this course is being used as an introduction-to-proof-writing course, then students would really benefit from seeing what a 100%-correct solution looks like.
(Sorry for all the edits, but I just keep remembering all these extra points!)
A: Pugh's Real Mathematical Analysis is pretty easy to learn from and full of pictures to help clarify concepts for your students. 
