COMS W3261 CS Theory
Lecture 1: Introduction to CS Theory

1. Course Objectives

2. Course Syllabus

3. Textbooks and References

4. Course Requirements

5. Languages

6. Proofs

7. Practice Problems

  1. How many strings over {0,1} are there?
  2. How many languages over {0,1} are there?
  3. How many (a) prefixes, (b) suffixes, (c) substrings, (d) subsequences are there in a string of length n?
  4. What does it mean for a string to have balanced parentheses?
  5. Prove that the following recursive definition generates all and only all strings of balanced parentheses. Hint: Use induction on the length of a string to show that every balanced string of length 2n is generated by the definition and use induction on the number n of rules used to generate a string to show that every string generated by the grammar is a string of balanced parentheses.
  6. See pp. 64-68 of Chapter 2 of Aho and Ullman, Foundations of Computer Science for an answer to this practice problem.
  7. Use contradiction to show that the square root of two is not a rational number.
  8. 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?

8. Reading Assignment



aho@cs.columbia.edu
verma@cs.columbia.edu