3 Credit Hours
This course helps students learn to integrate their problem-solving and programming knowledge by emphasizing the thought processes and techniques that computer scientists use to deal with data structures. Data abstraction and recursion are used to design and refine solutions to problems throughout the course. Programming style, code robustness, documentation and debugging aids are also emphasized. Topics Include classes implementing abstract data types, recursion for problem solving, common software data structures, basic algorithms for searching, sorting, indexing, and table access, and use of graphs and solutions to common graph problems. This class uses C++ programming.

Prerequisites