Module Identifier | CS10310 | ||

Module Title | AN INTRODUCTION TO THEORETICAL COMPUTER SCIENCE | ||

Academic Year | 2001/2002 | ||

Co-ordinator | Dr Mark Ratcliffe | ||

Semester | Semester 1 | ||

Other staff | Dr Edel Sherratt | ||

Course delivery | Lecture | 16 lectures | |

Workshop | Up to 6 | ||

Assessment | Supplementary examination | Will take the same form, under the terms of the Department's policy | |

Exam | 2 Hours Written exam. | 100% | |

Further details | http://www.aber.ac.uk/compsci/ModuleInfo/CS10310 |

This module introduces basic concepts and results of theoretical computer science. It is intended for students with a background in computing who wish to deepen their understanding of programming concepts and the theoretical underpinning of computer science.

The aims of this module are:

- to provide an overview of the basic definitions and results of theoretical computing;
- to provide a theoretical foundation for specifying and proving program behaviour;
- to introduce software proof techniques.

On successful completion of this module students should be able to:

- state basic definitions and results of the theory of computing;
- provide formal definitions of programming language constructs.

1. Sets, functions and relations - 4 Lectures

Motivation - relationship with programs. What are sets and how do we describe them. When to use enumeration and when to use predicates. The set of truth values. Cardinality. Subsets. Using sets to specify pre- and post-conditions for programs. Sets and sequences. Representing sets as sequences. A proof involving sets and sequences. Proof by contradiction. Cartesian product. Powerset. Proof that a finite set A with n elements has 2n subsets. Set union, intersection, difference. Universal set. Complement of a set. Venn-Euler diagrams.

2. Functions (maps) - 4 Lectures

What are functions and how do we represent them - pictorially, using definitions, injection, bijection, surjection. Functions and the meaning of assignment. Variables. States and operations that cause a change of state. Functions. Relations and logical conditions.

3. Languages and Problems - 4 Lectures

Motivation: computation entails using language to describe and solve problems. Symbols, alphabets. Strings. String concatenation. Alphabets and strings. Languages. Language union, intersection, difference and symmetric difference. Language concatenation. Kleene star. Regular expressions and regular languages. Deterministic finite automata. Nondeterministic Finite Automata. Languages that are not regular. The Pumping Lemma (simple and general forms). Proving that a language is/is not regular. Closure properties of regular language. Using the closure properties to prove that a language is not regular. Context free languages. Context free grammars. Derivations of context free grammars. Context free grammars and regular grammars. Pushdown automata. Languages that are not context free. Context free languages are not closed under intersection. Context free languages are not closed under complementation. Context free languages are closed under union.

4. Induction - 2 Lectures

What is induction? Proof by induction over N. Structural induction. The Principle of Complete Induction. Proofs involving context free grammars

5. Turing Machines - 2 Lectures

What are Turing machines. Beyond context free languages. Example.

Raymond Greenlaw and H. James Hoover. (1998)

Michael Sipser. (1997)