COMS W3261 Computer Science Theory Fall 2015 |

Announcements | ||||||||||||||||||||||||||||||||||||||||||

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 | ||||||||||||||||||||||||||||||||||||||||||

| ||||||||||||||||||||||||||||||||||||||||||

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 | ||||||||||||||||||||||||||||||||||||||||||

Required Text | ||||||||||||||||||||||||||||||||||||||||||

John E. Hopcroft, Rajeev Motwani, and Jeffrey D. UllmanIntroduction to Automata Theory, Languages, and Computation, Third EditionPearson/Addison-Wesley, 2007, ISBN 0-321-45536-3 |
||||||||||||||||||||||||||||||||||||||||||

Additional References | ||||||||||||||||||||||||||||||||||||||||||

Michael SipserIntroduction to the Theory of Computation, Third EditionCengage Learning, 2013 |
||||||||||||||||||||||||||||||||||||||||||

Alfred V. Aho and Jeffrey D. UllmanFoundations of Computer Science, C EditionW. 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 |