Every chapter closes with exercises, and a subset of them carry worked solutions here. We did not solve all of them. We solved the ones whose reasoning transfers: the derivation you will reuse when the sensor changes, the coding pattern that keeps an evaluation honest, the design judgment that separates a system that ships from one that quietly fails in the field. When you can reproduce these few by hand, the rest of the exercise set becomes mechanical.
Solutions come in three flavors. Derivations walk an equation from assumption to result so you can see which step breaks when the assumption does. Coding solutions give a short reference implementation plus the test that would have caught the bug. System-design answers lay out the tradeoff, name the failure mode, and commit to a choice. Below are four representative mini-solutions, one from each mode of thinking the book leans on most.
Why a leakage-safe split is a rationale, not a ratio
A common wrong answer to "how should I split this drive-recorder dataset" is "80/20, shuffled." Shuffling at the frame level leaks: consecutive frames from the same 30-second clip land in both train and test, so the model memorizes the clip rather than learning the road. The leakage-safe answer splits at the unit of correlation, not the unit of the row. Group all frames from one recording session (one vehicle, one route, one hour) into a single fold, then split by group. If two sensors observed the same physical event, they belong to the same fold too. The rule generalizes: split at the coarsest identifier that shares nuisance structure, so nothing in test could have been half-seen in training. A useful check is to train a deliberately weak model; if it scores far above chance on a supposedly held-out group, your split still leaks.
A Kalman-gain derivation sketch
The exercise asks why the Kalman gain takes the form it does. Start with a prior estimate of variance \(P^-\) and a measurement of variance \(R\). We want the posterior estimate \(\hat{x} = \hat{x}^- + K(z - \hat{x}^-)\) that minimizes the posterior variance. Writing the posterior variance as a function of the gain and setting its derivative to zero gives
$$K = \frac{P^-}{P^- + R}, \qquad P^+ = (1 - K)\,P^-.$$Read the two limits and the whole filter falls out. When the sensor is trustworthy (\(R \to 0\)), \(K \to 1\) and the estimate snaps to the measurement. When the sensor is noisy relative to what we already know (\(R \gg P^-\)), \(K \to 0\) and we barely move. The gain is just the fraction of total uncertainty that lives in the prior, so it hands each new measurement exactly the weight its precision earns. The full vector form replaces the scalars with covariance matrices and an observation matrix \(H\), but the intuition, weight by relative precision, is unchanged.
A conformal-coverage check
The exercise gives you a trained regressor and a calibration set, and asks for a prediction interval that is right 90 percent of the time without assuming a noise model. Split conformal does it: compute a nonconformity score on held-out calibration points, take the appropriate quantile, and use it as the interval half-width. The one line that people get wrong is the quantile level, which must be inflated for the finite sample.
import numpy as np
def conformal_halfwidth(cal_resid, alpha=0.10):
n = len(cal_resid)
# finite-sample correction: ceil((n+1)(1-alpha)) / n
q = np.ceil((n + 1) * (1 - alpha)) / n
return np.quantile(np.abs(cal_resid), min(q, 1.0))
Split-conformal half-width from calibration residuals. The (n+1) correction is what makes coverage hold at finite n, not just asymptotically.
To grade your own answer, run the empirical check: on a fresh test set, the fraction of true values that fall inside \(\hat{y} \pm \text{halfwidth}\) should sit near \(1 - \alpha\). If it is 0.83 instead of 0.90, you almost certainly used np.quantile at level \(1-\alpha\) directly and skipped the correction. Coverage is a property you measure, not a property you assume.
Why averaging fixes noise but not bias
Given \(N\) repeated readings of a fixed quantity, the exercise asks what averaging buys you. Model each reading as \(x_i = \mu + b + \varepsilon_i\), where \(\mu\) is the true value, \(b\) is a fixed sensor bias, and \(\varepsilon_i\) is zero-mean noise with variance \(\sigma^2\). The sample mean is
$$\bar{x} = \mu + b + \frac{1}{N}\sum_{i=1}^{N}\varepsilon_i,$$with expectation \(\mu + b\) and variance \(\sigma^2 / N\). Averaging drives the random part down like \(1/\sqrt{N}\) in standard deviation, so more samples buy precision. But \(b\) is outside the sum; it never averages away. A miscalibrated thermometer read a thousand times gives you an exquisitely precise wrong answer. The lesson threads through every sensing chapter: repetition attacks variance, and only calibration, a reference standard, or a differential measurement attacks bias. Confusing the two is how teams ship a system that looks stable in the lab and is consistently off in the world.
The full solutions set
These four are a sampler. A complete solutions set, covering the remaining derivations, the full coding solutions with runnable tests, and the graded system-design rubrics, accompanies the instructor materials for the book. If you are teaching from the text and need access, the front matter points to how to request it. If you are reading on your own, treat the exercises as the real curriculum: attempt each one before checking, and use the solved examples here as calibration for what a complete answer looks like.