This book is intended for use in teaching undergraduate courses on continuous-time and/or discrete-time signals and systems in engineering (and related) disciplines. It provides a detailed introduction to continuous-time and discrete-time signals and systems, with a focus on both theory and applications. The mathematics underlying signals and systems is presented, including topics such as: signal properties, elementary signals, system properties, continuous-time and discrete-time linear time-invariant systems, convolution, continuous-time and discrete-time Fourier series, the continuous-time and discrete-time Fourier transforms, frequency spectra, and the bilateral and unilateral Laplace and z transforms. Applications of the theory are also explored, including: filtering, equalization, amplitude modulation, sampling, feedback control systems, circuit analysis, Laplace-domain techniques for solving differential equations, and z-domain techniques for solving difference equations. Other supplemental material is also included, such as: a detailed introduction to MATLAB, a review of complex analysis, an introduction to partial fraction expansions, an exploration of time-domain techniques for solving differential equations, and information on online video-lecture content for material covered in the book. Throughout the book, many worked-through examples are provided. Problem sets are also provided for each major topic covered.