CM10020—Computation II: Computability and Decidability

1Textbooks

Main textbook:

Please consider also, for the second part of the course on automata:

2News

29.1.07There will be tutorials in Week 1, they will revise some background notions.

16.2.07I distributed in class some slides on automata by Führmann. You can follow the part of the course on languages and automata on them, but, ideally, you should use the Hopcroft-Motwani-Ullman textbook.

16.2.07Have a look at the 2006 exam paper.

12.4.07In the week from 16 to 20 April, due to the absence of Tom Gundersen and Mark Price, the tutorials will be covered by Tom Crick and Jonty Needham. Tutorial groups will not be split, and students should go to the rooms indicated by their timetables.

3Course Info

In the following, I will link some material distributed or used in the past for this course: please disregard any information related to the organisation of the course: it is possibly not valid any more. Also, keep in mind that I might change the presentation, sometimes substantially. The material we cover is clearly indicated below.

Usually, in every lecture I suggest some exercises, and then I report these suggestions on this web page. I always suggest exercises on this page after lectures. You are supposed to seriously try, and hopefully solve, all the suggested exercises before the next tutorials and lectures. In the tutorials, and in part also in the lectures, you can check the correctness of your solution and we will go through the difficulties you might have encountered. Be active! This is an easy course if you are active and follow these suggestions, but it becomes very difficult otherwise, and you risk to fail your exam!

Lectures and topics

31.1.07—Lecture 1Introduction to the course, first basic definitions about sets and total, partial and injective functions.

2.2.07—Lecture 2Function: surjective and bijective; domain and range of functions; enumerable sets; enumerability and Cantor's proof of non-enumerability of real numbers.

7.2.07—Lecture 3Non-enumerability of the powerset of natural numbers (Cantor's diagonalisation) and enumerability of the set of positive or null rational numbers (Cantor's zig-zag).

9.2.07—Lecture 4Proof that N × N, Nk and the set of of subsets of natural numbers whose size is less than a given k are enumerable; definition of encoding.

14.2.07—Lecture 5Proof that the set of finite subsets of natural numbers is enumerable and relation between encoding and enumeration.

16.2.07—Lecture 6Alphabet, Kleene star, language, string and first ideas on automata.

21.2.07—Lecture 7Deterministic finite automaton (DFA), extended transition function and language recognised by a DFA, example of all these things.

23.2.07—Lecture 8Nondeterministic finite automaton (NFA), extended transition function and language recognised by an NFA, example of all these things.

28.2.07—Lecture 9The powerset construction, transforming NFAs into DFAs.

2.3.07—Lecture 10Proof that NFAs and DFAs recognize the same languages; regular expressions and their meaning.

7.3.07—Lecture 11Example of regular expression, informal definition of ε-NFA and transformation of regular expressions into ε-NFAs.

9.3.07—Lecture 12Definitions of formal grammar, context-free grammar and regular grammar, with examples.

14.3.07—Lecture 13Formal description of the language anbncn; how to transform a regular grammar into a regular expression.

16.3.07—Lecture 14Proof that anbn cannot be recognised by a DFA; definition of Turing machine.

21.3.07—Lecture 15Explanation on why Turing machines compute NN functions.

23.3.07—Lecture 16Computable functions, proof that some NN functions are not computable.

18.4.07—Lecture 17Proof of the fact that the diagonal and halting functions are not computable.

20.4.07—Lecture 18Introduction to recursive functions; primitive recursive functions: successor, zero, projections, composition and primitive recursion.

25.4.07—Lecture 19Examples of primitive recursive functions for addition and product; sketch of a proof that primitive recursive functions are total.

27.4.07—Lecture 20Definition of the Ackermann function, lexicographic ordering and proof of the totality of the Ackermann function; definition of the minimisation function.

2.5.07—Lecture 21Recursive functions and theorem about recursive functions being all and only the Turing-computable ones.

4.5.07—Lecture 22Exam modalities and discussion of two exercises of last year's exam.

Material covered and to be prepared for the exam

Exercises

Consider looking into these exercises with worked solutions, made by Emma Jones and Richard McKinley for a past course. It is necessary to be able to do all the exercises suggested in class and in this page, in order to pass the exam with a good grade.

Try also the 2006 exam paper.

4Tutors and Office Hours

Tom Gundersen and Mark Price.

When you want to talk to me, just drop me an email and we'll arrange for an appointment.

4.5.2007Alessio Guglielmiemail (replace AT by @)