CS 466/666 Design and Analysis of Algorithms

General Information

  • Course Description: Advanced design and analysis of algorithms. Topics include: amortized analysis, randomized algorithms, approximation algorithms, online algorithms, distributed algorithms, parallel algorithms, cache-oblivious algorithms, continuous optimization algorithms. A more detailed description is given here.

  • Objectives: To broaden your knowledge of algorithmic techniques used to efficiently solve problems in many different settings, their limitations, and to gain a deeper understanding 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.

Organization

Instructor: Rafael Oliveira, DC 2105, rafael.oliveira.teaching (at) gmail [dot] com

Time and Place of lectures: online (zoom lectures)

  • Tentative live version: Mondays and Wednesdays 2pm - 3:20pm EDT

Zoom link will be posted on Piazza before the start of each lecture.

  • Video will be posted live shortly after lectures (I will post the youtube links on piazza)

Teaching Assistants:

  • Anubhav Srivastava - anubhav.srivastava (at) uwaterloo [dot] ca
  • Thi Xuan Vu - txvu (at) uwaterloo [dot] ca

General Student Drop-In Hours: (To be announced. Starting September 8th changes for specific weeks will be posted on piazza)

  • Rafael Oliveira: Mondays 4pm-5pm and Fridays 12:30pm-1:30pm (EDT)
  • Anubhav Srivastava: Thursdays 3pm-4pm (EDT)
  • Thi Xuan Vu: Tuesdays 1pm-2pm (EDT)

Note: If you cannot attend one of these times, please email us so that we can setup times that work for everyone.

Grades:

  • 5 written assignments, 60%
  • final project, 40%

Announcements

Announcements will be posted on Piazza

Assignments

Assignments will consist of $n$ problems where usually $n \sim 6$. You are required to turn in $n-1$ problems on which you will be graded. If you turn in all problems, we will grade all of them and your score will simply be the highest $n-1$ scores that you obtained.

Tentative assignment due dates:

  1. September 25th
  2. October 9th
  3. November 2nd
  4. November 16th
  5. November 30th

Instructions for Assignments: Your written solutions will be judged not only for correctness but also for the quality of your presentation and explanations. In questions that involve designing an algorithm:

  1. describe the main idea first,
  2. give details at a level mimicking the style of the lectures or the model solutions,
  3. give a correctness proof/argument if it is not immediately obvious, and
  4. include an analysis (of the running time, error probability, approximation factor, etc.).

The problems are designed so that the solutions should not be long, thus being concise will also be taken into consideration (i.e., clarity of exposition)

Collaboration policy: Students are allowed and encouraged to collaborate with other students on the homework assignments. You may discuss the assignment questions with others, but you should come away from these discussions without a fully written solution of the problem that you discussed. The discussions should be about the ideas necessary to solve the problem. If you collaborate with other students, you must clearly indicate your collaborators for each problem. The homework LaTeX template will have a field for each problem for you to fill in. Marks will be deducted if you fail to do so.

After collaboration, the work you hand in must be your own. The value of the assignment is in writing your solution yourself (as you must do on tests and exams). Acknowledge any other sources (human or non-human) you have used. If you use an electronic source, again, read it, then close it, then compose your solution and acknowledge your source. Write your solutions in your own words, from your own head. Any assistance received (from human or nonhuman sources) that is not given proper citation may be considered a violation of the university policies.

Searching for solutions is considered plagiarism. If you happen to find the solution of a problem while reading from some external sources, you must give a proper citation of the source, failing to cite the source properly is considered plagiarism.

Submission: Assignments will be submitted as pdf files (each question as a separate pdf). We strongly encourage you to submit your solutions using LaTeX. LaTeX templates for each problem will be provided.

We will use Crowdmark to submit assignments this term. Before the submission deadline (usually the weekend before the deadline), we will send a submission link to your uwaterloo email and make an announcement on piazza. If you didn’t get the link or have any question about the submission, you can contact Anubhav. If you need any help for submitting via Crowdmark, you can find instructions here.

Late Policy: Assignments are due at 11:59 PM (Waterloo time) on the dates above. To give you some flexibility we will allow up to 10 late days for the entire term.

Regrading Requests: All requests (for assignments and midterm) must be made within two weeks of the date of the return. Your request should be submitted to the TA who marked the question in writing. Only if the problem is still unresolved should you then bring the case to the instructor’s attention. Details of how to request a regrade will be posted in Piazza after the first assignment is due.

Midterm and Exam

There will be no exams for this class. The class will be based on homework submissions and a final project. For more information on the final project, please see this page

Lectures

Lecture notes will be posted after the lectures. References are mostly from the suggested supplemental resources.

Land Acknowledgment

The University of Waterloo is on lands that are deeply connected to Indigenous peoples who have historically lived and who currently live in this territory. We acknowledge that we live and work on the traditional territory of the Attawandaron (Neutral), Anishinaabeg, and Haudenosaunee peoples. The University of Waterloo is situated on the Haldimand Tract, the land promised to the Six Nations that includes ten kilometres on each side of the Grand River.

University Policies

University resources and policies in case you suspect you got COVID-19: If you are experiencing symptoms of COVID-19, please contact the University and your local health unit promptly, and check the following resource.

Note for students who need accommodations: If you need accommodations, please let me know about them, and/or contact the AccessAbility office, so that we can provide the proper accommodations. If you feel uncomfortable letting me know about them, please contact the AccessAbility office as soon as you can so you can make the most out of the course.

The AccessAbility office, located in Needles Hall Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with special needs without compromising the academic integrity of the curriculum. If you require academic accommodations, please register with AccessAbility Services at the beginning of each academic term.

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. All members of the UW community are held to the highest standard of academic integrity in their studies, teaching, and research.

The Office of Academic Integrity’s website contains detailed information on UW policy for students and faculty. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in and out of the classroom.

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 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.

Avoiding Academic Offences: we expect that students are aware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offences and how to avoid them, students should refer to the Faculty of Mathematics Academic Integrity Policy.

Intellectual Property: Students should be aware that this course contains the intellectual property of their instructor, TA, and/or the University of Waterloo. Intellectual property includes items such as:

  • Lecture content, spoken and written (and any audio/video recording thereof);
  • Lecture handouts, presentations, and other materials prepared for the course (e.g., PowerPoint slides);
  • Questions or solution sets from various types of assessments (e.g., assignments, quizzes, tests, final exams); and
  • Work protected by copyright (e.g., any work authored by the instructor or TA or used by the instructor or TA with permission of the copyright owner).

Course materials and the intellectual property contained therein, are used to enhance a student’s educational experience. However, sharing this intellectual property without the intellectual property owner’s permission is a violation of intellectual property rights. For this reason, it is necessary to ask the instructor, TA and/or the University of Waterloo for permission before uploading and sharing the intellectual property of others online (e.g., to an online repository). Permission from an instructor, TA or the University is also necessary before sharing the intellectual property of others from completed courses with students taking the same/similar courses in subsequent terms/years. In many cases, instructors might be happy to allow distribution of certain materials. However, doing so without expressed permission is considered a violation of intellectual property rights.

Please alert the instructor if you become aware of intellectual property belonging to others (past or present) circulating, either through the student body or online. The intellectual property rights owner deserves to know (and may have already given their consent).