Who to contact, and when:
 First make sure the answer to your question isn't already on the course website (e.g., when is the exam, when are office hours, etc)

We have a Piazza page. The access code will be given in class.
Piazza is mainly meant to be a forum for students to get in touch with each other, and to ask questions that others would benefit from seeing. If you have a question that does not affect other students, or if you want a faster response by an instructor, please use email instead. Do not post questions like "I tried to solve homework X like this but I'm not sure it's correct".

Technical problems about submitting homework, accessing grades, etc:
contact instr160.

Grading concerns: first contact the TA who graded the problem, then if unresolved contact instr160.

Questions about course administration, or course content: contact Prof. Souvaine.
 Major illness or other issue? Feel free to contact Prof. Souvaine, but you are expected to contact Health Services and/or your dean.
Textbooks:
 Required textbook (available on reserve in the Tisch library):
[CLRS] T. H. Cormen, C. L. Leiserson, R. L. Rivest, and C. Stein.
Introduction to Algorithms (3nd edition).
MIT Press, 2009.
More info at MIT press.
Note: the book is massive. We will not cover everything. See "Topics" below.
 Any one of these additional texts is recommended as extra reference and available on
reserve in the Tisch library:
[KT] J. Kleinberg, E. Tardos. Algorithm Design, AddisonWesley, 2005.
[DPV] S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani.
Algorithms, McGrawHill, 2006.
[S] S. Skiena, The Algorithm Design Manual, (2nd edition) Springer, 2010.
[BVG] S. Baase and A. Van Gelder,
Computer Algorithms, 3rd edition,
AddisonWesley, Reading, MA, 2000.
Prerequisites:
COMP 15 and COMP/MATH 61 (in other words, basic data structures and discrete math)
If you have not successfully completed of these courses and are enrolled in comp160, you must contact Prof. Souvaine.
Topics:
This is an introduction to the design and analysis of algorithms, which involves discussing a few basic data structures as well. Many topics could fit in such a course, and not all intro courses go over exactly the same material. To see what is taught in this course, please visit the
Reading page.
About lectures:

On Tuesdays and Thursdays, the class meets in Cohen Auditorium where there are no blackboards or whiteboards. Everything will be done by projection. We will be using the slides developed by Prof. Aloupis and used in prior semesters.

On Mondays, the class meets in Robinson 253 where there are tons of blackboards and various different examples can be worked out.

NOTE: Prof. Aloupis's slides for all topics are available on the Reading page, as are his videos, but please note that all of this material is for reference only. Students are responsible for knowing what was taught during this semester, which will include Prof. Souvaine's variations. In other words, please come to class.
Grading
 Three inclass exams, each worth 15%: tentatively scheduled for February 15, March 13, April 10.
 Final exam, Monday, May 7. This exam will be 3 hours long (we will extend the regular D+ exam block schedule by an hour, so instead of 3>305:30 pm, it will most likely be 36pm).
 Part 1, devoted to the last quarter of the course, i.e., graphs. Worth 15%.
 Part 2, covering all material in the course. Worth 20%.
 About 10 homework assignments (see schedule page). Total value 20%.
If you fail to submit 3 or more assignments without justification, your final grade will drop by a letter. If you fail to submit 5 or more assignments, you will not pass the course.
Furthermore, failing to submit a question in an assignment with x questions counts as 1/x of assignment towards this rule.
Submitting an answer that shows almost no effort will also count towards this rule.
Late homework will not be accepted. However, we will disconsider the 2 worst grades.
If you have a serious reason for not submitting homework or not taking an exam, you should notify your Dean and/or Health Services, and of course you may copy us as well.
Otherwise, exams must be taken at the scheduled times. Check the exam schedule before making travel arrangements.
Important note: Do not assume that the numerical score you receive on homework or exams directly corresponds to a particular letter grade. Your score is just a number that lets us figure out who is doing better or worse than the median, so don't panic if you think you scored low. An evaluation of your performance will be given after the first exam: you will see a plot of exam scores. You will also receive updates about median homework performance. As an example, homework scores have often averaged around 85% where exam scores have often had a median between 65% and 70%,
and an 85% is excellent. Let's play it by ear.
How to submit homework and receive grades
Tips for doing well in this course, if you find it challenging:

Come to class! However, don't expect that all you need to do is show up and simply soak in information. Lectures should serve as an introduction to material, which you should further study on your own later.
If you find that the inclass pace is too fast, consider reading some basic material beforehand.

Taking extensive notes in class works well for some people, but keep in mind that all class notes displayed are already available to you.
Consider bringing a printout of the condensed notes to class. Then you can mark your own observations, clarifications and questions quickly, and spend more time paying attention.

Use the full version of the course notes when studying, not the condensed version. Try to anticipate what is coming next. Try to reprove things. Derive on your own, rather than verifying what is written. When you simply verify what's there, it is easy to overestimate what you've understood.

Don't cram. The most common reason students don't do well on the exams in this course is that they think they can learn the material for an exam in two days.

Spend time on this course regularly. It is a core course in the CS department. If we had programming assignments, you would be spending as much time on this as in comp40. Spend an equivalent amount of time exploring and mastering the theoretical concepts you're presented with. Many students underestimate how much time is required to truly understand some of these topics.

Use all resources available: class notes, the summary PDF document at the top of the Reading page, the videos, the book, the web. Do practice problems from the book, starting with the more basic ones. In many cases you can make your own practice problems (e.g. draw an arbitrary graph and find shortest paths).

As much as possible, don't memorize. Instead, understand.

Pretend that you will have to teach the material that you're reading, to 100 people.
Students and instructors of this course are to respect the following:
Don't cheat:
 If you cheat on an exam, the standard penalty is a suspension and most likely an F in the course.
 It is not acceptable to copy solutions from any source. You may work on homework assignments with your classmates as long as this is mentioned on your submission. However if your solutions show signs of copying, there may be consequences.
 If, for whatever reason, your homework solutions end up matching my solutions in a noncoincidental way (e.g. word for word), this will count as cheating. The same holds for answers to exam questions that are not directly related to course notes. If the reasoning of this rule is not clear, please ask.