Can we teach computers to code?

Software can already be artistic or make mathematical finds, but for it to excel we have to give it the right skill set, says AI researcher Simon Colton.      Simon Colton is professor of digital games technology at Falmouth University, and of Computational Creativity at Goldsmiths College in London. He works on software that behaves in ways that would be deemed creative if seen in humans – such as painting the image of him above. You designed software called HR to make its own discoveries. Has it had much success?One thing HR came up with was a classification of mathematical structures known as Latin squares. Like a Suduko puzzle, these are grids of symbols where each row and column contains every symbol. HR produced some of the first algebraic classifications of these structures. A version of HR also independently came up with Goldblach’s conjecture – that every even integer greater than 2 can be expressed as the sum of two primes.  Are mathematicians interested in using the system?We found that mathematicians like software to do the boring grunt work – the massive calculations and trivial proofs they know are true. But creative things like inventing concepts and spotting conjectures they like to do themselves. I once sent Herbert Simon, the Nobel prizewinning economist and computer scientist, an email about a conjecture that HR had proved. He later told me that he hadn’t read to the end because he wanted to solve the puzzle himself. His wife said she had to call him to bed.  How do you make software discover things?You give it data that you want to find something out about, but rather than looking for known unknowns – as with machine learning, where you know what you’re looking for but not what it looks like – it tries to find unknown unknowns. We want software to surprise us, to do things we don’t expect. So we teach it how to do general things rather than specifics. That contradicts most of what we do in computer science, which is to make sure software does exactly what you want. It takes a lot of effort for people to get their heads round it.  Can computers make breakthroughs?I think we will only see computers making true discoveries when software can program itself. The latest version of HR is specifically designed to write its own code. But it’s a challenge; it turns out that writing software is one of the most difficult things that people do. And, ultimately, there are mathematical concepts that you can’t turn into code, especially ones dealing with infinity.  Another program of yours, The Painting Fool, creates portraits. How do people respond to this type of creativity?Mathematicians will accept a computer as being creative if it produces great results over and over again. But in the art world, people take more convincing. When you buy a painting you buy it for many reasons, only one of which is that it will look good with your sofa. When you like a painting, you’re celebrating the humanity that went into it. How can we get software to fit in with that? I don’t want to do Turing tests where we try and confuse people about who or what is doing something. We want people to relate to what the software does on its own terms. But computers won’t replace people in the creative industries because we will always pay for humanity – for blood, sweat and tears. This article is copyright to New Scientist. For a weekly dose of more of these kinds of features, subscribe to New Scientist from just £29.

Would you like to be our next guest author? Find out how here!

Learn more about the latest developments and opportunities in computer science, AI and machine intelligence at the next RE.WORK Deep Learning Summit, taking place in San Francisco on 28-29 January 2016. For more information and to book, visit the event page here.