COMS W3261
Computer Science Theory
Lecture 1: September 9, 2009
1. Teaching Staff
Instructor
- Professor Alfred V. Aho
-
http://www1.cs.columbia.edu/~aho
- aho@cs.columbia.edu
- 513 Computer Science Building
- Office hours: Mondays and Wednesdays 2:45-3:45pm
- Course webpage:
http://www1.cs.columbia.edu/~aho/cs3621
- Course bulletin board:
https://courseworks.columbia.edu
TAs
- Sumeet Jindal
- sj2405@columbia.edu
- Office hours: Mondays and Fridays 10:00-11:00am
- TA Room: 122 Mudd
- Injung Kim
- ik2249@columbia.edu
- Office hours: Wednesdays 3:00-4:00pm and Thursdays 1:00-2:00pm
- TA Room: 122 Mudd
- Liang Zhang
- lz2232@columbia.edu
- Office hours: Mondays and Wednesdays 9:45-10:45am
- TA Room: 122 Mudd
2. Schedule
- Lectures: Mondays and Wednesdays, 1:10-2:25pm, 702 Hamilton Hall
3. Course Objectives
- Understanding the fundamental models of computation that
underlie modern computer hardware, software, and programming languages.
- Learning that there are problems no computer can
solve.
- Learning that there are limits as to how fast a computer
can solve a problem.
- Learning the foundations of automata theory,
computability theory, and complexity theory.
- Learning about applications of theory to other areas
of computer science such as algorithms, programming languages, compilers,
natural language translation, operating systems, and software verification.
4. Course Syllabus
- Languages and proofs
- Finite automata
- Regular expressions
- Properties of regular languages
- Context-free grammars
- Pushdown automata
- Properties of context-free languages
- Turing machines
- Lambda calculus
- Undecidability
- Complexity theory
- Other models of computation
5. Textbooks and References
- The course text is
- John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman
- Introduction to Automata Theory, Languages, and Computation, Third Edition
- Pearson/Addison-Wesley, 2007, ISBN 0-321-45536-3
- Other good references are
- Michael Sipser
- Introduction to the Theory of Computation, Second Edition
-
- Thomson, 2006
- Alfred V. Aho and Jeffrey D. Ullman
- Foundations of Computer Science, C Edition
- W. H. Freeman, 1995
- An online version of this book is available
here.
6. Course Requirements
- First midterm (30% of final grade)
- Second midterm (30% of final grade)
- Final (40% of final grade)
7. Languages
- An alphabet Σ is a finite, nonempty set of symbols.
- Examples: {0,1}, ASCII, Unicode
- A string is a finite sequence of symbols chosen from
some alphabet.
- Examples: ε (the empty string), 0, 01, 011
- Common operations on strings: concatenation, reversal
- Terms associated with strings: prefix, suffix, substring, subsequence
- A language over Σ is a set of strings whose symbols are chosen from
Σ. Examples:
- the empty set, ∅
- {0,1}
- P = {10, 11, 101, 111, 1011, 1101, ... }
(the binary representations of the prime numbers)
- Operations on languages: union, concatenation, Kleene closure
- Example: {0,1}* = {ε, 0, 1, 00, 01, 10, 11, 000, ... }
(all strings of 0s and 1s)
- Question: How many strings are there in {0,1}*?
- A problem is the question of deciding whether a given
string is a member of some particular language.
- Example: Given a binary number x, is x in P?
- Question: How many languages over {0,1} are there?
8. Proofs
- What is a theorem?
- A theorem is a statement that has been proven true by a
convincing logical argument.
- What is a proof?
- A (deductive) proof is a sequence of statements each one of
which is a given fact or follows by a logical rule from some
previous statements in the proof.
- Types of proof
- By deduction
- By construction
- By induction
- By structural induction
- By contradiction
- Example: the square root of two is not a rational number.
- Many others
9. Practice Problems
- How many (a) prefixes, (b) suffixes, (c) substrings, (d) subsequences are there in a
string of length n?
- What does it mean for a string to have balanced parentheses?
- Prove that the following recursive definition generates all and only
all strings of balanced parentheses.
- Rule 1 (basis): The empty string is a balanced string.
- Rule 2 (induction): If x and y are balanced strings,
then (x)y is a balanced string.
- Research problem: If x is a string of length m and y
is a string of length n, then what is the maximum possible number of
longest common subsequences between x and y as a function
of m and n?
10. Reading Assignment
aho@cs.columbia.edu