This class introduces students to object-oriented programming concepts and common data structures. Data structures and object-oriented concepts are essential to the practice of programming. Furthermore, by combining their treatment into a single course, the essential data structures covered also serve to illustrate object-oriented design principles.
The data structures covered in the class include linked lists, trees, binary search trees, balanced trees, heaps, hash-tables, and graphs. Common operations on these data structures, like insertion, deletion, and traversals, will be covered. Also, for graphs, operations like topological sort, shortest path, and minimal-spanning trees will be discussed.
Object-oriented programming will also be covered, with an emphasis on its key concepts, like classes, inheritance, abstract classes, polymorphism, and generic types.