CS 200 revisits and extends the principles of programming and discrete math concepts that are introduced in CS 161 and applies them to the development, analysis, and implementation of data structures and efficient software. The course is taught using the Java Programming Language and an Object Oriented approach to data structures and algorithms. Specific topics in data structures/algorithms include advanced sorting, queues, stacks, hash tables, trees, and graphs. Advanced topics from theory include complexity analysis, relations, and mathematical induction.
Extensive practice through programming exercises and written assignments that explore discrete math concepts are principal activities of the course.