CS 360: Introduction to the Theory of
Computing
Professor Shai Ben-David
Fall 2013, University of Waterloo
1
Introduction & Course Structure
September 10, 2013
1.1
Course Structure
The grading scheme is 30% assignments, 30% midterm, and 40% final. If you
2
Inductive Definition of Sets and Structural Induction
We'll start of by reviewing some basic notions that were covered on CS 245, to ensure that everyone's on
the same page.
2.1
Formal Tools for Defining Sets
We want languages to model every computation
7
Turing-Recognizable Languages
Recall that we mentioned two types of tasks:
Decision problems. Given some inputw and some languageL , decide if
wL or not.
Function computations. Given some inputw and some functionf : ,
output the stringf (w).
We have f
4
Overview of Regular Languages
October 3, 2013
The following definitions are equivalent:
L is regular if for some regular expressionr,L =L(r).
L is regular if there exists some DFA,A, such thatL =L(A).
L is regular if there exists some NFA,N , such that
5
Context-Free Grammars
October 15, 2013
There are some languages that are more complex than regular languages. Let's look at a
few examples of such languages.
Example 5.1. Let =a,b, +, (, ). LetL =w :w has the same number of left
brackets as right brack
3
3.1
Computing Machines
September 24, 2013
Deterministic Finite Automata
The first model of computing machines that we'll discuss are deterministic finite automata (also known as DFAs). A DFA is denoted byA = (,Q,q0,d,F ), where
is the alphabet (the se
6
Turing Machines
Thesis (Church Thesis). Every task that can be computed can be computed by a Turing
machine.
We call this a thesis rather than a theorem because it's not particularly clear what it means
for a task to be "computed." This thesis is more o