CS Department Logo

COMS W3261
Computer Science Theory
Fall 2015
  Class meets 1:10-2:25pm, Mondays and Wednesdays, 428 Pupin.

Final is Monday, December 21, 2015, 1:10-4:00pm.
   Students whose last names begin A-S should go to room 428 Pupin.
   Students whose last names begin T-Z should go to room 413 IAB.

Course webpage: https://www.cs.columbia.edu/~aho/cs3261
Courseworks website: https://courseworks.columbia.edu
Piazza bulletin board: https://piazza.com/columbia/fall2015/comsw3261
 Teaching Staff
 Name   email   Office hours    Location 
Prof. Al Aho   aho@cs.columbia.edu   Mon & Wed 3:00-4:00   513 CSB picture of Al Aho
Alfred Tan   avt2123@columbia.edu   Wed & Fri 11-1   122 Mudd picture of Alfred Tan
Daniel Schwartz   ds3263@columbia.edu   Mon & Wed 8:45-9:45am   122 Mudd picture of Daniel Schwartz
Derek He   xh2187@columbia.edu   Tue 12:30-2:30   122 Mudd picture of Derek He
Edo Roth   enr2116@columbia.edu   Mon & Wed 5:30-6:30   122 Mudd picture of Edo Roth
Qianpan Jiang   qj2130@columbia.edu   Thu 2:00-4:00   122 Mudd picture of Qianpan Jiang
Surashree Kulkarni   ssk2197@columbia.edu   Tue & Thu 9-10am   122 Mudd picture of Surashee Kulkarni
 Course Overview
  In Computer Science Theory you will learn computational thinking and get to know the fundamental models of computation that underlie modern computer hardware, software, and programming languages. You will also discover that there are limits on how quickly computers can solve some problems and that there are some problems that no computer can solve.

The course will cover the important formal languages in the Chomsky hierarchy -- the regular sets, the context-free languages, and the recursively enumerable sets -- as well as the formalisms that generate these languages and the machines that recognize them. The course will introduce the basic concepts of computability and complexity theory by focusing on the question, "What are the fundamental capabilities and limitations of computers?" The course will also introduce the untyped lambda calculus, the model of computation underlying functional programming languages.

The concepts covered in this course will be amply illustrated by applications to current programming languages, algorithms, natural language processing, and hardware and software design. The topics covered in Computer Science Theory are required background to many Computer Science upper division courses in programming languages, compilers, natural language processing, computer hardware and logic design, analysis of algorithms, computational complexity, learning theory, and cryptography.

 Pre- or Corequisites
  COMS W3137 Data Structures and Algorithms
  COMS W3203 Discrete Mathematics
 Schedule 2015
Date  Lecture  Reading 
Sep 9   1. Introduction to CS Theory  HMU, Ch. 1  
Sep 14   2. Finite Automata and Regular Languages   HMU, Ch. 2 
Sep 16   3. Finite Automata and Regular Expressions   HMU, Ch. 2, Sects. 3.1, 3.3.1  
Sep 16   Homework Assignment #1   Due Sep 28  
Sep 21   4. Regular Expressions and Finite Automata   HMU, Ch. 3  
Sep 23   5. Properties of Regular Languages   HMU, Chs. 3 and 4 
Sep 28   6. Decision Problems for Regular Languages   HMU, Ch. 4 
Sep 30   7. Context-Free Grammars   HMU, Ch. 5 
Sep 30   Homework Assignment #2   Due Oct 16 
Oct 5   8. Pushdown Automata   HMU Ch. 6 
Oct 7   9. Equivalence of CFG's and PDA's; CNF   HMU, Sects. 6.3, 7.1 
Oct 12   10. Pumping Lemma for CFL's; CYK Algorithm   HMU, Ch. 7 
Oct 14   11. Closure and Decision Properties of CFL's   HMU, Ch. 7 
Oct 19   Homework Assignment #3   Due Oct 30 
Oct 19   12. Turing Machines   HMU, Ch. 8 
Oct 21   13. Variants of TM's; the Church-Turing Thesis   HMU, Ch. 8 
Oct 26   14. The Diagonalization Language   HMU, Sects. 8.1.3, 9.1, 9.2.2, 9.3.1  
Oct 28   15. The Universal Language   HMU, Sect. 9.2 
Nov 2   Academic Holiday    
Nov 4   Midterm Lectures 1-15  
Nov 9   16.Post's Correspondence Problem   HMU, Sect. 9.4, 9.5  
Nov 11   17. Undecidable Problems   HMU, Chapter 9 
Nov 11   Homework Assignment #4   Due Nov 25  
Nov 16   18. The Classes P and NP   HMU, Sects. 10.1, 10.2.1 
Nov 18   19. Satisfiability is NP-complete   HMU, Sects. 10.1-10.3  
Nov 23   20. Restricted Satisfiability Problems   HMU, Sect. 10.3 
Nov 25   No class  
Nov 30   21. Introduction to the Lambda Calculus    
Nov 30   Homework Assignment #5   Due Dec 11  
Dec 2   22. The Lambda Calculus II    
Dec 7   23. The Lambda Calculus III    
Dec 9   Course Review  
Dec 14   Final Review by Alfred Tan  
Dec 21   Final Exam: A-S in 428 Pupin; T-Z in 413 IAB Lectures 1-23  
 Required Text
  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
 Additional References
  Michael Sipser
Introduction to the Theory of Computation, Third Edition
Cengage Learning, 2013

  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.
 Class Policies
  Grading 15 % Best four homeworks out of five
40 % Midterm
45 % Final

aho@cs.columbia.edu Updated December 12, 2015