CS 6161: Design and Analysis of Algorithms (Grad), Fall 2020
Basic Information
Class Format: Online SynchronousClass Time: Tuesdays and Thursdays, 5:00 pm to 6:15pm
Instructor: Haifeng Xu
- Email: hx4ad AT virginia.edu
- Office hours: Tue/Thur 6:15 - 7:15 pm, virtual
- Jibang Wu,   Email: jw7jb AT virginia.edu;   Office hour: Mon/Wed 4 – 5 pm, virtual
- Fan Yao,   Email: fy4bc AT virginia.edu;   Office hour: Tue/Thu 10 – 11 am, virtual
Course Overview
Overall Description: (1) Introduce major techniques for algorithm design; (2) Rigorously analyze their performances; (3) Understand possibilities and limitations of algorithms --- e.g., what is the best efficiency you can achieve with algorithms? are there problems that cannot be efficiently solved by algorithms?
Covered Topics: Various classic algorithmic problems such as sorting and searching, graph algorithms, geometric algorithms, optimization techniques, intractability and NP-completeness, randomized algorithms, and approximation algorithms.
Learning Objective: After successfully completing this course, you should be able to use the right mathematical tools, notions, and ideas to design provably efficient algorithms for algorithmic questions. This is also what the exams will aim to evaluate.
Course Format: This is a theory course. This means the entire course --- lectures, homework and exams --- will be based on rigorous mathematical tools and will be proof-based. There will be no coding/programming involved in this course, though you are welcome, and encouraged, to implement the learned algorithms after class as your own practice.
Text books (recommended but not required):- Algorithm Design by Jon Kleinberg, Eva Tardos, main textbook
- Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein
- Mathematical Proofs, in particular induction and contradiction.
- Asymptotic notation (Big-O, Omega, Theta), how to apply them.
- Basic data structures: arrays, linked lists, trees, balanced trees, heaps (priority queues), graphs.
- Basic graph algorithms: connected components, BFS, DFS.
- Other basic algorithms: binary search, sorting, median selection.
- Discrete mathematics: evaluating sums and simple recurrences.
- Basic probabilities: random variables, distributions, expectations, variance, etc.
Tentative schedule:
The following is a tentative schedule. We will likely deviate from the schedule slightly, but overall these are the topics that we will go over. At a high level, the first half of the course will cover the more standard algorithmic techniques and the second half will cover more advanced topics. Though the schedule is organized by the major algorithmic technique we discuss at each lecture, it is important to note that problems are typically solved by a combination of multiple algorithmic techniques.- Week 1-2: intro, basic notions, divide and conquer for problems such as sorting, matrix multiplication, convex hull
- Week 3-5: greed algorithms and local search for problems such as shortest path, spanning trees, potential games.
- Week 5-6: dynamic programming
- Week 7-8: optimization techniques, linear programming and its application to flow problem and bipartite matching
- Week 9-10: computational intractability and NP-completeness, reductions among NP-complete problems
- Week 11-13: more advanced topics such as randomized algorithms, approximation algorithms (to deal with NP-hard problems), mechanism design (i.e., algorithm design in multi-agent setups)
Grading and Requirements
Due to the pandemic, we have tried our best to make the course evaluation as flexible as we can. The following is the grading policy and requirements. Any comments and suggestions are warmly welcome.
In cases of medical or other emergencies which interfere with your work, do not worry --- simply have your Resident Dean contact the instructor and we will try our best to accommodate any urgency.
Overall, the evaluation has two components:
- Two take-home open-book midterm exams, 25% each: Each exam will be designed to be completable within at most 3 hours. Nevertheless, you will be given 24 hours to complete the exam.
- 6 problem sets, 50% total: Note, to give you some flexibility, we will use the best 5 out of your 6 PS grades as your HW grade -- i.e., your least PS grade will be automatically discarded.
Final grades take into account each component. You must achieve a passing grade in all components to pass this course. Although we will not publish hard letter grade cutoffs, just note that to receive an “A” you must have high performance is all categories.
Problem Sets   The problem sets will be managed --- publishing and submission --- through UVA Collab. All problem sets will be written and will be submitted in the format of PDF. Any grading disputes on assignments must be submitted directly through Gradescope within one week of the grades being posted after which the grade is final. The assignments will be graded based on correctness, depth of analysis, and clarity.
Collaboration Policy   The HW will be challenging. You are encouraged to consult with your classmates as you work on the problems. However, you should not share answers. After discussions with your peers, make sure that you can work through the problem yourself and ensure that any answers you submit for evaluation are the result of your own efforts. Cite any books, articles, websites, lectures, etc. that have helped you with your work and list the names of students with whom you have discussed with. Note that understanding the HW problems is important for you to excel in the exams, during which no collaboration is allowed at all.
Late days   Each student is allotted a total of five late days for use on problem sets. A late day extends the due date by 24 hours and a maximum of 2 late days can be used towards any individual assignment. Weekends and holidays are NOT counted as late days. If you have used up your 5 late days, you will be penalized 25% per day, up to two days max, with no credit after two days.
Exams   There are two take-home open-book midterm exams, one covering the first half of the course material (divide and conquer, greedy, dynamic programming and part of linear programming) and the second covering the remaining half of the course material. To allow some flexibility, you will have 24 hours to complete each exam, though it will be designed to take you about 2~3 hours.
Other Related Statements
Honor code (Adapted from Honor Syllabus Example Statement of UVa)
I trust every student in this course to fully comply with all of the provisions of the University’s Honor Code. By enrolling in this course, you have agreed to abide by and uphold the Honor System of the University of Virginia, as well as the policies specific to this course. All suspected violations will be forwarded to the Honor Committee, and you may, at my discretion, receive an immediate zero on that assignment regardless of any action taken by the Honor Committee.
Please let me know if you have any questions regarding the course honor policy. If you believe you may have committed an Honor Offense, you may wish to file a Conscientious Retraction by calling the Honor Offices at (434) 924-7602. For your retraction to be considered valid, it must, among other things, be filed with the Honor Committee before you are aware that the act in question has come under suspicion by anyone. More information can be found at here.
Students with disabilities or learning needs
We thrive to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center to discuss a range of options to removing barriers in this course, including official accommodations. Please visit their website for information on this process and to apply for services online: sdac.studenthealth.virginia.edu. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.Discrimination and power-based violence
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. To that end, it is vital that you know two values that I and the University hold as critically important:
- Power-based personal violence will not be tolerated.
- Everyone has a responsibility to do their part to maintain a safe community on Grounds.
Religious accommodations
It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
Students who wish to request academic accommodation for a religious observance should submit their request in writing directly to me via Email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.
Section 5.2 - 5.4 are adapted from a SEAS-wide example