CSC245 Objects and Data Abstraction
[3–0, 3 cr.]
This course presents further techniques of object oriented programming and problem solving, with emphasis on abstraction and data structures. Topics include: object oriented concepts, such as, composition, inheritance, polymorphism, information hiding, and interfaces; basic program design and correctness, such as, abstract data types, preconditions and post conditions, assertions and loop invariants, testing, basic exception handling, and the application of algorithm design techniques. The course also covers: basic algorithmic analysis, time and space tradeoffs in algorithms, big-O notation; fundamental data structures and applications, such as, collections, single- and double-linked structures, stacks, queues, and trees; performance issues for data structures; recursion, more sorting algorithms.
Prerequisite: CSC243 Introduction to Object-Oriented Programming