CS 466/666: Design and Analysis of Algorithms, Fall 2014
David R. Cheriton School of Computer Science
Contents:
General Info,
Organization,
Announcements,
Resources,
Assignments,
Lectures,
University Policies
General Information
- Course Description:
Advanced design and analysis of algorithms.
Topics include: amortized analysis, randomized algorithms, lower bounds, approximation algorithms, and on-line algorithms.
- Objectives:
To learn more about algorithms and how to analyze them.
- Calendar
Description - Official course description from academic calendar.
- Handbook
Description - Longer course description from Computer Science Undergraduate Handbook.
- Previous CS466/666 offerings :
Spring 2014,
Spring 2013.
This offering of the course will differ (particularly in the order of topics) from previous years.
But the old websites give some idea of the topics to be covered.
Time and Place:
-
Tuesday, Friday 8:30-9:50, MC4045
Instructor:
-
Bin Ma,
DC3345, x32747, (binma)
TAs:
- Chen Fei Du, (cfdu)
- Chuan Guo, (c3guo)
General Office Hours (changes for specific weeks will be posted on Piazza):
- Bin Ma, Tuesday and Friday after class i.e. 10:30-11:30. Locations are
- DC2320 (Sept 16, 23, 30 & Oct. 7),
- DC2582 (Oct. 10 to Oct. 31),
- DC2126 (All other days until further notification),
- hopefully DC3345 in late November. Still hoping...
- Chuan Guo, Wednesday 1-2pm, DC 3332 desk #6. (no office hour Sept. 24)
- Chen Fei Du, Thursday 1-2pm, DC 2569 desk #9. (no office hour Sept. 25)
Piazza
- We will use Piazza to assist the course communication outside the classroom (news, question-answers, etc.)
Credit:
CS 466
- Written assignments (small, no programming, about 10 assignments), 25%
- Midterm exam, 25%
Sample Midterm
- Final exam, 50%
- Voluntary weight movement:
(1) Half of each assignment weight can be moved to an exam happening after the due date.
(2) Half of the midterm weight can be moved to the final exam.
(3) A quarter of the final weight can be moved to the midterm.
An algorithm will be used to compute the optimal weight movement to maximize your overall grade.
CS 666
- as for CS 466, marks *.75
- project, 25%. The project description is here.
- Three time slots were booked for the final presentations:
DC2102, 1:30-3:30, Nov. 26, Dec. 8 and Dec. 9.
Each time slot allows up to 5 presentations.
Graduate students please email me your preference order of all the three slots.
These will be assigned mostly in a first-come-first-serve way.
Let me know the reason if a time slot is nearly impossible to you.
- Tentative presentation dates:
presentation-dates.txt
Books:
The main text for this course is Cormen, Leiserson, Rivest, and Stein (see below).
It covers a lot of the necessary material though by no means all;
it is also used as a text for CS 341 and so many students will have it already.
Each of the other books in the list was written for an in-depth introduction to a
specific topic of this course (randomized, approximation, and online algorithms).
They are all great reference books but we will not go in that depth.
They are all available in the DC library.
-
[CLRS] Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (3rd ed.), MIT Press,
2009 (QA76.6 .C662 2009). (on-reserve in the DC library)
You can also use the 2nd edition, which is available electronically through the
library.
- [MR] Motwani and Raghavan, Randomized Algorithms,
Cambridge University Press, 1995 (QA274.M68) [MR]
- [V] Vazirani, Approximation Algorithms,
Springer-Verlag, 2001 (QA76.9.A43 V39)
- [H] D.S. Hochbaum, ed., Approximation Algorithms
For NP-Hard Problems, PWS, 1997 (T57.7.A68)
- [BE] Borodin and El-Yaniv, Online Computation and Competitive
Analysis, Cambridge University Press, 1998 (QA76.9.A43 B67)
Other web resources:
The work you hand in must be your own. Acknowledge any sources you have used.
You may discuss the assignment questions verbally with others, but you
should come away from these discussions with no written or electronic records.
Write your solutions in your own words, from your own head.
Please include a cover page for your assignment with your name and student number. The TAs will use the cover page to write your marks.
Hand in your assignment to the assignment boxes
on the 4th floor of MC across from the tutorial centre.
Assignments will be due on Mondays at noon, unless an explicit exception is made such as after a long weekend.
Late assigments will not be accepted.
Assignments will be available here on the web page and will be handed back in class.
Questions regarding the marking of any assignment must be dealt with within 10 days of the marked assignment being available. See the TA who marked it.
We hope to hand assignments back in the Tuesday class after they are handed in. Unclaimed assignments can be picked up during the TA's office hour.
- Assignment 1. Posted Sept. 15, 2014. Correction posted Sept. 16, 2014. Due date posponed to noon Sept. 23, 2014.
- Assignment 2. Posted Sept. 23, 2014. Due date Sept. 29, 2014 (Monday) noon.
- Assignment 3. Posted Oct. 2, 2014. Due date Oct. 14, 2014 (Tuesday) noon.
- Assignment 4. Posted Oct. 13, 2014, Due date Oct. 20 (Monday) noon.
- Assignment 5. Posted Nov. 3, 2014, Due date Nov. 10 (Monday) noon. Marking TA: Chen Fei Du.
Assignment 5 full marks adjusted from 20 to 10. If you get more than 10, the overflow will be used as bonus in calculating your final grade.
- Assignment 6. Posted Nov. 10, 2014, Due date Nov. 19 (Wednesday) noon. Marking TA: Chuan Guo.
- Assignment 7. Posted Nov. 20, 2014, Due date Nov. 28 (Friday) noon. Marking: Bin Ma. This is the last assignment.
Oct. 24, 2014, 8:30-9:50 am (same time as class).
MC4045 for undergraduates and MC4046 MC4064 for graduates.
Time: Thursday December 4, 2014 12:30 PM 3:00 PM
Location: RCH 302
See the official schedule.
The exam covers the whole course.
Here is a sample exam --- note it was given a few years ago by another professor, some of the material covered in that version of the course differs from what we did, but it might be helpful anyway.
Here is a list of things that were lectured in the course but will not be covered in the final exam.
Notes about lecture notes:
- Lectures notes are provided before the class to ease the note taking during the classes.
- But you are not supposed to read the notes before the lectures. The most effective learning happens
if you follow the lecturer closely and think about the answers actively when a question is asked.
Reading notes before (or even during) the lectures will reveal the answers before a question is asked; and therefore
make you not thinking.
- One set of notes (a pdf file) may last a few lectures. Page number mark will be given after each lecture.
Lecture Notes:
- Lecture 1, Sept. 9. Course Introduction (1-intro.pdf); Review of preliminaries (1-Review.pdf).
Finished the Top-2 problem at top of page 2.
- Lecture 2, Sept. 12. Continue review of preliminaries (same pdf file). Finished the Divide and Conquer at top of page 5.
- Lecture 3, Sept. 16. Continue review of preliminaries (same pdf file). Did not do the Greedy algorithm section. Almost finished Dynamic Programming section.
- Lecture 4, Sept. 19. Finish review of preliminaries. May start Online Algorithms (2-OnlineAlgorithms.pdf).
Finished review of preliminaries. But did not start the online algorithms.
- Lecture 5, Sept. 23. Online Algorithms. (same pdf file as before: 2-OnlineAlgorithms.pdf).
- Lecture 6, Sept. 26. Continue Online Algorithms. (same pdf file)
- Lecture 7, Sept. 30. Continue Online Algorithms. (same pdf file, stopped at page 7)
- Lecture 8, Oct. 3. Continue Online Algorithms. Plan to finish it. (same pdf file) Almost finished. The only unfinished thing is the proof of the last theorem.
- Lecture 9, Oct. 7. Finish the randomized weighted average algorithm proof. Start Randomized Algorithms (3-RandomizedAlgorithms.pdf).
- Lecture 10, Oct. 10. Finished up to the Karger's algorithm (Algorithm I and proof of Theorem 3) for the Min-CUT problem.
- Lecture 11, Oct. 14. Finished the Matrix multiplication randomized verification.
- Lecture 12, Oct. 17.
- Lecture 13, Oct. 21.
- Midterm, Oct. 24.
- Lecture 14, Oct. 28. Review midterm exam; Finish primality Test; and may (with small probability) start Amortized algorithm (4-AmortizedAnalysis-part1.pdf).
- Lecture 15, Oct. 31. Finished Amortized algorithm part 1.
- Lecture 16, Nov. 4. Amortized algorithm part 2 (4-AmortizedAnalysis-part2.pdf).
- Lecture 17, Nov. 7. Finish the last data structure for union-find. Start NP-completeness review. (5-NPCompleteness.pdf).
- Lecture 18, Nov. 11. Finish the NP-completeness. Start approximation algorithms. (6-Approximation.pdf)
- Lecture 19, Nov. 14. Continue approximation algorithms. More about vertex cover; TSP. Same pdf file. But many things not in notes.
- Lecture 20, Nov. 18. Continue approximation algorithms. Set-Cover. Knapsack. We also did teaching evaluation in class.
- Lecture 21, Nov. 21. Continue approximation algorithms. Linear Programming and Randomized Rounding.
- Lecture 22, Nov. 25. Fixed-Parameter Tractable Algorithms (7-Parameterized.pdf).
- Lecture 23, Nov. 28. Finish FPT algorithms and conclude the course.
Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility.
[Check www.uwaterloo.ca/academicintegrity for more information. ]
Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 - Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.
Discipline: A student is expected to know what constitutes academic integrity to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 – Student Discipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.
Appeals: A decision made or penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.
Note for students with disabilities: The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.