Foundations of Algorithms (CSCI66502), Spring 201415
Instructor: Ivona Bezakova, email: my_initials@cs.rit.edu (please replace my_initials with ib)
Class meets: Tu/Th 3:204:35, room (GOL)3435
Office hours (tentative), January 26  May 12: Tuesday 11am12pm (due to a conflict in my schedule this office hour moved from the original time 1011)
and Thursday 23pm, office (GOL)3645
Tutoring center: schedule, staffed by students who took (and performed well in) theoryrelated courses in recent years
0. Homework and Reading
Assigments
For information about topics covered in class,
reading and homework assignments, follow this
link.
1. Prerequisites
CSCI 603 (Advanced C++), CSCI 605 (Advanced Java), and CSCI 661 (Foundations of CS Theory), with B or better in each of these courses (or equivalent),
or permission of instructor (students who take CSCI 261 may not take CSCI 665 for credit).
2. Text
Algorithm Design by Jon Kleinberg and Eva Tardos.
The assignments webpage (that will contain slides from the lectures):
http://www.cs.rit.edu/~ib/Classes/CSCI665_Spring1415/assignments.html
Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein, 3rd ed. is a great text for further reading (optional).
3. Course description and intended learning outcomes.
This course provides an introduction to the design and analysis of algorithms.
It covers a variety of classical algorithms and their complexity and will
equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms.
Intended learning outcomes:

Students should demonstrate an understanding of basic concepts related to the design and analysis of algorithms.
Evaluation: Assessed by homeworks and exams.

Students should demonstrate knowledge of classical algorithms and their complexity.
Evaluation: Assessed by homeworks and exams.

Students should be able to design and analyze their own algorithms.
Evaluation: Assessed by homeworks.

Students should implement, experiment with, compare, and report on various algorithmic solutions to the same problem.
Evaluation: Assessed by a programming project (programming homework assignments).
4. Grading Policy

Final exam, 25%.
More information about the final exam will appear on the final exam webpage about a week before the exam.
The final exam will take place on May 12, 2015, around class time  exact timing TBA. Note that this is during the last week of classes as I will be traveling to the
ACM ICPC contest during the finals week. To make up for the lost class due to the final exam, I will hold an outofclass review session before the final exam,
date and time TBA. There will also be a short survey on your experiences in this course, due during the finals week. The survey will be counted towards your final
exam grade as described on the final exam webpage.

Midterm exams, 15%+15%.
There will be two midterm exams: the first is tentatively scheduled for Thursday, March 5, and the second for Tuesday, April 14,
during class time. More information about each midterm exam will appear on the
midterm 1 webpage and the midterm 2 webpage about a week before the respective midterm takes place.
Note:
If your score on the final is better than the average of your midterm scores, the overall exam score will be computed as follows:
30% for the final exam, 15% for the higherscore midterm exam, and 10% for the lowerscore midterm exam.

Quizzes, 15%.
There will be weekly quizzes, every week except the first and the weeks of the midterms. The quizzes will take about 10 minutes at the start
of class on Tuesdays. The lowest two quiz grades will be canceled and the remaining 10 grades contribute evenly towards 15% of your final
grade.
Zeros for cheating will not be dropped.

Homeworks, 30%.
There will a short testthesubmissionsystem homework that contributes 1% towards your final grade; this homework is due February 3.
There will be six regular (almost) biweekly homeworks, due Tuesdays, 11:59pm; the first regular homework will be due February 10.
Homework assignments will be posted on the assignments webpage about two weeks before they are due.
The lowest homework grade will be dropped and the remaining five grades contribute evenly towards 29% of your final grade.
You may choose to do the homeworks individually or in pairs.
If you are working as a pair, both partners have to solve the homeworks together
and both partners are responsible for the final submission (both partners
need to be able to explain every part of the submission). In particular, you
are not allowed to divide the problems and solve only some of them while
your partner solves the rest.
I will stop answering homework related questions 12 hours before the homework is due.
Zeros for cheating will not be dropped.
Grading scale: 88%100%: A grades (91%100% A, 88%91% A), 77%88%: B grades (85%88% B+, 80%85% B, 77%80% B),
66%77%: C grades (74%77% C+, 69%74% C, 66%69% C),
55%66%: D, 0%55%: F.
However, your overall grade cannot be more than one letter better than your
average exam grade. Moreover, average exam grade F results in failing the
class.
5. Topics

Asymptotic analysis

Divideandconquer algorithms and recurrences

Greedy algorithms

Dynamic programming

Graph algorithms
 Traversals
 Minimum spanning trees
 Single source shortest path
 All pairs shortest path
 Network flow

The P versus NP problem and NPcompleteness

Other topics such as linear programming, overview of heuristics and approximation,
and randomized algorithms.
Please let me know about any other topics you would like to see discussed in class.
6. Technical issues

You are free to discuss the current homeworks with your classmates, students in the other section, the instructor, and the tutors. After such discussions, you
have to discard all notes, cell phone pictures, and other materials you created during these discussions before you write/code up
the solutions on your own (or with your partner, if working as a pair). You are not allowed to discuss the solutions further with others
during the writing phase and you are not allowed to show your code to other students (with the exception of the tutors).
Discussions with anybody else,
including looking up the solutions online or in the literature other than the
course textbook, are not permitted.
You are encouraged to discuss any class material and
homeworks that have been already handed in with your peers, in the tutoring
center, with the instructor, or anybody else whom you make listen :)

All homeworks are due on Tuesdays, 11:59pm. No late submissions will be accepted.
The homework assignments will be posted on the assignments webpage a couple of weeks before their due date.

Handing in your homeworks:

Coding part of the homework has to be submitted via the try system.
It has to follow the coding requirements.
Specific submission instructions are included with each homework description. The overview of the submission system
is described in detail as part of Homework 0.

Noncoding part may be
 uploaded to MyCourses by the due date as a single pdf file,
make sure that your name(s) appear when one opens the file (not just as a part of the file name), or
 handed in class or during office hours on Tuesday before the due date.

If you are working with a partner, only one of you should submit your solutions. The same person should submit solutions through the try system as well as through MyCourses.

Exams are closed book, closed notes. You may prepare one lettersize
handwritten "summary sheet" (no photocopies) for each exam.
 Homework or exam grade can be disputed within one week
after the graded work is handed back. Dispute the grade with the instructor,
not the grader. Your grades and feedback will be posted on MyCourses.

Exams can not be made up except for real emergencies in which case proper documentation (like a doctor's note) will be required. If at all possible, you should contact me prior to the exam. Oversleeping, cars that don't start etc. do not constitute a valid excuse.
 Hopefully there is no need to link to the departmental
policy
on academic honesty. In the unfortunate event when cheating
earns a 0 score on a homework, the lowest noncheating score
will be dropped; similarly for quizzes.
Also note that second offenses result in an F in the course.