Honors Analysis of Algorithms (CSCI-264), Fall 2016-17
Instructor: Ivona Bezakova, email: firstname.lastname@example.org (please replace my_initials with ib)
Class meets: Tu/Th 5:00-6:15pm, room (GOL)-1435
Office hours (tentative), when classes are in session:
Tuesday/Thursday 11am-12pm and 3:20-4pm, office (GOL)-3645, plus 10 minutes after class each day
Tutoring center: schedule, staffed by students who took (and performed well in) theory-related courses in recent years
0. Homework and Reading
For information about topics covered in class,
reading and homework assignments, follow this
MATH-190 (Discrete Mathematics for Computing) and CSCI-243 (The Mechanics of Programming)
or equivalent courses
Algorithm Design by Jon Kleinberg and Eva Tardos.
The assignments webpage (that will contain slides from the lectures):
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:
4. Grading Policy
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.
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.
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, 5-7pm.
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.
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 higher-score midterm exam, and 15% for the lower-score midterm exam.
There is a short test-the-submission-system homework that contributes 1% towards your final grade; this homework is due August 31.
There will be six regular (almost-)bi-weekly 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 research-level topics, you can attend an instructor-approved research talk and get 1% towards your final grade.
A good option is to attend one of the talks in the Rochester-area 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
If attending Theory Canal does not fit your schedule, please discuss options for other research talks with the instructor by the end of October.
- Include the title and speaker information.
- In a paragraph describe the problem and the results presented.
- Share your own thoughts of the talk.
Participation in a programming contest, 3%.
Participation in an instructor-approved 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.
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
6. Technical issues
Divide-and-conquer algorithms and recurrences
- Minimum spanning trees
- Single source shortest path
- All pairs shortest path
- Network flow
The P versus NP problem and NP-completeness
Other topics such as linear programming, overview of heuristics and approximation,
and randomized algorithms.
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-)bi-weekly 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.
Non-coding 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 homework-related questions 24 hours before the homework's due date.
Exams are closed book, closed notes. You may prepare one letter-size
hand-written "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
on academic honesty. In the unfortunate event when cheating
earns a 0 score on a homework, the lowest non-cheating score
will be dropped. Also note that second offenses result in an F in the course.