ECS122A
Algorithm Design and Analysis
Winter 2018


Important announcement:


Instructor:
Zhaojun Bai,
Office: 3005 Kemper Hall
Phone: 752-4874
Email: bai at cs.ucdavis.edu

Teaching Assistants:
Nima Joharizadeh (johari at ucdavis.edu)
Kenan Nalbant (kanalbant at ucdavis.edu)
Yuan Pan (yapan at ucdavis.edu)

Lectures:
M.W.F. 12:10pm - 1:00pm
Hunt 100

Discussions:
TA Section Time Place
Yuan A01 (CRN51558) Mon. 10-10:50 Olson 106
Nima A02 (CRN51559) Wed. 10-10:50 Olson 106
Kenan A03 (CRN51560) Wed. 3:10-4:00 Chemistry 176
Website for discussion sessions

Office Hours:
Day Time Place
Mondays 3:00 - 4:00 Kemper 3005, Bai
5:00 - 7:00 Kemper 53, Nima
Tuesdays 10:00 - 11:00 Kemper 55, Yuan
5:00 - 7:00 Kemper 53, Kenan
Wednesdays 2:00 - 3:00 Kemper 3005, Bai
5:00 - 6:00 Kemper 53, Kenan
Thursdays 6:00-8:00 Kemper 53, Yuan
Fridays 10:00 -- 11:00 Kemper 3005, Bai
5:00 -- 6:00 Kemper 53, Nima

Course Objectives:
The notion of an algorithm is fundamental to all of computer science. In this course, we study methods for designing efficient algorithms, evaluating their performance, and ways of establishing precise limits on the possible effectiveness of classes of algorithms.

Textbook and lecture notes:

Prerequisites
ECS20 and ECS60.

Course Outline
  1. Introduction and foundations (Ch.1-3)
  2. Algorithm design paradigms:
    • Divide-and-conquer (Ch.4)
    • Dynamic programming (Ch.15)
    • Greedy algorithms (Ch.16)
  3. Algorithms on graphs and trees (Ch.22-25)
  4. NP-completeness and approximate algorithms (Ch.34-35)

Homeworks:

Exams (All exams are closed-book, no notes allowed):

Grading:
Grading may reflect the clarity of your presentation as well as the correctness of your answers.
Regrading of homeworks and midterm exams is only considered within 5 days from the return day. Regrading request must be submitted in writing.

Online Info:
Annoucements, handouts and homework assignments will be posted at the following sites. They get updated frequently throughout the quarter.

Lecture-by-Lecture summaries, handouts and homework assignments

Date Topics Handouts/Homeworks
1/8 I. Introduction and getting started LN: Introduction and getting started
Reading: Chaps. 1 and 2
Review: linear recurrences (ECS20)
Warmup exercise
1/10 I. Introduction and getting started (2/3) Problem set 1
1/12 I. Introduction and getting started
II. Asymptotic notations
LN: Asymptotic notations
Reading: Section 3.1
1/15 holiday, no class
1/17 II. Asymptotic notations
III. Divide-and-Conquer (DC) recurrences
LN: DC recurrences
Reading: Section 3.2
Problem set 2
1/19 III. Divide-and-Conquer recurrences
Reading: Section 4.4
1/22 IV. DC algorithms: maximum-subarray
IV. DC algorithms: Strassen's method
LN: maximum-subarray
LN: Strassen
Reading: Sections 4.1 and 4.2
1/24 IV. DC algorithms: the closest pair
LN: closest pair
Problem set 3
1/26 V. Greedy algorithms: activity selection
LN: activity selection
1/29 V. Greedy algorithms: Huffman codes
LN: Huffman codes
1/31 V. Greedy algorithms: knapsack problem
LN: knapsack
Problem set 3 due
Extra reading: money changing
2/2 VI. Dynamic programming: rod cutting
Brief review for midterm I
LN: rod cutting
Reading: section 15.1
Review checklist, Slides
Problem set 4
2/5 Midterm 1
2/7 VI. Dynamic programming: matrix-chain product LN: matrix-chain product
Reading: sections 15.2 and 15.3
2/9 VI. Dynamic programming: longest common subsequence LN: LCS
Reading: section 15.4
2/12 VI. Dynamic programming: LCS and edit distance LN: edit distance
Problem set 5
2/14 VI. Dynamic programming: Knapsack problem and summary LN: knapsack revisited
Handout on knapsack
Reading: section 15.3
2/16 VII. Graph algorithms: Intro and BFS
LN: Graph intro
LN: BFS
Reading: Sections 22.1 and 22.2, Appendix B.4
2/19 holiday, no class ...
2/21 VII. Graph algorithms: DFS
LN: DFS
Handout: DFS
Problem set 6, due 4:00pm, Feb.28
2/23 VII. Graph algorithms: DFS apps and MST
LN: DFS apps
LN: MST
2/26
2/28 Problem set #6 due
3/2
3/5 Midterm 2: cover topics in Problem Sets #4, #5 and #6
3/7
3/9
3/12
3/14
3/16 ... (instruction ends)
3/17-3/19 ... (extra office hours and reviews... to be announced)
3/20 6:00-8:00pm, Final Exam Hunt 100


Maintained by Zhaojun Bai