Analysis of Algorithms (CSCI-264), Fall 2015-16
Instructor: Ivona Bezakova, email: email@example.com (please replace my_initials with ib)
Class meets: Tu/Th 5:00-6:15, room (INS)-1160 (Institute Hall)
Office hours (tentative), when classes are in session:
Monday 10:00-11:50pm, Tuesday 11-11:50pm, Thursday 11-11:50pm, office (GOL)-3645
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).
Midterm exams, 20%+20%.
There will be two midterm exams: the first is scheduled for Tuesday, September 29, and the second tentatively for Thursday, November 5,
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 will a short test-the-submission-system homework that contributes 1% towards your final grade; this homework is due September 2.
There will be six regular (almost-)bi-weekly homeworks, due Wednesday, 11:59pm; the first regular homework will be due on September 9.
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% 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
Note that Theory Canal includes algorithmic as well as other theoretical topics - you are welcome to choose any of the talks.
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 contribue 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.
Please let me know about any other topics you would like to see discussed in class.
You are free to discuss the current homeworks with your classmates, students in the other sections, 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).
Discussions with anybody else,
including looking up the solutions online or in the literature other than the
course book, 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 (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 combination of pdf, txt, and jpg files -
make sure that your name and the problem number appears 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.
Exams are closed book, closed notes. You may prepare one letter-size
hand-written "summary sheet" (no photocopies).
- I will stop answering homework-related questions 24 hours before the homework's due date.
- 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.