layout: true .indexlink[[Index](index.html)] --- # Aims Material aimed for two (three?) audiences 1. Teacher CPD 2. In-school resources for children 3. Outreach resources, mainly Bletchley Park After your suggestions on how to extend these notes to hit these audiences --- # Programming != Computing .quote[ > Computational thinking is like architectural thinking. > > Programming is like bricklaying. ] This course will cover four things, in increasing order of importance. 1. Teach some ideas about ciphers and cryptanalysis. 2. Show off some tools: IPython, git, doctest. 3. Explore some different corners of Python (itertools, multiprocessing). 4. Expose my thinking for how to solve these problems. --- # Idiomatic Python Pythonistas are keen on writing idiomatic Python. It's often clearer and more efficient than writing C, Perl, or even Ruby in Python. * [PEP-8](http://legacy.python.org/dev/peps/pep-0008/) is the fundamental style guide. Consider getting a linter (`pylint`?) * [Python Cookbok](http://shop.oreilly.com/product/9780596001674.do) has lots of recipies for doing things in Python * [Idiomatic Python](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html): Good style, but dated for Python 2 * [Writing Idiomatic Python](http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/): Enough there to tempt me to buy [the book](http://www.jeffknupp.com/blog/2012/10/04/writing-idiomatic-python/) * [Python Guide](http://docs.python-guide.org/en/latest/writing/style/): nice complement to the above * [Python antipatterns](http://lignos.org/py_antipatterns/): things to avoid when writing Python