CS 3340 Introduction to Object Oriented Programming and Design (4) 2005 Catalog Description Programming in an object-oriented language, using object-oriented techniques and concepts. Classes, information hiding, inheritance, and polymorphism. Memory management. Parameterized classes. Exception handling. Object-oriented design of programs. Prerequisites: CS 3240, and knowledge of C or C++. Topics include: 0. Overview of object-oriented software development, including history and goals, phases of development, principles (abstraction, modularity, hierarchy, etc.) 1. Structure and Organization of an Object-Oriented Program. Classes and Objects. 2. Organization of data in Objects, classes and methods. Instance variables, class variables, local variables and constants. 3. Organization of the name space. Packages. 4. Access controls and encapsulation. 5. Methods in classes: class methods and instance methods, method overloading. 6. Initialization, static initializers, constructors, constructor chaining. 7. Memory management, allocation and deallocation of objects. Deallocation alternatives, garbage collection versus explicit deallocation. 8. Error handling and exceptions. 9. Relationships among objects and classes, "is-a" "has-a" and "uses" relationships. Inheritance, method overriding, and polymorphism. Multiple inheritance versus interfaces. Aggregation. 10. Introduction to Object Oriented Design, decomposition of applications into classes and objects. 11. Event-driven applications. Programming with GUI Objects. Texts Lyon, Java for Programmers, Pearson Horstman & Cornell, Core Java 2, Vol 1, Prentice Hall Wang, Java and Object Oriented Progamming, Thompson Learning Pender, UML Weekend Crash Course, Wiley