Honors Analysis of Algorithms (CSCI264), Fall 201617
Instructor: Ivona Bezakova, email: my_initials@cs.rit.edu (please replace my_initials with ib)
Class meets: Tu/Th 5:006:15pm, room (GOL)1435
Office hours (tentative), when classes are in session:
Tuesday/Thursday 11am12pm and 3:204pm, office (GOL)3645, plus 10 minutes after class each day
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
MATH190 (Discrete Mathematics for Computing) and CSCI243 (The Mechanics of Programming)
or equivalent courses
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/CSCI264_Fall1617/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 a challenging introduction to the design and analysis of algorithms with an emphasis on problem solving and algorithmic research. It covers a variety of classical algorithms and data structures and their complexity, as well as deeper coverage of more advanced material; for example, linear programming, approximation algorithms, and randomized algorithms. The course will equip students with the intellectual tools to design, analyze, implement, and evaluate their own algorithms.
Intended learning outcomes:

Students will be able to explain basic concepts related to the design and analysis of algorithms.

Students will be able to describe classical algorithms and their complexity.

Students will be able to design and analyze their own algorithms.

Students will be able to implement, experiment with, compare, and report on various algorithmic solutions to the same problem.
4. Grading Policy

Final exam, 20%.
More information about the final exam will appear on the final exam webpage in the last week of the semester (about a week before the exam). The exam has been tentatively scheduled for December 13, 57pm.

Midterm exams, 20%+20%.
There will be two midterm exams: the first will take placeon Tuesday, September 27, and the second on Thursday, November 3,
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:
25% for the final exam, 20% for the higherscore midterm exam, and 15% for the lowerscore midterm exam.

Homeworks, 36%.
There is a short testthesubmissionsystem homework that contributes 1% towards your final grade; this homework is due August 31.
There will be six regular (almost)biweekly homeworks, due Wednesday, 11:59pm; the first regular homework will be due on September 7.
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 35% 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.
Zeros for cheating will not be dropped.

Research talk attendance, 1%.
To be exposed to researchlevel topics, you can attend an instructorapproved research talk and get 1% towards your final grade.
A good option is to attend one of the talks in the Rochesterarea CS theory seminar called
Theory Canal. The talks are not always algorithmic  you are welcome to attend any talk of
your choice. Afterwards, send an email to the instructor with the subject line "CSCI264: Research talk" and
 Include the title and speaker information.
 In a paragraph describe the problem and the results presented.
 Share your own thoughts of the talk.
If attending Theory Canal does not fit your schedule, please discuss options for other research talks with the instructor by the end of October.

Participation in a programming contest, 3%.
Participation in an instructorapproved programming competition will contribute 3% towards your final grade. You can participate individually or in
a team. For example, you can take part in the team selection contest where we identify teams that will represent RIT in the ACM ICPC
(International Collegiate Programming Contest). For other options, please talk to the instructor by the end of October.
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.
6. Technical issues

You are free to discuss the current homeworks with your classmates, students in the other sections, the instructor, the tutors, and anybody else whom you make listen :). It is not ok to be told what the solution is  you have to be an active participant in the discussion and arrive at the solution on your own. 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).
Looking up the solutions online or in the literature other than the
course book is not permitted.

All homeworks are due (almost)biweekly on Wednesdays, 11:59pm. No late submissions will be accepted.
The homework assignments will be usually posted on the assignments webpage a couple of weeks before their due date.
Sometimes a part of the homework will be posted two weeks before the due date and another part a week before the 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.

Noncoding part may be
 uploaded to MyCourses by the due date as a single pdf or txt file 
make sure that (both) your name(s) and the problem number appear when one opens the file (not just as a part of the file name) and also make sure that the text is legible, or
 handed in class or during office hours on Tuesday before the due date.
 I will stop answering homeworkrelated questions 24 hours before the homework's due date.

Exams are closed book, closed notes. You may prepare one lettersize
handwritten "summary sheet" (no photocopies).
 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 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. Also note that second offenses result in an F in the course.