一、課程目標Course objectives: 介紹各種不同的資料結構與演算法,強調其基本觀念與使用的時機,使學生能撰寫出有效率的應用程式

二、師生晤談時間及地點Instructor office hours: 5bcd在管5047

三、授課方式Teaching approach: Lecture

四、評量方式Grading criteria: 作業與小考(60%), 期中考 (15%), 期末考(25%)

五、參考書目Textbook & references:
1. Fundamentals of Data Structures in C++ 2nd, by E. Horowitz, S. Sahni, D. Mehta,
Sillicon Press, 2008. 開發代理, ISBN 0-929306-37-6
2. Introduction to Algorithms 2nd, by T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein,
McGraw Hill, 2001.


六、教學進度(週次、授課主題、教學活動、評量方式/作業、章節)
Course schedule (week, topic, activities, evaluation/assignment, text, etc.):
第1週: Introduction to Sorting, Bubble Sort, Insertion Sort, Selection Sort
第2週: Quick Sort, Heap Sort, Merge Sort
第3週: Counting Sort, Radix Sort, Shell Sort
第4週: Introduction to Graphs, Graph Traversal
第5週: Biconnected Component, Min Heap, Minimum Cost Spanning Tree
第6週: Shortest Path Problem
第7週: Topological Sort, Critical Path Analysis
第8週: Single- and Double-Ended Priority Queues
第9週: Leftiest Tree
第10週: Binomial Heaps
第11週: Fibonacci Heaps
第12週: Optimal Binary Search Trees(Dynamic Programming)
第13週: AVL Trees
第14週: m-way Search Trees
第15週: Red-Black Trees
第16週: B Trees, B+ Trees
第17週: Dynamic Programming Problems(Fibonacci number, Cutting Woods, Matrix Mutliply)
第18週: 期末考

七、TA協助事項Teaching Assistant tasks: 作業批改

八、備註Remarks:
마지막 수정됨: 2012년 9월 3일, 월요일, 오후 7:40