Theory of Computer Algorithms
Instructor: Ivona Bezakova, email: my_initials at cs.rit.edu (humans please replace my_initials by ib)
Class meets: Tu/Th 4-5:50pm, room 70-3455
Tutoring center: about 20 hours of tutoring per week
(follow this link
to see the schedule and more information)
Office hours: Mo 1-3pm, Tu 2-3pm and 6-7pm, office 70-3645;
e-mail works for many, please allow 24h reply time
Remarks about office hours:
- The evening office hours are for part-time students only, please come at 6pm or
let me know that you are coming, otherwise I might leave.
- Due to a scheduling conflict, the Monday office hours start at 2pm on
March 16th, 30th, and April 20th. They'll continue beyond 3pm if need arises.
0. Homework and Reading
Assigments
For information about topics covered in the class,
reading and homework assignments, follow this
link.
1. Text
Algorithm
Design by Jon Kleinberg and Eva Tardos.
This webpage:
http://www.cs.rit.edu/~ib/Classes/CS800_Spring08-09/index.html
2. Course description and intended learning outcomes.
This course provides an introduction to the design and analysis of algorithms.
It covers a large number 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 algorithm.
-
Students should demonstrate knowledge of classical algorithms and their complexity.
-
Students should be able to design and analyze their own algorithms.
-
Students should implement, experiment with, compare, and report on various algorithmic solutions to the same problem.
3. Grading Policy
-
Final, 27%.
The final will take place on May 19th, 12:30-2:30pm, room TBD.
-
Midterm, 27%.
The midterm will take place on Thursday, April 9th or 16th,
in class. We'll take a vote in the first week to determine the exam date.
If your score on the final is better than your score on the midterm, your
final will contribute 32% toward your final grade and your midterm
will contribute 22%.
-
Quizzes, 10%.
There will be eight weekly quizzes, every week except for the first week
and the week of the midterm.
The quizzes will take place on Thursdays, 4-4:10pm, in
class. Each quiz will ask about material from the previous week (including the
homework due the previous Wednesday).
The two lowest quiz grades will be dropped and
the remaining six grades contribute evenly towards your final grade.
-
Homeworks, 36%.
There will be eight weekly homeworks, due Wednesday 11:59pm, myCourses-time
(every week except for the first week and the week of the midterm).
Homework assignments will be posted on the webpage a week before they are due.
The two lowest homework grades will be dropped and
the remaining six grades contribute evenly towards your final grade.
(A zero given for cheating cannot be dropped.)
You may choose to do the homeworks individually or in pairs.
If you are working in a pair, both partners should 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
should not divide the problems and solve only some of them while
your partner solves the rest. The coding part of the homework must be done
jointly with both partners contributing significantly to the submission.
Late homeworks will not be accepted under any circumstances, submit your
work-in-progress frequently to avoid last minute panic and possible network slow-downs.
Grading scale: 90%-100%: A, 80%-90%: B, 70%-80%: C, 60%-70%: D, 0%-60%: 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.
4. Topics
-
Asymptotic analysis and divide-and-conquer
-
Greedy algorithms
-
Dynamic programming
-
Graph algorithms
- Traversals
- Minimum spanning trees
- Shortest paths
- Network flow
-
Overview of heuristics and approximation, including introduction to linear programming
-
Other topics such as geometric algorithms and randomized algorithms.
Please e-mail me any other topics you would like to see discussed in class.
5. Technical issues
-
You are free to discuss the current homeworks and the project with only your
partner, the instructor, and the tutors. 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 who would listen :)
-
All homeworks are due on Wednesdays, 11:59pm (this is a hard deadline!). No late submissions will be tolerated.
I will stop answering homework related questions (and e-mails) on Wednesdays, 8:00am.
Please allow 24h reply time, though I'll do my best to reply to your questions by
lunch-time on Wednesdays.
You will have a week to complete each homework and the assignments will be
posted on the webpage on Thursdays.
-
Handing in your homeworks:
-
Coding part of the homework has to be uploaded on MyCourses by Wednesdays, 11:59pm.
-
Non-coding part may be
- uploaded on MyCourses by Wednesday 11:59pm in the pdf-format, do not
forget to include your name(s), or
- brought to the CS main office on Wednesday (they close at 4:30pm) - clearly mark
your submission as "4005-800, homework number ?", or
- given to me in class or during office hours.
-
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.
-
The midterm and the final cannot be made up unless a true emergency arises
(a proper documentation is required in such cases).
- 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 two lowest non-cheating scores
will be dropped. Also note that second offenses result in an F in the course.