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|dlefnibur#dlefnibuR ttinoR .forP

Teaching Assistants

  • moc.liamg|lavuysom#hctivoksoM lavuY
  •|zlaznero#namzlaS nerO
  •|norodnaed#noroD naeD

Feel free to coordinate reception hours with any of us via email.


Formal prerequisite: Extended introduction to CS.
If you're a non-CS student and you wish to take this course, you are encouraged to contact the instructors.


In any case, one has to pass the exam in order to pass the course.

Note Final Grade Computation:

  • Effective Midterm Grade = max{Final Exam, Midterm Exam}
  • Effective HW Grade = average of best 5 out of 6 (non-submission and late submission are 0).
  • Final Grade = 0.75 * Final Exam + 0.15 * Effective Midterm + 0.10 * Effective HW



  • 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