Whenever I get a chance to teach Linear algebra I do things like the following to produce "nice" rotation matrices. The basic idea is that a composition of two reflections is always a rotation. Restricting myself to 3D in what follows.
The reason why I think this fits the bill here is that reflections usually have nice
matrices. If we reflect $\Bbb{R}^3$ w.r.t. to the plane with normal $\vec{n}=(n_1,n_2,n_3)$, then that reflection $s$ is given by the recipe
$$
s(\vec{x})=\vec{x}-2\,\frac{\vec{x}\cdot\vec{n}}{\Vert\vec{n}\Vert^2}\vec{n}.
$$
If $\vec{n}$ has rational components, then the matrix of $s$ w.r.t. the standard basis will have rational entries. As we need two reflection to get a rotation, we can either multiply two such matrices, or may be use a very easy choice of $\vec{n}$ for the other.
For example, the reflection w.r.t. the plane $3x+2y+z=0$ with $\vec{n}=(3,2,1)$ sends
$$
\begin{aligned}
(1,0,0)&\mapsto(1,0,0)-\frac37(3,2,1)=\frac17(-2,-6,-3),\\
(0,1,0)&\mapsto(0,1,0)-\frac27(3,2,1)=\frac17(-6,3,-2),\\
(0,0,1)&\mapsto(0,0,1)-\frac17(3,2,1)=\frac17(-3,-2,6).
\end{aligned}
$$
If we (post)compose this with the reflection $(x,y,z)\mapsto(-x,y,z)$, we get the rotation represented by the matrix
$$
R=\frac17\left(
\begin{array}{rrr}
2&6&3\\
-6&3&-2\\
-3&-2&6
\end{array}\right).
$$
The axis of rotation here has to be a vector that is perpendicular to both
$\vec{n}$ and $(1,0,0)$ (the normal of the second plane of reflection).
The cross product $\vec{w}=(0,-1,2)$ is one such vector, and you can easily
verify that $R(0,-1,2)^T=(0,-1,2)^T$.