Algorithms and Object-oriented Design


How do we model problems of increasing complexity and reason about the behavior of computer programs that solve these problems? In this course, we study fundamental data structures and algorithms for representing and working with complex data types. To help us manage the increasing size of our programs, we also study the object-oriented programming paradigm which provides unique hooks for managing this complexity.