CSc 3102 Advanced Data Structures and Algorithmic Analysis
Course: Tues & Thurs 9:10-10:30 AM Coates 212
Instructor: Donald H. Kraft Office: 286 Coates Phone: 578-2253
Text: A. Levitin, Introduction to the Design & Analysis of Algorithms, 2nd ed., Addison-Wesley, 2005
Reference: R.F. Gilberg and B.A. Forouzan, Data Structures A Pseudocode Approach with C, 2nd ed., Thomson, 2005
Credits: 3 hours
Prerequisites: CSc 1254 or 1351 (advanced programming skills, concepts of abstract data types – ADTs, complex data structures such as linked lists, arrays, stacks, queues, and binary trees) and credit or concurrent enrollment in CSc 2259 or EE 2720 (logic, set theory)
Course Catalog Description: Description and utilization of formal ADT representations, especially those on lists, sets, and graphs; time and space analysis of recursive and nonrecursive algorithms, including graph and sorting algorithms; algorithmic design techniques.
Course Outcomes: Have a basic ability to analyze algorithms and to determine algorithm correctness and time efficiency class; Master a variety of abstract data types and data structures and their implementations; Master different algorithm design techniques (e.g., brute-force, divide-and-conquer, greedy); Have ability to apply and implement learned algorithm design techniques and data structures to solve problems.
Algorithm Design and Analysis
General introduction, fundamentals of algorithm analysis,
metrics – O, W, and Q Chaps. 1-2
Brute-force algorithms Chap. 3
techniques Chaps. 4-6
Other algorithm design techniques Chaps. 7-9
Advanced Data Structures
Review of linear data structures (e.g., linked lists,
arrays, stacks, queues, priority queues) Chap. 1
Trees (e.g., general trees, binary trees, binary search
trees, AVL trees, 2-3 trees, heaps, B-trees) Chaps. 1, 4, 6
Sets, dictionaries, hashing Chaps. 1, 7
Graphs (e.g., undirected, directed, weighted) Chap. 7
Sorting Chaps. 3-5, 7
Searching Chaps. 6-8
String search (e.g., web queries) Chap. 7
Graphs (e.g., DFS, BFS, shortest path, topological
sorting, minimum spanning tree) Chaps. 5, 8-10
Combinatorial (e.g., traveling salesman) Chaps. 5, 12
Geometric (e.g., convex hull) Chap. 3
Numeric algorithms Chap. 4
Theoretical Issues (if time permits)
Limits on algorithmic power Chap. 11
Homework (5-7 homeworks) 15%
Hard copy if possible, if late up to 3 days then lose 10 points/day
Program/Project Assignments (4-6) 30%
Submit source code and output, can submit electronically
If late up to 5 days then lose 10 points/day
Midterm examination 25%
Final examination 25%
All homework and programming and project assignments are to be done individually, not in teams, unless specified by the instructor!
Examples of homework:
Implement an AVL tree ADT using the insertion and search algorithms. Use this ADT to construct a directory of book titles held in various libraries. The program should be able to answer queries to the directory about book titles.
Implement a graph ADT containing procedures to perform graph traversals (DFS, BFS), test graph connectivity for an undirected graph, do topological sorting for a directed graph.
Redo the directory of book titles using a b-tree and/or an open-hashing algorithm.