Home page

Course Outline

Homeworks

Links

 

Department of Computer Science - Columbia University

COMPUTABILITY AND MODELS OF COMPUTATION

CS3261 - Summer 2002


Announcements

2002-07-08: Message board

The message board is up: here.
If you have general questions that are of anyone's interest,
please post them to that board.


General Information

Instructor:

Michel Galley
last name at cs.columbia.edu
724 Schapiro CEPSR
Phone: 212-939-7120

Instructor office hours:

Th 5- 7, Sa 3-4. Also by email, appointment, or after the class.

Teaching Assistant:

Vadim Lyubashevsky
vl88@columbia.edu

TA office hours:

F 5-7 in the TA room.

Lectures:

MW 5:30 - 8:40

Lecture room:

633 MUDD

Credits:

3


Required Textbook

Introduction to the Theory of Computation
Michael Sipser; Brooks/Cole Pub Co.
ISBN: 053494728X; 1st edition (1996)

This is one of the bests undergraduate-level books on this subject. The theory of computation is presented in a remarkably clear way. Its "proof idea" can give you a good intuition about the key concepts of theoretical computer science. For a more in-depth coverage on this subject, I suggest you refer to one of the three textbooks listed below.

In this class, we will cover chapters 0 to 5, and 7 (possibly chapter 8). Make sure that you check the errata: [1st printing] [2nd printing] (most of you should have the 2nd printing).

Sipser book

Other References

Elements of the Theory of Computation
H. Lewis, C. Papadimitriou; Prentice Hall
ISBN: 0132624788; 2nd edition (1997)

Lewis book

Introduction to Automata Theory, Languages, and Computation
J. Hopcroft, R. Motwani, J. Ullman; Addison-Wesley
ISBN: 0201441241; 2nd edition (2000)

Hopcroft book

Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science
M. Davis, R. Sigal, E. Weyuker; Academic Press
ISBN: 0122063821; 2nd edition (1994)

Davis book

Topics Covered

This course will introduce the basic concepts of the theory of computation. The topics covered are the theory of automata and formal languages, including deterministic and non-deterministic automata, regular expressions, pushdown automata, context-free grammars, deterministic and non-deterministic Turing machines. The second part of the class will introduce computational complexity: complexity of computational models, P versus NP, and NP-complete problems. See the course outline page for more information.

Course Structure

The course consists of lectures twice a week, weekly problem sets, and a final exam. The final will take place during the last day of class. The grade will be broken down as follows:

Homeworks: 60%
Final exam: 40%

Prerequisites

Discrete Math (COMS W3203) is definitely needed for you to understand the concepts of this course. It will be quickly be reviewed during the first lecture, but this might not be enough for people who have no prior exposure to this material. You are also expected to have taken one of the Data Structures classes (either COMS W3137 or W3139), but this is not a strict requirement, and you shouldn't have any problem following the course if didn't.

Homeworks

Homeworks contain sets of exercises and problems. They will be issued on a weekly basis, usually at the beginning of Monday's class, and due in class the same day the following week. Late submissions will only be accepted with instructor's approval (if you know in advance that you will be unable to submit your homework in time, contact him as soon as possible). Weekly assignments are posted to the homework page.

Academic Honesty

Homeworks are mostly individual efforts. You may discuss with others, share ideas and thoughts, assist each other in understanding the material, but your homework submission must be a product of an individual. This form of collaboration shouldn't be an opportunity to copy answers from others. See Columbia academic policies for more details.


Michel Galley <galley@cs.columbia.edu>
Last updated: Tue Jun 9 21:43:23 EDT 2002