课程名称 (Course Name):Algorithm Theory and Analysis
课程代码 (Course Code):X0335331302M02
学分/学时 (Credits/Credit Hours):3/54
开课时间 (Course Term ):春spring
开课学院(School Providing the Course): 电子信息与电气工程学院 seiee
任课教师(Teacher): Xiaofeng Gao (gao-xf@cs.sjtu.edu.cn)
课程讨论时数(Course Discussion Hours): 54 小时(Hours)
课程实验数(Lab Hours): 10小时(Hours)
课程内容简介(Course Introduction):
This course is an advanced algorithm class for graduate students. It mainly focuses on the design techniques of various algorithms like divide-and-conquer, greedy approach, dynamic programming, graph algorithm, etc; and the analysis methodology of corresponding designs like amortized analysis, time/space complexity, correctness proof, NP-completeness, and approximations.
教学大纲(Course Teaching Outline):
Course Objectives
This course introduces students to the analysis and design of algorithms. Upon completion of this course, students will be able to do the following:
Course Outcomes
Students who complete the course will have demonstrated the ability to do the following:
课程进度计划(Course Schedule):
| Week | Lecture Topic | HW | Event | 
| 1 | Syllabus, Preliminary, Introduction to Algorithm Schedule, Grading Policy, Preliminary, Basic Introduction, etc. | Lab-01 | 
 | 
| 2 | Data Structure, Math Functions Data Structure, Graph, Disjoint Set, Mathematical Fundamentals, etc. | Lab-02 | 
 | 
| 3 | Amortized Analysis Aggregate Analysis, Accounting Method, Potential Method | Lab-03 | 
 | 
| 4 | Divide-and-Conquer Mergesort, Selection, Sorting Network, etc. | Lab-04 | 
 | 
| 5 | Greedy Approach (1) Activity Selection, Minimum Spanning Tree, Huffman Code, etc. | Lab-05 | 
 | 
| 6 | Greedy Approach (2) Interval Partitioning, Task Scheduling, Shortest Path, Cache, Matroid | Lab-06 | 
 | 
| 7 | Dynamic Programming (1) Matrix-Chain, Longest Common Subsequence, 0-1 Knapsack, etc. | Lab-07 | 
 | 
| 8 | Dynamic Programming (2) Optimal Substructure, Weighted Interval Scheduling, Alignment, etc. | 
 | 
 | 
| 9 | Application. Exercises. Midterm. | 
 | Midterm | 
| 10 | Graph Algorithms (1) Single Source Shortest Paths, All-Pairs Shortest Paths, etc. | Lab-08 | Project-01 | 
| 11 | Graph Algorithms (2) Maximum Flow, Minimum Cut, etc. | Lab-09 | 
 | 
| 12 | Graph Algorithms (3) Computational Geometry, Real-World Applications | Lab-10 | 
 | 
| 13 | NP-Completeness (1) NP, NP Completeness, NP Hard, Turing Machine, Verification, etc. | Lab-11 | 
 | 
| 14 | NP-Completeness (2) Polynomial time Reduction, Reducibility, Proofs, etc. | Lab-12 | 
 | 
| 15 | Approximation Design (1) Approximation Ratio, Approximation Class, Examples | Lab-13 | 
 | 
| 16 | Approximation Design (2) Sequential Algorithm, Local-Search, LP, Primal-Dual Technique, etc. | 
 | 
 | 
| 17-18 | Review. Exercises. Tutoring. Final Exam | 
 | Final | 
课程考核要求(Course Assessment Requirements):
The final grade will be derived from your performance on the tests, and assignments. The class participation is shown as follows:
| Events: | 
 | 
| Midterm Exam | 25% | 
| Final Exam | 25% | 
| Assignments | 20% | 
| Projects | 20% | 
| Class Participation | 10% | 
| Total | 100% | 
| Grading Policy: | 
 | 
| 90-100% | A | 
| 80-89% | B | 
| 70-79% | C | 
| 60-69% | D | 
| 59% and below | F | 
参考文献(Course References):
l Algorithm:
n M. H. Alsuwaiyel, Algorithm Design Technique and Analysis, World Scientific, 1999.
n Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, Algorithm, McGraw-Hill, 2007.
n J. Kleinberg, and E. Tardos, Algorithm Design, Pearson-Addison Wesley, 2005.
n Alfred V. Aho, John E Hopcroft, Jeffery D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.
n Udi Manber, Introduction to Algorithms: A Creative Approach, Addison-Wesley, 1989.
n Henming Zou, The Way of Algorithms, China Machine Press, 2010.
l Computational Complexity:
n Christos Papadimitriou, Computational Complexity, Addison Wesley, 1994.
n Theory of Computational Complexity, by Ding-Zhu Du, and Ker-I Ko, published by John Wiley & Sons, Inc., 2000.
n Computational Complexity: A Modern Approach, by Sanjeev Arora and Boaz Barak, Cambridge University Press, 2006.
l Approximation:
n Vijay V. Vazirani, Approximation Algorithms, Springer-Verlag, 2001.
n D.P. Williamson and D.B. Shmoys, The Design of Approximation Algorithms, 2011.
n D.Z Du, K-I. Ko, and X.D. Hu, Design and Analysis of Approximation Algorithms, 2012.