The course will be an entry point to both the mathematical theory of computation, and also to discussions of the place that the theory occupies in broader intellectual discourse.
The 'math' aspect of the course presents the theory of computation and a bit of logic related to it. Students will write programs in a new language called 1#, and learn theory by reasoning about their programs. A math or computer science background is not really needed (but of course it would help). It is more important to enjoy solving puzzles and to be willing to immerse yourself in the world of abstract thinking. For example, would you like to write a computer program to do something "weird", such as output itself?
The course will also look critically at the uses of results and metaphors from computability theory that have found their way into cognitive science, philosophy, biology, and other areas. This will involve readings of either survey papers or popular ("Scientific American" style) articles. The idea would be to present debates as to whether the uses of computability theory are genuine or spurious.
The class will have weekly homework on the technical material. Some of the homework will involve short writing assignments. The non- technical part of the course requires two papers.