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.
Prerequisites are: (CSCI 243 or SWEN-262) and (MATH 190 or MATH 200),
or equivalent courses.
Students should demonstrate an understanding of basic concepts
related to the design and analysis of algorithms. Evaluation: Assessed by homeworks, quizzes and exams.
Students should demonstrate knowledge of classical algorithms and
their complexity. Evaluation: Assessed by homeworks, quizzes and exams.
Students should be able to design and analyze their own algorithms. Evaluation: Assessed by homeworks and exams.
Students should implement, experiment with, compare, and report
on various algorithmic solutions to the same problem. Evaluation: Assessed by programming homework assignments.
I am usually good at answering emails promptly, however,
there is no guarantee I'll respond during
the evening or on weekends.
If you have questions and I am not available,
I highly recommend that you stop by the tutoring center (see below).
Office hours will be held in Breakout Room 4 (GOL-3672).
If none of the above works, by appointment.
Theory tutoring center:
In addition to all of the usual support services RIT and the CS department
offer, the CS theory faculty are offering their own tutoring
service, featuring very qualified CS students. The tutoring takes place
in the CS mentoring center (GOL-3660). For hours,
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.
You are free to discuss the current homeworks with your
classmates, the tutors, and the instructor. After such discussions,
you have to discard all notes, cell phone pictures and other materials
you created during these discussions before you write up the
solutions on your own (or with your partner, if working as a pair).
During the writing phase you are not allowed to further discuss
the solutions with your classmates. Moreover, you are not allowed
to show your code to your classmates.
Discussions with anybody else, including looking up the solutions online
or in the literature other than the course books, 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 :)
No late homework submissions will be accepted.
The homework assignments will be posted on the schedule
webpage about two weeks prior
to their due date.
Handing in your homeworks:
The coding part of the homework has to be submitted using the
try system from a Linux-based CS lab machine.
(Specific instructions for the coding part will be provided in the
first week of the semester.)
The non-coding part must be
uploaded to MyCourses as a single pdf file.
Exams are closed book, closed notes. You may prepare
one letter-size, front and back, hand-written "summary sheet" (no photocopies).
Homework or exam grades 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.
The exams cannot be made up unless
a true emergency arises (proper documentation is required in such cases).
There are no make-ups for quizzes.
Hopefully there is no need to link to the
policy on academic honesty. In the unfortunate event
when cheating earns a 0 score on a homework or a quiz, the one,
respective two lowest non-cheating scores will be dropped.
Also note that second offenses result in an F in the course.
Two excellent books are listed as recommended texts. Neither is explicitly required.
You will probably find that reading the Kleinberg text is more useful during the semester
(the schedule indicates appropriate readings in the Kleinberg textbook). Ten years
down the road, you may find the Cormen text to be a more useful reference. All of
the topics we cover will be supported through in-class slides and examples. In-class
slides will be posted via MyCourses.
Most of the topics we will cover are included
in each of the recommended textbooks, although
in some cases a topic is covered more in one than the other.
(Recommended text) Algorithm Design, Kleinberg and Tardos, Addison Wesley, 2005.
(Recommended text) Introduction to Algorithms, Thomas Cormen et al.,
Instructor notes. Slides from lectures will be posted on MyCourses.
The Course Schedule,
about reading and homework assignments, quizzes, exams, etc., will
be linked from the course web page.
Credit for course materials is given to Ivona Bezakova and to
Kevin Wayne / Pearson-Addison Wesley.
Midterm exam. There will be one midterm exam,
accounting for 20% of the course grade. Additional information
about the midterm exam will be provided from a link on the
course schedule page about one week before the exam.
Final exam. Additional information about
the final exam will be provided from a link on the course
schedule page about one week before the final exam.
Homework assignments. There will be 6 homework
assignments, due roughly every other week of the semester.
There is a longer period between the 3rd and 4th homework
assignment due dates, accommodating the midterm exam week and Spring Break.
The lowest homework grade will be dropped and the remaining
five grades contribute evenly towards your final grade.
Zeros for cheating will not be dropped.
These 6 homework assignments contribute 34% out of the 35% of the
final grade attributed to homeworks. The remaining 1% will be
allocated to a small Homework 0 designed just to introduce
everybody to the naming and submission conventions required
for the coding portions of assignments in this course.
Quizzes. There will be weekly quizzes,
except for week 1 and the week of the midterm exam.
The two lowest quiz grades will be dropped and the remaining
grades contribute evenly towards your final grade.
There are no make-ups given for quizzes. You must
take each quiz at your scheduled time.
Zeros for cheating will not be dropped.
A: [91, 100]
A-: [88, 91)
B+: [84, 88)
B: [80, 84)
B-: [77, 80)
C+: [73, 77)
C: [69, 73)
C-: [66, 69)
D: [55, 66)
F: [0, 55)
CS Common Course Policies Include:
Rescheduling an Exam
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.
Academic Senate revised the Final
Examination Policies on March 28, 2013. Please refer to the policies
for related questions.
During the add/drop period,
you may drop this course and it will
disappear from your transcript. After that time, you can only
withdraw from the course; the course will appear on your transcript
with a grade of W.
See the institute's calendar
regarding the add/drop period and latest withdrawal date.
RIT is committed to providing reasonable accommodations to students
with disabilities. If you would like to request accommodations such as
special seating or testing modifications due to a disability, please
contact the Disability Services Office. It is located in the Student
Alumni Union, Room 1150; the web site is
After you receive accommodation approval, it is imperative that you
contact me so that we can work out whatever
arrangement is necessary.
DCS Policy on Academic Honesty will be enforced.
You should only submit work that is completely your own.
Failure to do so counts as academic dishonesty and so does
being the source of such work. Submitting work that is in large part not
completely your own work is a flagrant violation of basic ethical behavior
and will be punished according to department policy.