A continuation of the problem solving and programming concepts introduced in CS 234. Applies the basic principles of software engineering to more complex problems. Topics include recursive problem solving, searching, sorting, and dynamic structures. Prerequisites: CS 234 - Algorithms and Problem-Solving I and MATH 120 - Precalculus or higher. (Students must receive a C grade or better in the qualifying prerequisite courses to remain enrolled in CS 250.) Grade or P/NC. Offered each semester.