G12FCO -- Formal Computation

Lecture notes and other supporting materials from a module given by me for the Mathematics Department of Nottingham University in 1999 and other years. Supplied as is, with no warranty as to their continued correctness! Use as you see fit, but please achnowledge this site if you publish or publicise this material.

Quick links:

General Information:

This is a 10-credit level 2 module given in the Spring semester, and meant primarily for Honours mathematicians, though other qualified students are welcome to attend. You will be assumed to have a general familiarity with concepts of computing, limits and other mathematical skills, such as could be obtained from modules G1ACOM, G1ALIM and G1AMSK.

There will be two lectures per week, and a problem class in alternate weeks. Assessment will be by a two-hour written examination. Coursework will be set, but it will not count for assessment. Lecture notes, problem class notes, coursework and solutions will appear on the Web, in pages referenced from this one [see below]. If you do not already know how to use a Web browser, you are strongly encouraged to find out! From the Web, you can get either soft [disc file] or hard [printed] copies of any of these notes, which you may use as you like for purposes related to the module [but note the copyright; you may not publish them elsewhere, or pass them off as your own work]. Note added 2016: these conditions now relaxed -- ANW

Please note: The information on the Web is for your convenience. You will get the usual sorts of handouts, such as problems, in paper form. I neither require nor expect you to print everything out and read along with it as I lecture!

If you do decide to print everything out using the Department's facilities, you will find it quite expensive [though much cheaper than a textbook, and much faster than writing it out yourself!]. Here are some hints for making it cheaper: (a) You don't have to print to a laserwriter -- any old printer will do. Nor do you have to do it in C30 -- you are welcome to copy the files to floppies and print them off anywhere you find cheap printing facilities. (b) You don't have to print out the whole file -- feel free to take a copy and edit out the headers and footers and anything else you don't really want printed. (c) You can use a smaller font -- students with normal eyesight should be able to read at 6-point size, which gets most of the material onto a single page per lecture. (d) Share with your friends -- print one copy and take photocopies [which can be reduced, double-sided, whatever]. (e) There is a Unix facility, psnup, which will take a PostScript file [obtained by careful setting of options in the `print preview' menu item] and print it 2 or 4 pages to one sheet of paper.

Content:

There will be three strands:

Reading:

There is no `set book'. Some relevant books are
David Harel: Algorithmics: The Spirit of Computing, Addison-Wesley, 1987, 2nd Ed 1992. QA 1157 HAR
An excellent survey of the field. Written mostly for computing scientists, so the detailed contents are largely irrelevant, but the broad sweep corresponds quite well with my point of view.
Edsger W. Dijkstra: A Discipline of Programming, Prentice-Hall, 1976. QA 928 DIJ
Rather old, but a classic. Ignore the impenetrable programming, and read this for the insights into how to analyse problems, and for the uniquely mournful slightly-fractured English. Covers only the first part of the module.
Edsger W. Dijkstra, W.H.J. Feijen. A Method of Programming, Addison-Wesley, 1988. QA 1145 DIJ
Really a tidied-up and modernised version of the above, which has thereby lost all its character.
Marvin L. Minsky: Computation: Finite and Infinite Machines, Prentice-Hall, 1972. QA 1135 MIN
Another classic, extremely well-written and full of insights, but now showing its age. A revised edition is long overdue. Talks only about what computers can or cannot do, so only covers a small part of the module, but still well worth reading.
Michael R. Garey and David S. Johnson: Computers and Intractability: a Guide to the Theory of NP-completeness, Freeman, 1979. QA 1157 GAR
Mentioned here only because it is still, despite its age, the definitive guide to complexity. Absolutely not light bed-time reading, but indispensable to professional mathematicians in this field.
Christos H. Papadimitriou: Computational Complexity, Addison-Wesley, 1994. QA 1160 PAP
An excellent and well-written survey of complexity. A good source for applications of complexity (e.g. to cryptography), but some chapters are rather difficult.
Henry M. Walker: The Limits of Computing, Jones and Bartlett, 1994. QA920 WAL
A more-or-less non-technical survey, which you may find easier to read than the serious texts above.

Aims, objectives, transferable skills:

Aims: To introduce students to the concept of an algorithm, and to related ideas such as correctness, feasibility and complexity. Objectives: By the end of the module, you should be able to solve a range of problems by means of algorithms which you can prove to be correct, and should be able to analyse your algorithms for efficiency. You should understand that some problems are inherently more complex than others, and may be infeasible or even insoluble in principle. Transferable skills: Concepts of (algorithmic) process, feasibility and complexity; the analysis of problems in the light of these concepts.

Lectures:

Lecture 1 -- Algorithms Lecture 11 -- NP-completeness
Lecture 2 -- Searching Lecture 12 -- Some NP-complete problems
Lecture 3 -- Pseudo-algorithms Lecture 13 -- Beyond NP-completeness
Lecture 4 -- Sorting I Lecture 14 -- Cryptography
Lecture 5 -- Sorting II Lecture 15 -- What is a computer?
Lecture 6 -- Minimum spanning tree Lecture 16 -- From finite to infinite
Lecture 7 -- Pattern matching Lecture 17 -- Powers and limits of TMs
Lecture 8 -- Eight Queens, etc. Lecture 18 -- More limits of TMs
Lecture 9 -- Feasibility Lecture 19 -- Computable numbers and functions
Lecture 10 -- The classes P and NP Lecture 20 -- Minimalist computers

The last few lecture slots will be occupied by revision classes; these will be of a nature similar to problem classes, but attendance will not be compulsory. During the `revision week', I shall keep `office hours' at the lecture times for otherwise unscheduled consultations with students. You are, of course, welcome to see me at any other time, whether or not by appointment, but at random times you take pot luck as to whether I am available and in my office.

Problem Classes:

Problem class 1 -- Hamming's problem Problem class 1 -- Discussion
Problem class 2 -- Median/Sorting Problem class 2 -- Discussion
Problem class 3 -- Backtracking/Feasibility Problem class 3 -- Discussion
Problem class 4 -- NP-completeness Problem class 4 -- Discussion
Problem class 5 -- Machines Problem class 5 -- Discussion

Coursework:

Coursework 1 -- Algorithms Coursework 1 -- Solutions
Coursework 2 -- NP-completeness Coursework 2 -- Solutions
Coursework 3 -- Computability Coursework 3 -- Solutions
`Mock' Exam `Mock' Exam -- Solutions
1996-97 Exam [not yet available] 1996-97 Exam -- Model Solutions
1997-98 Exam [not yet available] 1997-98 Exam -- Model Solutions [not yet available]
1998-99 Exam [defininitely not yet available!] 1998-99 Exam -- Model Solutions [likewise]
top of page
E-mail: [my initials] [at] cuboid.me.uk, home page: http://cuboid.me.uk/anw.

Copyright © Dr A. N. Walker, 1996-99, 2016.