The course deals with fundamental questions of computer science:
- What is a computer?
- What can computers do (and what can they not do)?
- Why are some problems computationally hard, while very similar ones are computationally easy?
These questions were mostly raised during the 20th century, and they accompanied and guided the actual development of computers.
Many of these and related questions were resolved, but some (especially those dealing with computational hardness) retained their status as key open problems into the 21st century.
Location and Hours
Please check the course schedule.
- li.ca.uat|ruosnam#ruosnaM yahsiY .forP
li.ca.uat|dmuhcan#ztiwohsreD muhcaN .forP
- Teaching Assistants:
- moc.liamg|vahaliro#vahaL irO
Feel free to coordinate reception hours with any of us via email.
- Formal prerequisite: Extended introduction to CS (aka Scheme).
If you're a non-CS student and you wish to take this course, you are encouraged to contact the instructors.
Final Grade=max(.8exam+.1quiz+.1hw, .85exam+.05quiz+.1hw, .85exam+.1quiz+.05hw, .9exam+.05quiz+.05hw)
hw is average of all 6 HWs, where non-submission is 0.
In any case, one has to pass the exam in order to pass the course.
- M. Sipser, Introduction to the Theory of Computation, PWS Publishing Co., 1997 (second edition, 2005).
- C. Papadimitriou, Computational Complexity, Addison-Wesley Publishing Co., 1994.
- H. Lewis and C. Papadimitriou, Elements of the Theory of Computation, Prentice-Hall, 1981.
- J. Hopcroft and J. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley Publishing Co., 1979.
- אוטומטים ושפות פורמליות, האוניברסיטה הפתוחה, 1991.