A continuation of Computer Science 200. Topics include pointers, recursion, principles of language design, and an introduction to object-oriented programming. Standard data structures and algorithms for sorting and searching data will be introduced, including lists, stacks, queues, and trees. Software engineering concepts such as top-down design, stepwise refinement, modularization, testing, and documentation will be emphasized. All concepts will be reinforced through programming assignments in C++ or JAVA.
Prerequisites: CSCI 200 and MATH 120.