This course examines the basic concepts of data structures and related algorithms. Topics include arrays, structures, stacks, queues, linked lists, trees, graphs, and hash tables. Students will implement the data structures and their associated algorithms, and will also write complete programs that make use of these data structures. Other topics to be discussed will be recursion, searching, sorting, and design tradeoffs. Prerequisite: C- or better in CSC 104.