This book addresses an important class of mathematical problems (the Riemann problem) for first-order hyperbolic partial differential equations (PDEs), which arise when modeling wave propagation in applications such as fluid dynamics, traffic flow, acoustics, and elasticity. The solution of the Riemann problem captures essential information about these models and is the key ingredient in modern numerical methods for their solution. This book covers the fundamental ideas related to classical Riemann solutions, including their special structure and the types of waves that arise, as well as the ideas behind fast approximate solvers for the Riemann problem. The emphasis is on the general ideas, but each chapter delves into a particular application. Riemann Problems and Jupyter Solutions is available in electronic form as a collection of Jupyter notebooks that contain executable computer code and interactive figures and animations, allowing readers to grasp how the concepts presented are affected by important parameters and to experiment by varying those parameters themselves. The only interactive book focused entirely on the Riemann problem, it develops each concept in the context of a specific physical application, helping readers apply physical intuition in learning mathematical concepts. Graduate students and researchers working in the analysis and/or numerical solution of hyperbolic PDEs will find this book of interest. This includes mathematicians, as well as scientists and engineers, working on wave propagation problems. Educators interested in developing instructional materials using Jupyter notebooks will also find this book useful. The book is appropriate for courses in Numerical Methods for Hyperbolic PDEs and Analysis of Hyperbolic PDEs, and it can be a great supplement for courses in computational fluid dynamics, acoustics, and gas dynamics.