Continuation of CS 182. Implement and analyze a variety of data structures and the algorithms used with those data structures, and create abstract data types and learn how and when to utilize them. Fundamental data structures include multidimensional arrays, linked lists, stacks, queues, heaps, trees, and hash tables; learn when to use which of the available dynamic memory data structures. Tools for analyzing and predicting run time and memory usage are introduced, as is Big-O notation. A variety of sort algorithms are reviewed and analyzed for best, worst and average case performance, and compared with tree traversal algorithms. Develop increased sophistication in object-oriented basics such as inheritance, encapsulation, design of abstract data types, and polymorphism. Students will gain experience by working on larger programs and managing large, multi-programmer projects. Laboratory instruction includes program development and execution. Mobile and database applications will be introduced.
Prerequisite: CS 182, MATH 175 or equivalent with a grade of "C" or better or “Pass”.
Recommended Preparation: None
4 UNITS 3 hours lecture, 3 hours laboratory