David R. MacIver - How do I know if this code works?
I have a problem. I write some code to solve that problem. How do I know if I succeeded?
If I only have to solve one form of the problem, I can just run it and look at the answer, but most software has to deal with a huge variety of inputs and situations. How do you know you haven’t missed something?
Property-based testing provides one answer to this question. Using the Hypothesis property based testing library (and the py.test testing framework), we’ll see how we can create those situations before our software ever escapes into the wild and test that it still behaves correctly, thus giving us far more confidence in our code than we could otherwise have had.
Daniele Procida - Poets, programmers and Python
Current work in artificial intelligence is largely focused on big data, huge ontologies and vast resources. Some other paradigms have become obscured lately, and some important questions have fallen from view.
We can approach questions about computing and intelligence from a different direction, and at a different scale. It also turns out to be a lot more fun, not to mention accessible.
Three key concepts in programming - loops, self-reference and hierarchy - also turn out to have powerful functions in poetry, art, logic and artificial interest research. In fact we can explore them all, and how they intersect, with simple Python programs.
In this talk I will discuss: Hamlet; Alice’s Adventures in Wonderland; TextArc, metadata, the Mexican artist Ulises Carrión; the Oulipo group of mathematicians, writers and artists; rule-governed play; self-reference; Spanish; the ouroboros; Douglas Hofstadter; humour; the quest for intelligence and self-consciousness; the emergence of complex structures from simple processes - and throughout, I will demonstrate Python programs that dive into them.
Would you like to give a talk? Get in touch on Twitter: @Pydiff
This month’s venue is lecture theatre T/2.07 in the School of Computer Science & Informatics. Enter the building at the main entrance, and follow the awesome signs!