CSE 431/531: Analysis of Algorithms (Fall 2016)

Course Information

Time: MoWeFr 9:00~9:50am

Location: Cooke 121

Credits: 3

Instructor

Shi Li

Office: 328 Davis Hall

Email: [first name][last name initial][at][buffalo][dot][edu]

Homepage: http://www.cse.buffalo.edu/~shil/

Office Hours: 10:00am-12:00pm, Wednesdays, Davis 328

TAs

NameEmailOffice HoursOffice Hours Location
Di Wangdwang4510:00am-12:00pm, MondaysDavis 300 Lounge
Minwei Yeminweiye10:00am-12:00pm, TuesdaysDavis 300 Lounge
Alexander Stachnikajstachn10:00am-12:00pm, ThursdaysDavis 300 Lounge

NameEmail
Li Zhanglzhang34
Xin Liuxliu47
Xin Maxma24

Overview

Algorithm design and analysis is fundamental to all areas of computer science and gives a rigorous framework for the study of optimization. This course provides an introduction to algorithm design through a survey of the common algorithm design paradigms of greedy optimization, divide and conquer and dynamic programming. More advanced topics covered in the course include network flows, NP-completeness, linear programming, approximation algorithms, etc.

Required Textbook

Jon Kleinberg and Eva Tardos    Algorithm Design.   1st Edition, 2005, Pearson.

• Homeworks: 20%.   There are 5 homeworks, each worth 4 points.
• Projects: 20%.   There are 2 projects, each worth 10 points. In each project, you need to implement an algorithm learned from the course.
• In-class exams.   There are 2 in-class exams, each worth 15 points.
• Final exam. Final exam will be held at 8:00am-11:00am on Dec 14, 2016, in Cooke 121.
• The two in-class exams and the final exam contribute to 60% of the final score. Your score for exams is computed as follows:
max{E1 × 5% + F × 25%, E1 × 15% + F × 15%} + max{E2 × 5% + F × 25%, E2 × 15% + F × 15%},
where E1, E2 and F are your scores for exam 1, exam 2 and final exam respectively (each score is a number from 0 to 100).

Policies

• Late policy   You have one late credit. If you use the credit, you can submit a homework or a project 3 days late. No other late submissions will be accepted.
• Collaboration policy  For homework problems, you are allowed to discuss with classmates. However, it is highly recommended that you first think about each problem for enough time before the discussion. You must write your solutions by yourself, in your own words. You need to write down the names of the students you collaborated with. For the 2 projects, you must implement the algorithms by yourself. Copying codes from other students or the internet is not allowed. If cheating is found, you will get an "F" for the course.
• The 2 in-class exams and the final exam are all closed-book, but you can bring an A4 paper, with both sides handwritten (a "cheat sheet").

Homeworks and Projects

HWs and ProjectsTopics CoveredPost DateDue Date
Homework 1Introduction, Graph BasicsSep 12Sep 26
Project 1
Public Test Cases
Minimum Spanning TreeSep 26Oct 30
Homework 2Greedy Algorithms, Divide-and-ConquerOct 14Oct 28
Homework 3Dynamic ProgrammingOct 28Nov 14
Project 2Longest Common SubsequenceNov 14Dec 9
Homework 4NP-CompletenessNov 14Dec 2
Homework 5Approximation and Randomized AlgorithmsDec 5Dec 12

Tentative Schedule

1Aug 29Introduction

2.1, 2.2, 2.4
SyllabusSlides / Printout

Last updated:
08/04/19 00:14
Aug 31Asymptotical Notations
Sep 2Common Running Times
2Sep 5 Labor Day
Sep 7Graph Basics

3.1, 3.2, 3.3, 3.6
Graph RepresentationsSlides / Printout

Last updated:
08/04/19 00:14
Sep 9Graph Connectivity and Traversal
3Sep 12Topological Order
Sep 14Greedy Algorithms

4.1, 4.2, 4.4, 4.5, 4.6, 2.5
Interval SchedulingSlides / Printout

Last updated:
08/04/19 00:14
Sep 16MST
4Sep 19Kruskal's Algorithm
Sep 21Prim's Algorithm
Sep 23Priority Queue and Heap
5Sep 26Shortest Path and Dijkstra's Algorithm
Sep 28Divide and Conquer

5.1, 5.3, 13.5, 5.5
Merge Sort and Count InversionsSlides / Printout

Last updated:
08/04/19 00:14
Sep 30Quick Sort and Selection Problem
6Oct 3Polynomial and Matrix Multiplications
Oct 5Solving Recurrences
Oct 7Counting Inversions via Self-Balancing BST
7Oct 10 No Class Today
Oct 12 In-Class Exam #1
Oct 14Dynamic Programming

6.1, 6.2, 6.4, 6.6, 6.8, 6.9
Weighted Interval SchedulingSlides / Printout

Last updated:
08/04/19 00:14
8Oct 17Subset Sums and Knapsack
Oct 19Sequence Alignment
Oct 21Shortes Paths with Negative Weights
9Oct 24Bellman-Ford
Oct 26All-Pair Shortest Paths
Oct 28Exercise Problems
10Oct 31NP-Completeness

8.1 ~ 8.5
Some Hard Problems, PSlides / Printout

Last updated:
08/04/19 00:14
Nov 2NP, Co-NP, P=NP and NPC
Nov 4Circuit-SAT, 3-SAT
11Nov 7Independent Set, Vertex Cover
Nov 9Hamiltonian Cycle
Nov 113-Coloring
12Nov 14Exercise Problems
Nov 16Approximation and
Randomized Algorithms

11.6, 13.3, 13.4, 13.5
Travelling Salesman ProblemSlides / Printout

Last updated:
08/04/19 00:14
Nov 18Vertex Cover
13Nov 21MAX 3-SAT
Nov 23 Fall Recess
Nov 25
14Nov 28 In-Class Exam #2
Nov 30Approximation and
Randomized Algorithms
cont.

11.6, 13.3, 13.4, 13.5
Randomized Quicksort and Median Finder
Dec 2Linear Programming, Weighted Vertex Cover
15Dec 5Exercise Problems
Dec 7 Final Review
Dec 9 Q & A Session by TAs