Table of Contents
Algorithms, Fall 2023
This course provides an introduction to the design and analysis of computer algorithms, with a particular emphasis on the use of principles of mathematical induction in designing algorithms. Its goal is to acquaint the students with basic computer algorithms and their design principles and to cultivate the students' ability in designing and analyzing algorithms independently.
Announcements
- 01/03: grade report corrected again.
- 2024/01/01: grade report corrected.
- 12/27: grade report available (corrected 2024/01/01 and 01/03); please send inquiries/requests, if any, to the instructor by 2PM 12/29 (Fri.).
- 12/05: HW#10 due on 12/12.
- 12/05: notes/slides for NP-Completeness available.
- 12/05: notes/slides for Reduction available.
- 11/27: HW#9 due on 12/05.
- 11/27: notes/slides for Dynamic Programming available.
- 11/14: notes/slides for Basic Graph Algorithms revised.
- 11/13: HW#8 due on 11/28.
- 11/11: notes/slides for Advanced Graph Algorithms available.
- 11/08: HW#7 due on 11/21.
- 11/08: Suggested Solutions to Midterm Problems available.
- 11/07: notes/slides for Basic Graph Algorithms available.
- 10/22: HW#6 due on 11/07.
- 10/22: notes/slides for String Processing available.
- 10/18: notes/slides for Searching and Sorting revised again.
- 10/17: notes for Searching and Sorting revised.
- 10/05: HW#5 due on 10/17.
- 09/30: notes/slides for Searching and Sorting available.
- 09/30: notes/slides for A Supplement to Data Structures available.
- 09/23: HW#4 due on 10/03.
- 09/20: notes/slides for Design by Induction available.
- 09/15: HW#3 due on 09/26.
- 09/15: notes/slides for Analysis of Algorithms available.
- 09/11: old exams.
- 09/08: HW#2 due on 09/19.
- 09/06: classroom changed to Room 305, Management Building 2.
- 09/05: HW#1 due on 09/12.
- 09/05: notes/slides for Introduction and for Mathematical Induction available.
- 08/29: this wiki site created to complement the NTU COOL site for this course.
Instructor
Yih-Kuen Tsay (蔡益坤), NTU IM Dept.,
3366-1189, Xtsay@ntu.edu.twX
(between the enclosing pair of X's).
Lectures
Tuesday 2:20~5:20PM, Room 305, Management Building 2.
TA
sessions will be scheduled prior to some of the class meetings between 1:20
and 2:10PM; see the course schedule below.
Office Hours
Tuesday 1:30~2:00PM, Wednesday 1:30~2:00PM, or by appointment, Room 1108, Management Building 2.
TAs
Ling-Hsuan Chen (陳琳瑄), Xr11725020@ntu.edu.twX (between the enclosing pair of X's).
Yu-Ju Teng (鄧鈺儒), Xr11725044@ntu.edu.twX (between the enclosing pair of X's)
Textbooks
- [M] Introduction to Algorithms - A Creative Approach, U. Manber, Addison-Wesley, 1989. (Four copies of this book have been put on reserve at NTU Library in the 3F-Course Reserves area 教師指定參考書區 under 演算法(BM-4). Additionally, ten copies are available for loan; please contact one of the TAs.)
- [C] Introduction to Algorithms, Fourth Edition, T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein, MIT Press, 2022. (開發圖書代理; one copy of this book has been put on reserve at NTU Library in the 3F-Course Reserves area 教師指定參考書區 under (FF-9).)
Syllabus/Schedule (with links to notes/slides)
We will try to cover most of Manber's book plus supplementary material, including a few chapters of the book by Cormen et al. (Note: a TA session will precede a class meeting whose date is marked with an *. There are six TA sessions on 09/19, 10/03, 10/24, 11/14, 11/28, and 12/12.)
- Data Structures: A Supplement [M: Ch. 4; C: Ch. 6,13,19] (.5 week: 10/03a*) [notes, slides, Building an AVL Tree (Illustration)]
- Searching and Sorting [M: Ch. 6; C: Ch. 6,7,8,9] (1.5 weeks: 10/03b, 10/17) [notes, slides, Heapsort (Illustration), Bottom-Up Heap Building (Illustration)]
- String Processing [M: Ch. 6; C: Ch. 32] (1 week: 10/24*) [notes, slides, Construction of a Huffman Tree (Illustration)]
- Midterm (2023/10/31)
- Graph Algorithms: Basic [M: Ch. 7; C: Ch. 20,21,22,23] (1.5 weeks: 11/07, 11/14a*) [notes, slides, Dijkstra's Algorithm (Illustration), Prim's Algorithm (Illustration)]
- Graph Algorithms: Advanced [M: Ch. 7; C: Ch. 20,24,25] (1.5 weeks: 11/14b, 11/21) [notes, slides, Computing SCCs (Illustration)]
- Final (2023/12/19)
Grading
Homework/Quizzes 20%, Participation 10%, Midterm 35%, Final 35%.
References
- Mathematical Induction (a Wikipedia page)
- Structural Induction (a Wikipedia page)
- MIT OpenCourseWare: Introduction to Algorithms
- Stanford Coursera: Algorithms
- What is an Algorithm? (M.Y. Vardi, Communications of the ACM, Volume 55 Issue 3, March 2012)
- The P versus NP Problem (Stephen Cook)
- The website of ICPC (International Collegiate Programming Contest)