Description
This course is an introduction to object-oriented design and data structures using the popular Python programming language. The course covers four major aspects of computing: programming basics, object oriented programming, data structures, and software development life cycle. The level of instruction assumes at least one semester of programming in an object-oriented language C++. Topics include the design of collection classes with polymorphism and inheritance, multiple implementations of collection interfaces, and the analysis of the space/time tradeoffs of different collection implementations (specifically array-based implementations and link-based implementations). Collections covered include sets, lists, stacks, queues, trees, dictionaries, and graphs.