CS 218 Design and Analysis of Algorithms
Spring 2020


SYLLABUS

Schedule: TR 09:30 - 10:50AM, via zoom.

Instructor: Marek Chrobak, Bourns A 159C, email: marek. Office hours (via zoom): Monday 1-2PM, Monday 4-5PM.

Textbook: S. Dasgupta, C. Papadimitriou, U. Vazirani, "Algorithms", McGraw Hill 2008.

Prerequisites by topic:

Topics:

Homeworks: Five homework assignments, due every second Thursday (except last homework), starting April 16. Homework assignments can be done individually or in pairs. Each assignment will have two versions (1-person and 2-person).

Homework papers need to be formatted with LaTeX. For your convenience, a LaTeX template for homework assignments will be available. You are allowed to do your own formatting, if you prefer so, as long as you follow the required guidelines. Homework assignments will be collected via gradescope.

Quizzes: Five quizzes, every second Tuesday, 25 minutes each. The first quiz on Tuesday, April 7, will cover the prerequisite topics. In general, quizzes will cover the material covered in class in the last two weeks and the assigned reading material. Sample quizzes will be provided.

Final exam: Tuesday, June 9, 8:00AM - 11AM (tentative). The final test is comprehensive. Sample final tests will be provided.

Grading: Quizzes 40%, Final 40%, Homeworks 20%. Course grades are expected to be determined as follows: 82-100% = A, 74-81% = B, 66-73% = C. Minor adjustments to these rules could be made by the end of the quarter.

Academic integrity: In CS218, the rules of academic integrity are strictly enforced. You are required to print, read, and sign the academic integrity statement, and turn it in no later than Tuesday, April 7. Your homework assignments will not be graded if you don't submit this form.

Piazza discussion group: We will use piazza for discussions related to the class material. All students are required to sign up. If you have any questions or information that may be of interest to other students, please post it there.

Class materials: All class materials (syllabuses for tests, lecture notes, sample problems, etc.) will be available in ilearn.

Access to zoom meetings: Links to class meetings over zoom will be distributed via ilearn. Students who do not have access to ilearn, for some reason, need to contact the instructor by email.


LECTURES (very tentative)

Week 1 Tuesday, March 31
Introduction and class overview.
Survey of prerequisite topics.
Reading:
Thursday, April 2
Survey of prerequiste topics.
Reading:
Week 2 Tuesday, April 7
Quiz 1 (entrance quiz)
Amortized analysis. Simple example: building a heap.
Reading: Lecture notes.
Thursday, April 9
Dictionary data structures.
Hashing, universal hashing. Balanced binary trees (review).
Reading: Lecture notes.
Week 3 Tuesday, April 14
Dictionary data structures.
Splay trees.
Reading: Lecture notes.
Thursday, April 16
Homework 1 due
Union-Find and its application to minimum spanning trees.
Reading: Lecture notes, DPV Chapter 5.1.
Week 4 Tuesday, April 21
Quiz 2
Union-Find and its application to minimum spanning trees.
Reading: Lecture notes, DPV Chapter 5.1.
Thursday, April 23
Greedy algorithms.
Prim's algorithm for MST. Dijstra's shortest path algorithm.
Reading: Lecture notes, DPV Chapter 5.
Week 5 Tuesday, April 28
Greedy algorithms.
Activity selection. Huffman coding. Knapsack.
Reading: Lecture notes, DPV Chapter 5.
Thursday, April 30
Homework 2 due
Divide and conquer.
Master theorem. Matrix multiplication. Lnear-time selection.
Reading: Lecture notes, DPV Chapter 2.
Week 6 Tuesday, May 5
Quiz 3
Divide and conquer.
Lnear-time selection.
Reading: Lecture notes, DPV Chapter 2.
Thursday, May 7
Fast Fourier transform.
Dynamic programming.
Toy example: Fibonacci numbers. Warshall's algorithm for all-pairs shortest paths.
Reading: Lecture notes, DPV Chapter 2 and 6.
Week 7 Tuesday, May 12
Dynamic programming.
Longest common subsequence. Edit distance.
Reading: Lecture notes, DPV Chapter 6.
Thursday, May 14
Homework 3 due
Dynamic programming,
Optimal search trees, knapsack.
Reading: Lecture notes, DPV Chapter 6.
Week 8 Tuesday, May 19
Quiz 4
LCS -- Hirschberg's algorithm.
Reading: Slides.
Thursday, May 21
Revisiting amortized analysis.
Maximum flow.
Algorithms of Edmonds-Karp, Dinic, and MPM.
Reading: Lecture notes, DPV Section 7.2.
Week 9 Tuesday, May 26
Maximum flow.
Algorithms of Edmonds-Karp, Dinic, and MPM.
Reading: Lecture notes, DPV Section 7.2.
Thursday, May 28
Homework 4 due
Maximum bipartite matching.
Reading: Lecture notes, DPV Section 7.3.
Week 10 Tuesday, June 2
Quiz 5
Number theory and cryptography: RSA
Reading:
Thursday, June 4
Homework 5 due this Friday
Review.
Reading: