CSE 3500:  Algorithms and Complexity
Spring 2017

Instructor: Yufeng Wu

Chong Chu (chong.chu@engr.uconn.edu)
Parker Timmerman (parker.timmerman@uconn.edu)

: Monday and Wednesday 3:35--4:50 pm @ LH 301.

Office Hour: ITE 235, Monday and Wednesday 10:30 to 12 pm, and 2:00-3:30 pm, or by appointment.
Note: solutions of homework and exams will be posted on HuskyCT.

Course Description. See the Syllabus.

Schedule. Planned schedule is here, but this is what is happening:

Lecture 25: Coping with NP complete problems.
Lecture 24: NP completeness.

Lecture notes from last semester.
Lecture notes.
Sections 10.1 and 10.2.
Sections 8.7 and 8.8

Slides for the Minesweeper (PDF).

Lecture 23: NP completeness
Lecture 22: Polynomial time reduction.

Lecture notes on polynomial time reduction.

More lecture notes on NPC.
Sections 8.1 to 8.4.
HW10. Due: 4/26 Wednesday.
Lecture 21: Concept of NP.
Lecture 20: Algorithm for primality testing.

Lecture notes on the concept of NP.
Lecture notes on primality testings: part 1and part 2.
Wikipedia page on primality test.
Section 8.3.
HW9. Due: 4/19 Wednesday.
Exam two.
Lecture 19: Advanced topic: Fast Fourier transform

Lecture notes (focus on the FFT part)
Section 5.6.
Programming assignment 2: dynamic programming. Due: 4/12.
Test data (for Linux/Mac)
Test data (for Windows)
Note: the test data was generated for another assignment. It contains more datasets than needed. You only need to run your code on files like listSeqs-errorxxx-lxxx.txt.
Lecture 18: Shortest path: Bellman-Ford algorithm
Lecture 17: Dynamic programming: matrix chain multiplication. Shortest path.

Lecture notes from last semester
Sections 4.4 and 6.8.
Wikipedia page for matrix chain multiplication
HW8. Due: 4/3 Monday. Note: please don't be late. I need to post the solution soon after the deadline for the purpose of exam preparation.
Lecture 16: Dynamic programming: knapsack, edit distance, weighted interval scheduling.

Lecture 15: Dynamic programming: longest common subsequence (LCS)

Lecture notes from last semester.
Lecture notes from last semester.
Sections 6.1, 6.2, 6.4, 6.6.
HW7. Due: 3/27 Monday.
Lecture 14: Dynamic programming: longest increasing subsequence (LIS)

Lecture 13: Divide and conquer algorithms: integer and matrix multiplication; closest point; Quicksort and selection.

Lecture notes from last semester.
Lecture notes from last semester.
Sections 5.4 and 5.5.
HW6. Due: 3/20 Monday.
Lecture 12: Divide and conquer. Master theorem. Design of algorithms using divide and conquer.
Lecture 11: MST (continued). Divide and conquer

Lecture notes from last semester.

Lecture notes on the Master theorem. This is from a lecture I gave for the other section of CSE 3500 last semester.
Sections 5.1 and 5.2.
HW5. Due: 3/6 Monday.
Exam one.
Lecture 10: Greedy algorithm: minimum spanning tree (MST)

Lecture notes (see last week's)
Section 4.5.

Lecture 9: Greedy algorithms: Huffman coding and knapsack.
Lecture 8: Greedy algorithm: more scheduling problems.

Lecture notes on Huffman coding.
Lecture notes on scheduling: this part follows closely the textbook. Also check the discussion board in HuskyCT.
Sections 4.1, 4.2 and 4.8.
HW4. Due: 2/20 Monday.
Lecture 7: Strongly connected components. Greedy algorithms: coin change and interval scheduling.
Lecture 6: Graph: DFS and applications: Is a directed graph acyclic? Topological sort of DAGs.

Lecture notes
Lecture notes
Sections 3.5 to 3.6. Section 4.1.
HW3. Due: 2/13 Monday.
Lecture 5: Graph: BFS.
Lecture 4: Common running time. Heap.

Lecture notes on heap (see the second page).
Sections 3.1 to 3.4.
Sections 2.4 and 2.5.
Programming assignment one. Due: 2/8, end of day.

Test data one for this assignment.
Test data two for this assignment.
Lecture 3: Asymptotic notations
Lecture 2: Basic algorithm analysis.

Lecture notes 2
Chapter 2
HW2. Due: 2/1, end of day.
Lecture 1: Basic concepts of algorithms. Stable matching problem: a motivating example.

Lecture notes 1 (from previous offering of this course): please note lecture topics will be similar with previous offering of this course. So I often will re-use the lecture notes.
Chapter 1 of the textbook (also available online here).

HW1. Due: 1/25, end of day.
Submit electronically to HuskyCT.