General Information

Course Outline

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.


Homepage|hhcatfi#rentiaH hcatfI .rD
Homepage|ruosnam#ruosnaM yahsiY .forP

Teaching Assistants:
Homepage moc.liamg|vahaliro#vahaL irO
Homepage moc.mehseg|onairam#niahcS onairaM

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=0.75exam+0.15quiz+0.10hw

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

Reference books

  • 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.‏
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License