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;
46 <textarea id=
"source">
48 # Cipher programming training
51 * Caesar ciphers: [Making](caesar-encipher.html) and [Breaking](caesar-break.html) *(Changing representations, language models, text encodings)*
52 * Affine ciphers: [Making](affine-encipher.html) and [Breaking](affine-break.html) *(Time/space trade-offs, off-by-one issues)*
53 * [Word segmentation](word-segmentation.html) *(Memoisation and complexity)*
54 * Keyword ciphers: [Making](keyword-encipher.html) and [Breaking](keyword-break.html) *(Being Pythonic and parallelism)*
55 * Transposition ciphers: [Making](transposition-encipher.html) and [Breaking](transposition-break.html) *(Equivalence classes)*
56 * Pocket enigma: [Making](pocket-enigma-encipher.html) and [Breaking](pocket-enigma-break.html) *(Object orientation)*
57 * [Alternative plaintext scoring](alternative-plaintext-scoring.html) *(Empirical computing through simulation)*
58 * [Further work](further-work.html)
61 <script src=
"http://gnab.github.io/remark/downloads/remark-0.6.0.min.js" type=
"text/javascript">
64 <script type=
"text/javascript"
65 src=
"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&delayStartupUntil=configured"></script>
67 <script type=
"text/javascript">
68 var slideshow = remark.create({ ratio:
"16:9" });
73 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
76 MathJax.Hub.Queue(function() {
77 $(MathJax.Hub.getAllJax()).map(function(index, elem) {
78 return(elem.SourceElement());
79 }).parent().addClass('has-jax');
81 MathJax.Hub.Configured();