Table of Contents
Algorithms, Spring 2018
The goal of this course 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
- 07/08: grade report available; please send inquiries, if any, to the instructor by 2PM 07/09.
- 06/23: the final exam will be held in Room 101, Management Building 2.
- 06/05: notes/slides for Reduction and for NP-Completeness available.
- 05/29: notes/slides for Dynamic Programming available.
- 05/22: HW#9 due on 05/29.
- 05/15: notes/slides for Advanced Graph Algorithms available.
- 05/15: HW#8 due on 05/22.
- 05/15: Suggested Solutions to Midterm Problems available.
- 05/08: HW#7 due on 05/15.
- 05/01: notes/slides for Basic Graph Algorithms available.
- 04/17: old exams.
- 04/17: HW#6 due on 05/01.
- 04/17: notes/slides for String Processing available.
- 04/10: HW#5 due on
04/1705/01. - 03/27: notes/slides for Searching and Sorting available.
- 03/27: HW#4 due on 04/10.
- 03/27: notes/slides for A Supplement to Data Structures available.
- 03/20: HW#3 due on 03/27.
- 03/20: notes/slides for Design by Induction available.
- 03/13: HW#2 due on 03/20.
- 03/13: notes/slides for Analysis of Algorithms available.
- 03/05: contents of “Proving a Loop Invariant” merged into the main notes.
- 02/27: HW#1 due on 03/13.
- 02/27: notes on Proving a Loop Invariant available.
- 02/27: notes/slides for Introduction and for Mathematical Induction available.
- 02/25: this website announced.
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 303, 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
Carlos Chang (張永叡), Xjake080449@gmail.comX
(between the enclosing pair of X's).
蕭博仁, Xkogktt187@gmail.comX
(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 B1-教師指定參考書區 under 演算法(BM-4). Additionally, eight copies are available for loan; please contact one of the TAs.)
- [C] Introduction to Algorithms, Third Edition, T.H. Cormen, C.E. Leiserson, R.L. Rivest, and C. Stein, MIT Press, 2009. (開發圖書代理; one copy of this book has been put on reserve at NTU Library in the B1-教師指定參考書區 under (FF-9).)
Syllabus/Schedule (with links to notes/slides)
This course provides an introduction to the design and analysis of computer algorithms. A particular emphasis is given to principles of mathematical induction and their use in designing algorithms. The course will 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 four TA sessions on 3/27, 4/17, 5/15, and 6/12.)
- Data Structures: A Supplement [M: Ch. 4; C: Ch. 6,13,21] (.5 week: 3/27a*) [notes, slides, Building an AVL Tree (Illustration)]
- Searching and Sorting [M: Ch. 6; C: Ch. 6,7,8,9] (1.5 weeks: 3/27b, 4/10) [notes, slides, Heapsort (Illustration), Bottom-Up Heap Building (Illustration)]
- String Processing [M: Ch. 6; C: Ch. 32] (1 week: 4/17*) [notes, slides, Construction of a Huffman Tree (Illustration)]
- Midterm (2018/04/24)
- Graph Algorithms: Basic [M: Ch. 7; C: Ch. 22,23,24,25,26] (2 weeks: 5/1, 5/8) [notes, slides, Dijkstra's Algorithm (Illustration), Prim's Algorithm (Illustration)]
- Final (2018/06/26)
References
- Mathematical Induction (a Wikipedia page)
- Structural Induction (a Wikipedia page)
- MIT OpenCourseWare: Introduction to Algorithms
- Stanford Coursera: Design and Analysis of Algorithms
- What is an Algorithm? (M.Y. Vardi, Communications of the ACM, Volume 55 Issue 3, March 2012)
- The website of ACM-ICPC (International Collegiate Programming Contest)
Grading
Homework 20%, Participation 10%, Midterm 35%, Final 35%.