Models of Computation - Course Description

Models of Computation

What does it mean to compute? People have struggled with this question for a long time, and many models of computation have been invented. These models guide our thinking about what it means to compute.

In this class, our goal is to understand, through examples, computation in a broader sense,
so that we can recognize it even when it looks nothing like a traditional computer program,
and so that we can think about and even create computational models that are not close to computers.

Course Info

In 2015 (just like in previous years),
the class will be on Fridays, from 2:00 to 4:00,
starting February 21.

In 2015 (unlike last year) the class will be in building
ML,
floor F, room
39.

There will be roughly one model per lecture.

There will be some exercises to help you get to know each model.

There are no prerequisites.
You do not need any specific neuroscience or biological or computing knowledge when starting the class.
However, skills such as thinking clearly and being able to solve puzzles will be useful.

The class can be taken for credit both by ETHZ students (class code: 252-1424-00)
and by UNI-ZH students (class code: INI-427).

The class is open to Bachelor, Master, and PhD students.

Help with the exercises is in room IY55g20
(the "Elk Room") on Tuesdays from 15:00-15:45.

The grade will be based on 67% weekly assignments and 33% final oral exam.

If you have any questions, you can send me an email ( myName@ini.ethz.ch , myName={cook,jmartel} ).

Why study models of computation?

These models are fun, but there are also more serious reasons to be interested in models of computation.

For example, we would like to understand the brain. There is one key reason why Artificial Intelligence has failed so far to live up to the naive expectations of reproducing human intelligence, and that is this: We have a terribly poor understanding of the computation that goes on in the brain. We are completely unable to simulate it, and we cannot even recognize what the general form of this computation is, despite decades of experimental data from neurobiologists. If the brain worked even remotely like a Turing machine, we would understand it by now. Similarly, if we had a computational model that worked even remotely like a brain, we would have a good understanding of the brain by now. The problem is that we are incapable of understanding the brain so long as we have no model of computation that works anything like the brain does.

Similarly, we do not understand biological programs. We cannot recognize a program to build a rose even if we have access to the full source code (the dna). We are starting to have some clues how these programs work, and the field of synthetic biology is starting to tackle the problem of how to create working programs, but we are still largely in the dark. Today, we cannot be sure whether even the smallest of our synthesized biological programs will work as intended, and systems of the size presented by biology are still a distant pipe dream. Again, the key problem is that we have no models of computation that are appropriate to this setting. We don't even have any idea how to define whether a program to build a rose has produced the correct output or not, since every rose is different, even when made from the same dna. Lacking models that we can analyze, we don't know which features of these biological systems are the important ones, and we are unable to distill the key principles into simple models that permit analysis.

So, to understand the brain or biological computation, we will need to develop entirely new models of computation. (Different ones for brains than for biology.) Of course, it is not clear yet what these new models should be. It seems to me that the best hope for developing new models is the following.

Understand a variety of existing models of computation.

See how these models are similar to and different from each other, and similar to and different from the kinds of desirable computation that we have not yet been able to model.

Do our best to try to create models that are closer to brains (or biology) than existing models.

With any luck this stochastic gradient ascent will eventually get close enough that the models start to pay off by allowing productive theoretical analysis of the processes in question, allowing us to develop principles that allow us to scale up similar systems of our own engineered design.

This class will help with (1) and (2) above. Then (3) is up to you, in your scientific career!