CSC 340 Data Structures and Algorithms St. Martin’s College

Term: Fall 2003 Instructor: Kyu Y. Lee

Office Hours: By appointment with the instructor. [email protected] (360)438-4539 (253)678-5562

TEXTBOOK: Data Structures and Program Design in C++, Prentice Hall 1999 ISBN: 0-13-768995-0 References: The Art of Computer Programming, Vol. 1, “Fundamental Algorithms” 3ed., by Don Knuth, Addison-Wesley, 1997 ISBN 0-201-89683-4 -- Chapter 2 discusses Data Structures

The Art of Computer Programming, Vol. 2, “Semi-numerical Algorithms” 3ed., by Don Knuth, Addison-Wesley, 1997 ISBN 0-2-1-89684-2 --Chapter 3(1st chapter) discusses random number theory The Art of Computer Programming, Vol. 3, “Sorting & Searching” 2ed., by Don Knuth, Addison-Wesley, 1998 ISBN 0-201-89685-0

OBJECT OF COURSE: Programming consists of data and processes that operate on data. In this class we will examine how to structure data to address particular applications. We will cover data structures, structured problem solving, data abstraction, algorithms, and comparative analysis of algorithms. It is often said that Data Structures is one of the most, if not the most, important course in a Computer Science curriculum. The class will consist of lectures and numerous programming assignments.

GRADING: Midterm: 20 % Final : 30 % Class Attendance & participation: 10% Assignments: 40 % Syllabus (subject to change):

1. Introduction (8/26) 2. Program Development (8/28) a. Top-down approach b. Bottom-up approach 3. Example: Game of Life (9/2 – 9/4) a. Rules b. Top level of abstraction c. Stepwise refinements 4. Programming Style 5. Basic Data Structures (9/9) 6. Arrays (9/9) 7. Stacks (9/11 – 9/18) 8. Queues (9/23 – 9/25) 9. Linked Data Structure (9/30 – 10/7) 10. Midterm Exam (10/9) 11. Recursion ( 10/14 – 10/21) 12. Lists and Strings (10/23 – 11/4) 13. Application to Searching (11/6 – 11/18) a. Introduction b. Sequential Search c. Binary Search d. Hash Searching 14. Sorting (11/20 – 12/2) a. Introduction b. Insertion Sort c. Selection Sort d. Shell Sort (if time permits) e. Partition Sort f. Quick Sort g. Heatsort (if time permits) 15. Binary Tree (12/4) 16. Final Exam (12/11)