Study of data structures (including stacks, queues, trees, graphs, and hash tables) and their applications. Development, implementation, and analysis of efficient data structures and algorithms (including sorting and searching). Experience in use of an object-oriented programming language. Prereq: CS 302 or consent of instructor. Students are strongly encouraged to take CS 367 within two semesters of having taken CS 302.