-* Caesar ciphers: [Making](caesar-encipher.html) and [Breaking](caesar-break.html)
-* Affine ciphers: [Making](affine-encipher.html) and [Breaking](affine-break.html)
-* [Word segmentation](word-segmentation.html)
-* Keyword ciphers: [Making](keyword-encipher.html) and [Breaking](keyword-break.html)
-* Transposition ciphers: [Making](transposition-encipher.html) and [Breaking](transposition-break.html)
-* [Alternative plausability scoring](alternative-plaintext-scoring.html)
+* Caesar ciphers: [Making](caesar-encipher.html) and [Breaking](caesar-break.html) *(Changing representations, language models, text encodings)*
+* Affine ciphers: [Making](affine-encipher.html) and [Breaking](affine-break.html) *(Time/space trade-offs, off-by-one issues)*
+* [Word segmentation](word-segmentation.html) *(Memoisation and complexity)*
+* Keyword ciphers: [Making](keyword-encipher.html) and [Breaking](keyword-break.html) *(Being Pythonic and parallelism)*
+* Transposition ciphers: [Making](transposition-encipher.html) and [Breaking](transposition-break.html) *(Equivalence classes)*
+* Pocket enigma: [Making](pocket-enigma-encipher.html) and [Breaking](pocket-enigma-break.html) *(Object orientation)*
+* [Alternative plaintext scoring](alternative-plaintext-scoring.html) *(Empirical computing through simulation)*