Contents (hide)

Welcome to Design of Algorithms homepage

This course is all about algorithms and this site is all about helping you to succeed in this course. It will be our main information channel so be sure to come back often (you can see the last updated pages by using the recent changes link on the left side tab.

The class schedule and staff information is found on the course info page. The practical sessions are based on the lecture. You should be in at least one lecture before the practical session (every week).

Please pay special attention to the academic integrity section.

Finally, make yourself a habit to check the announcements page for important messages.


  • Reductions.
  • Greedy algorithms.
  • Minimum spanning trees. Cuts.
  • Dynamic programming.
  • Shortest paths algorithms: Dijkstra, Bellman-Ford, Floyd-Warshall.
  • Depth First Search (DFS), strongly connected components, topological sort.
  • Maximum flow algorithms of Ford-Fulkerson, Dinitz. Applications to matching and assignment problems.
  • Randomized algorithms. String matching.
  • Introduction to complexity theory: complexity classes, Cook-Levin theorem, techniques for proving NP-completeness.

Text Books

  1. T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, 2nd edition.
    An online student source is available at CLRS for students.
  2. J. Kleinberg and E. Tardos, Algorithm Design.

Exams and Grade Calculation

The course grade will be composed of 85% final exam and 15% homework assignments, provided the final exam grade is at least 56. Otherwise the exam grade will be your course grade.

Please note that according to the university Exam Procedures a student qualifies for a special testing date only in very specific situations. Also note that a student that will be absent from the Midterm or exams due to any other reason will be graded zero. Doctor approval will not be accepted. If you have a problem, send a email or talk with one of the TA or lectures BEFORE the exam / Midterm and we will find a solution.

Important dates
  • Moed A
  • Moed B

Good luck!


You will have 6 homework assignments throughout this semester. We encourage you to submit in pairs for three reasons:

  1. It is easier.
  2. Nothing compares to midnight debates about a spanning tree.
  3. We don't have many graders.

Each assignment will be partially graded. That is, we will arbitrarily choose some questions for checking.

  • Questions we do not check will receive full grade if there was some effort to solve it.
    Providing a nice recipe for a cheese cake does not count for an effort.
  • Questions we do check, will be graded with full strictness - be afraid!

Naturally, you will not know which questions are checked, otherwise it wouldn't be fun… The assignments page will provide you with submission details and everything else relevant on the matter.

The final assignment grade will be made off 5 out of 6 best assignments. The drawback is that we are going to be much stricter with delay requests. We already published the deadline for all assignment and you should plan your schedule carefully.

Any requests such as " Hi, I have a midterm / exam / big assignment in different course / need more time for the assignment" will automatically rejects.

You are welcome to discuss the assignments, but you are not allow to publish your solution in the net. Cheating will not be tolerate.

Assignment appeals

Assignment appeals will not be considered.

Cheating in university courses is regarded as a serious offense. To avoid any possible misunderstanding, please read the following carefully.

Academic dishonesty includes any act of obtaining, soliciting or making available to others, material related to homework assignments. If you commit any of the above, then you are guilty of academic dishonesty. If your partner commits any of the above and you submit the assignment jointly, then you are just as guilty of academic dishonesty. If you choose to work with a partner, then you are both personally responsible for what you submit together. Claiming that you were not aware of the fact that your partner copied the assignment from somebody else will not absolve you of any responsibility.

To eliminate any doubts, we make no distinction between the two (or more) sides of the cheating. If we suspect that Bob and Alice have copied an exercise one from the other, we see no way they could have done this without cooperation. It is your own responsibility to make sure that nobody can copy your assignment.

In case that you are quoting an external resource (such as books, internet etc.) you must follow the university Quoting Rules. You cannot use a reference without appropriate citation.

We will not tolerate academic dishonesty in this course. If you are suspected of academic dishonesty, then a complaint will be filed with the university disciplinary board (ועדת משמעת) and a detailed report placed in your academic records. The minimal penalty for this type of offense is a grade of zero in the course. You might also be expelled from the university.

We reserve the right to check for academic dishonesty anytime after you have submitted an assignment. Be aware that publishing the assignment solution in the internet before the deadline is a serious violation of the academic integrity. Please avoid that.

Please do not cheat!
In the previous course some students broke the academic integrity rules in their assignments. They were punished by the university disciplinary board!


Some things you ought to know before you submit an ir'ur(appeal). Note that the grade can also be decreased. If you decide to proceed, you should do it through the department's secretariat.

Ir'ur (Appeal)

An ir'ur is justified only if you feel that we misunderstood your answer. Since we try to grade the questions in a similar way for all the students do not lodge a request if your only complaint is that too many points were deducted.

When lodging a request for an ir'ur, you have to:

  1. Tell us exactly where, and in what, you feel we did not understand your thinking. A request saying " I deserve more for my answer", or "Please recheck question 1" will be returned to its sender.
  2. Explain the correctness of your solution as a whole, and not only the problematic sentence. That is, you have to write a full answer and show that what you wrote in the exam matches your solution.

If you have a question or request…

Usually students have questions. We will try to provide you with as much information as possible through this site, but sometimes if will not be enough. Before asking us try to search for an answer on the site and read the FAQ page. You can also use the search box at the upper right.

We will make an effort to provide each assignment with a forum for your questions. In addition you can contact the relevant staff member by e-mail (see course info for details).

Administrative questions/requests (sickness, delays, anything else…) MUST be sent to