 
Summary: Lecture Notes on the Theory of Computation Sultan Almuhammadi Sep. 2006
1
ICS 354 Automata and Language Translation Systems
Lecture Notes on the Theory of Computation (LNTC)
Introduction
Each branch of Computer Sciences has its own objects of study, and it is time we turned
more specifically to those of the theory of computation. The theory of computation is the
mathematical study of computing machines and their capabilities. We must therefore
develop a model for the data that computers manipulate. This is a big area in the
theoretical computer science. Unfortunately, we are not going to discuss lots of
interesting problems and theorems here since they are out of the scope of this course.
However, we will just touch few issues related to the area of modeling computation to get
the feeling of studying this topic. We adopt the mathematically expedient choice of
representing data by strings of symbols. The best way to start this topic is by introducing
the notion of alphabet and languages.
The format of the lecture notes is as follows. All concepts and issues (like definitions,
theorems, notations, and special notes) are sequentially numbered in brackets [like these]
so that the student may need to study and understand them in sequence. Some exercises
are given at the end of each section to ensure understanding of the material. Each section
has a reference to the corresponding sections in the textbook (marked with §)
