People in the Baltimore/DC area might be interested in the following short course offered at UMBC during the first summer session. UMBC SUMMER SESSION COMPUTER SCIENCE COURSE CMSC 491 Special Topics in Computer Science: Object Oriented Programming Languages and Systems Instructor: Shon Vick Time: MW 6:00 to 8:20, May 26 to August 14 Registration Information: Office of Continuing Education 410-455-2336 This course will introduce the concepts of Object Oriented Programming (OOP) Languages and Systems. The course will start with an introduction of fundamental abstraction, modularity and encapsulation mechanisms in OOP from both a software engineering and representational perspective. Contrasts with imperative programming languages will be made. Next basic OOP concepts will be covered such as notions of polymorphism and operator overloading, message passing viz generic functions, late versus early binding times, as well as inheritance mechanisms and their relationship to programming language type systems. The course will also include a survey of OOP and systems with applications. Pure OOP environments such as SmallTalk will be contrasted with mixed paradigm languages such as C++, Objective C, and CLOS. There will be a small programming project. Additional topics as time permits. REQUIRED TEXT: The Tao of Objects: A Beginners Guide to Object Oriented Programming, Gary Entsmingen, M&T Books, 1991 COURSE OUTLINE: Motivation and Introduction: Overview of course. Why study Object Oriented programming languages? The Inherent Complexity of Software development. Elements of the Object Model Review of Programming Language Paradigms Whats an Object? Notions of State , Behavior and Identity Is Ada Object Oriented or what? The Elements of Object Oriented Programming Languages: Overview of Basic OOP Constructs Notions and terminology Introduction to several OOP: C++ and Objective C Rudiments of SmallTalk Polymorphism and operator overloading Notions of message passing and methods as contrasted to procedures. Late versus early binding times A survey of inheritance mechanisms their powers and their problems as well as their relationship to programming language type systems. Architecture and implementation issues Mixed Paradigm Programming and Pure OOP Languages: Further Presentation of SmallTalk The Common Lisp Object System (CLOS) : AN Example of Integrating Programming Paradigms Message passing viz generic functions The Darker Side of C++ Applications: OOP in the construction User Interfaces, AI , and other applications REFERENCES AND SOURCES Supplementary readings from various serials, articles, texts and other sources to be provided by the instructor as handouts or made available at the library: Object-Oriented Programming : An Evolutionary Approach, Brad Cox, Addison-Wesley, 1986, pp 1 - 63 Reusability: The Case for Object-Oriented Design, Bertrand Meyer, from Software Reusability: Vol II Applications and Experience, ACM Press, 1989 Object-Oriented Concepts, Databases and Applications and Experience, ACM Press, 1989, Chapters 1 and 4 Smalltalk80 The Language and Its Implementation, Adele Goldberg and David Robson, Addison-Wesley, 1983 The Common Lisp Object System An Example of Integrating Programming Paradigms, Danny G. Bobrow, excerpts of a talk given at AAAI 86 Object-Oriented Programming: Themes and Variations, Mark Stefik and Danny G. Bobrow, AI Magazine, 1986., pp 40 - 62 The Influence of an Object-oriented Language on the Programming Environment, Adele Goldberg, Proceedings of the 1983 ACM Computer Science Conference Orlando Florida pp 35-54 An Overview of C++, Bjarne Stroustrup, Object-Oriented Programming Workshop ACM SIGPLAN Notices Vol 21 No 10 (October 1986) On the Darker Side of C++, Markku Sakkinen, ECOOP88 - (European Conference on Object-Oriented Programming), pp 162 - 174 Programming Languages Concepts and Paradigms, David Watt, Prentice Hall, 1990 , pp 222-229 Programming Languages- Concepts and Constructs - Ravi Sethi , Addison Wesley, 1989, pp 186 - 251 Object-Oriented Design With Applications, Grady Booch, Benjamin/Cummings, 1990, pp 1 -130