This course is an introduction to object-‐oriented programming and data structures. Students will learn abstract data types and their implementation as classes in an object-‐oriented programming language; static and dynamic construction and destruction of objects; data member and member functions; public interface and encapsulation. It will cover data structures such as stacks, queues, linked lists, and binary trees.