Introduction to Probability is a very nice text for a calculus-based first course in probability. There are many features that make this book attractive as a text for such a course.
Each chapter starts off with an introductory section, followed by detail sections expanding on the introduction. Chapters conclude with a summary, a small section with R code to explore some of the topics within the chapter, and an extensive problem section which is divided into parts for each of the sections of the chapter, and a “mixed practice” group of problems that may require ideas from the whole chapter or from previous parts of the book.
The exercises are truly impressive. There are about 600 and some of them are very interesting and new to me. For example, I had not previously seen problem 83 in chapter 4 on Feynman’s approach to deciding what to eat in a restaurant. Some of the problems are rote, but many include interesting asides and commentary. In addition, about 250 of the problems have solutions on the stat110.net web site, which is another feature that will appeal to students. The web site has R code, the previously mentioned solutions, and many videos from the authors teaching the class. The videos are entertaining as well as informative.
The authors stress the importance of understanding throughout, with “story proofs,” clear explanations, and warnings to the students of tricky points.
In addition to the standard material for such a course, there are also very nicely done chapters on inequalities and limit theorems, Markov chains, and Markov chain Monte Carlo. The only chapter I found disappointing at all was the last on an introduction to Poisson processes, which seemed a little too standard in comparison to the previous chapters.
That small disappointment aside, this is an excellent text and deserves serious consideration. Checking out stat110.net will surely help you decide if this book is right for you.
Peter Rabinovitch has been doing data science since long before “data science” was a thing.