ECS122A
Algorithm Design and Analysis
Spring 2019


Announcements

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

Teaching Assistants:
Sarmishta Burujupalli for section A01
Archit Garg for section A02
Ji Wang for section A03

Lectures:
Tue.Thr. 12:10pm - 1:30pm
Everson Hall 176

Discussions:
TA Section Time Place
Sarmishta A01 Mon.4:10-5:00 Chemistry 166
Archit A02 Fri.4:10-5:00 Chemistry 166
Ji A03 Wed.1:10-2:00 Olson 106

Office Hours:
Day Time Place
Mondays 5:30pm - 7:30pm Room 53, Kemper (Archit)
Tuesdays 9:00am - 10:00am
4:00pm - 5:30pm
Room 3005, Kemper (Zhaojun)
Room 47, Kemper (Sarmishta)
Wednesdays 11:00am - 12:30pm
3:00pm-4:00pm
4:00pm-5:30pm
Room 53, Kemper (Ji)
Room 53, Kemper (Archit)
Room 3005, Kemper (Zhaojun)
Thursdays 9:00am-10:00am
2:00pm-3:30pm,
Room 3005, Kemper (Zhaojun)
Room 47, Kemper (Sarmishta)
Fridays 11:00am - 12:30pm Room 53, Kemper (Ji Wang)

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, ECS60 or ECS32B or ECS36C.

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, in writing, is only considered within 3 days of the return day (homework and midterm are returned in your discussion section).

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 Reading Homeworks
4/2 Getting started,1/2 Chapters 1 and 2
Review: linear recurrences
Prof. Koehl's lecture note
Warmup exercise
4/4 Getting started,2/2 Intro Homework 1
4/9 Growth of functions,Big-O Big O (Chap. 3) ..
4/11 Divide-and-conquer recurrences DC (Sec.4.3-4.5) Homework 2
4/16 Divide-and-conquer algorithms 1/2 Max Subarray(Sec.4.1)
Strassen(Sec.4.2)
..
4/18 Divide-and-conquer algorithms 2/2
Greedy algorithms 1/3
Closest pair
Activity Selection(Sec.16.1)
Homework 3
4/23 Greedy algorithms 2/3
Huffman coding(Sec.16.3)
..
4/25 Greedy algorithms 3/3

Dynamic programming 1/3
Knapsack(Sec.16.2)
Extra reading: Money changing
Rod cutting(Sec.15.1)
Homework 4
4/30 Dynamic programming 2/3
Matrix-chain multiplication(Sec.15.2)
Longest common subsequence(Sec.15.4)
..
5/2 Dynamic programming 3/3
Midterm review
.. ..
5/7 Midterm Review ..
5/9 More on Dynamic programming Edit distance
Knapsack revisited
Homework 5
5/14 Graph algorithms 1/3 Intro (Sec.22.1), BFS (Sec.22.2)
DFS (Sec.22.3)
..
5/16 discussion .. Homework 6
5/21 Graph algorithms 2/3 DFS apps (Sec.22.4)
MST (Chap.23)
..
5/23 Graph algorithms 3/3 Shortest path intro (Chap.24 intro)
Shortest path algs (Sec.24.1, 24.2, 24.3)
Option: Shortest path proofs
Homework 7
5/28 NP-completeness 1/2 NPC1
Handout on NPC
..
5/30 NP-completeness 2/2 NPC2, NPC3 Homework 8 (prob. 4)
6/4 Catch up .. ..
6/6 Final review
(Instruction ends)
Review outline ..
6/7 10:30-12:30 Final Exam .. ..


Maintained by Zhaojun Bai