In 1984, the TIME magazine ran a cover story on computer software. In the otherwise excellent article, an editor of a certain software magazine was quoted as saying:
Put the right kind of software into a computer, and it will do whatever you want it to. There may be limits on what you can do with machines themselves, but there are no limits on what you can do with software.
A simple way of summarizing this course is that it is devoted to describing and explaining the facts that refute – no, shutter! – this claim.
In the 5 modules that comprise this course we will acquaint ourselves with the logical limits of computation, as they were conceived within the framework of the foundations of mathematics. We will get to know the standard model for computation, the Turing machine, and learn about problems that it can and cannot solve. Turning to physics, we will find parallel definitions for computability in dynamical systems and in spacetime theories, and use notions from complexity theory to reframe long-standing problems in the philosophy of mind about free will, creativity, and the mind-body problem.
Each module will be composed of frontal lectures, 2-3 writing assignments, and a group project that will be presented in class. Typically, these projects will consist of a digital presentation and an exposition of one of the concepts that will be discussed in the respective module, with an emphasis on its use and mention (or, as usually is the case, abuse and misinterpretation) inside academia and outside it in the popular culture. The course is self-contained and presupposes a mathematical background at the high-school level.