4 <title>Index of cipher training
</title>
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8"/>
6 <style type=
"text/css">
15 h1 { font-size:
3em; }
16 h2 { font-size:
2em; }
17 h3 { font-size:
1.6em; }
19 text-decoration: none;
22 -moz-border-radius:
5px;
23 -web-border-radius:
5px;
31 text-shadow:
0 0 20px #
333;
37 text-shadow:
0 0 20px #
333;
51 <textarea id=
"source">
53 # Cipher programming training
56 * Caesar ciphers: [Making](caesar-encipher.html) and [Breaking](caesar-break.html) *(Changing representations, language models, text encodings)*
57 * Affine ciphers: [Making](affine-encipher.html) and [Breaking](affine-break.html) *(Time/space trade-offs, off-by-one issues)*
58 * [Word segmentation](word-segmentation.html) *(Memoisation and complexity)*
59 * Keyword ciphers: [Making](keyword-encipher.html) and [Breaking](keyword-break.html) *(Being Pythonic and parallelism)*
60 * Transposition ciphers: [Making](transposition-encipher.html) and [Breaking](transposition-break.html) *(Equivalence classes)*
61 * Pocket enigma: [Making](pocket-enigma-encipher.html) and [Breaking](pocket-enigma-break.html) *(Object orientation)*
62 * [Alternative plaintext scoring](alternative-plaintext-scoring.html) *(Empirical computing through simulation)*
63 * [Further work](further-work.html)
66 <script src=
"http://gnab.github.io/remark/downloads/remark-0.6.0.min.js" type=
"text/javascript">
69 <script type=
"text/javascript"
70 src=
"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&delayStartupUntil=configured"></script>
72 <script type=
"text/javascript">
73 var slideshow = remark.create({ ratio:
"16:9" });
78 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
81 MathJax.Hub.Queue(function() {
82 $(MathJax.Hub.getAllJax()).map(function(index, elem) {
83 return(elem.SourceElement());
84 }).parent().addClass('has-jax');
86 MathJax.Hub.Configured();