COP 3530 Data Structures and Algorithms University of Florida Course Objectives 1. To learn how the choice of data structures and algorithm design methods impacts the performance of programs. 2. To learn object-oriented design principles. 3. To study specific data structures such as linear lists, stacks, queues, hash tables, binary trees, heaps, tournament trees, binary search trees, and graphs. 4. To study specific algorithm design methods such as the greedy method, divide and conquer, dynamic programming, backtracking, and branch and bound. 5. To gain experience writing programs in Java. Course Requirements There will be approximately ten assignments and three exams. Each exam will count for approximately 20% of the grade. The assignments will together account for the remaining 40% (approx) of the grade. All exams are closed book exams. Course Topics. The specific topics are given below. The number of lectures devoted to each topic is only an estimate. The actual time spent on each topic may be different from the estimate. 1. Simple sort methods and performance measurement. (2 lectures). 2. Data representation methods and linear lists. (7 lectures) 3. Arrays & matrices. (2 lectures) 4. Stacks. (2 lectures) 5. Queues. (1 lecture) 6. Hashing and LZW compression. (3 lectures) 7. Binary trees. (4 lectures) 8. Priority queues. (2 lectures) 9. Tournament trees. (1 lecture) 10. Search trees. (2 lectures) 11. Graphs. (3 lectures) 12. The greedy method. (3 lectures) 13. Divide-and-conquer. (3 lectures) 14. Dynamic programming. (5 lectures) 15. Backtracking. (2 lectures) 16. Branch-and-bound. (1 lecture) The recommended text is: Data Structures, Algorithms, and Applications in Java, Second Edition, by Sartaj Sahni, Silicon Press, 2005. The programs used in this text, together with sample main programs and output are available from the web site for this text. WORKLOAD: Students who take this course often comment that a great deal of material is covered in a relatively small amount of time, and that the material is progressive, i.e. that each topic builds upon the previous one. Frequent advice from former students mentions that it is unwise to fall behind.