OOP and Design
Good software is built around robust abstractions. This course therefore is mostly about Abstraction and using Object Oriented Design and Programming (OODP) to come up with the right set of abstractions. The goal is to get a good sense of what programming is mainly about as well as how OODP facilitate good programming. One of the primary goals of this class is to answer the question “how to design good reusable extensible software components that can be pieced together to build general applications?”
The course will teach OOD and will look into the Booch, OMT and Object Oriented Software Engineering methods. We will look into UML as a means to model software.