chucko@saturn.ucsc.edu (Chuck Stein) (06/11/88)
The University of California Eighteenth Annual INSTITUTE IN COMPUTER SCIENCE presents courses in: * Scientific Visualization * Fault Tolerant Computing * Parallel Computation * Image Engineering * Data Compression * Machine Learning at Techmart, Santa Clara and on campus in Santa Cruz Following is a course description for: ------------------------------------------------------------------------- Object Oriented Programming - Smalltalk August 1-5 Instructors: DAVID A. THOMAS & WILF R. LALONDE, Ph.D. X491 Computer & Information Sciences (3) This course is designed for the software professional who is concerned with the design and implementation of medium- to large-sized software systems. It is aimed at software engineers and system designers who have a working knowledge of at least one higher-level language such as C or Pascal. Participants will learn the principles of object oriented programming, gain hands-on experience in the seminar's laboratory sessions, and see how these techniques can be used to lower software development times on current and future projects. Overview Object oriented programming is the most important innovation since structured programming. It introduces the key notions of inheritance for co-chairing, polymorphism for extensibility, classification for program organization, and hierarchical libraries for reusability. This course will introduce the concepts of object oriented programming and object oriented design. Smalltalk is used as the vehicle for making the process concrete. The course includes topics on environments and tools, programming design, smalltalk, graphical user interfaces and software engineering. The current major object oriented languages, applications and systems are discussed. The co- instructors utilize a combination of lectures and hands-on exercises. Case studies illustrate design of object oriented programs. Monday Introduction to Object Oriented Programming Overview (9:00 -10:15) Definition of object oriented programming (OOP) Classes, methods, objects and inheritance How OOP differs from traditional methods Why OOP reduces life cycle costs Understanding smalltalk as the key to understanding OOP Object Oriented Design vs. OOP Living in a large class library--the need for a programming environment Applications of OOP Fundamental Smalltalk Concepts (10:30-12:00) Objects & message passing; what is an object; message types; control structures; advanced control forms Classes and instances; OOP in the Small; instance and class protocols; classes are objects too! Protocol and implementation descriptions Subclassing and the class hierarchy; inheritance of representation and methods Specialization, generalization and inheritance; differential programming; extending the class library Abstract classes; multiple inheritance The Smalltalk Programming System (1:30-3:00) Interacting with the Smalltalk programming environment Workspaces, editing, and browsing Interrogating instances with inspectors Testing and debugging with notifiers and debuggers Adding new methods and classes Hands-On Session Using Smalltalk (3:15-4:30) Tuesday Living In A Large Class Library Smalltalk Class Library I (9:00-10:15) Overview of the Smalltalk class library; numeric; collection and graphics classes The numeric classes; operator priority; type conversion; sequencing Magnitudes; characters, random, dates and times The collection hierarchy A logical view of the collection classes Smalltalk Class Library (10:30-12:00) Creating, converting and sequencing over collections Ordered collections Dictionaries Arrays and strings Streams; logical view; read and write streams Hands-On Sessions Using The Class Library (1:15-3:00) A Survey of Object Oriented Programming Systems (3:15-4:30) Features of an OOP and OOP environment Languages (Smalltalk, Lisp, Actor, Object Pascal, Objective-C, C++, Effiel, Oberon, Trellis/Owl) Compilation vs. interpretation Databases and hypertext User interfaces Intelligent assistants Visual programming Wednesday Design of Object Oriented Programs Object Oriented Program Design (9:00-10:15) Discovering the objects Using inheritance Parts vs. inheritance Inheritance of representation vs. operations Subtypes vs. subclasses Exemplars and delegation Abstract classes Reusability Object Oriented Design (10:30-12:00) Case Study I Design and Prototyping of a Business Application Object Oriented Design (1:30-3:00) Case Study II Design and Prototyping of an Engineering Application User Interface Classes I (3:15-4:30) Overview of the user interface classes Smalltalk raster graphics The smalltalk model view controller metaphor Event processing The organization of the Smalltalk window system Thursday User Interface Programming User Interface Classes II (9:00-10:15) The event handling protocols The window class hierarchy Anatomy of a window application Dependency management Hands-On Use of the Interface Classes (10:30-12:00) Designing Windows Applications (1:30-3:00) Text vs. graphics windows Parts vs subclasses Coordinating multiple views Organization of complex applications Case Study III (3:15-4:30) Design and Prototyping of a Graphical Interface Friday Object Oriented Software Engineering Case Study III continued (9:00-10:15) Design & Implementation of Embedded Systems (10:30-12:00) Active and passive objects] Multitasking/multiprocessing Applications: A VME bus radar ESM testbed A distributed simulator/trainer Managing Object Oriented Programming (1:30-3:00) Organizing the programming team Applications programmers vs. class programmers Tools for design, development and debugging Configuration management Common problems Guidelines for OOP Instructors: DAVID A. THOMAS, Director, Object-Oriented Research Group, Carleton University. WILF R. LALONDE, Ph.D., Professor of Computer Science, Carleton University. Fee: Credit, $975 (EDP J2479) Dates: Five Days, Mon.-Fri., Aug. l-5, 9:00 a.m.-5:00 p.m Place: Techmart, 5201 Great America Pkwy., Santa Clara ----------------------------------------------------------------------- RESERVATIONS: Enrollment in these courses is limited. If you wish to attend a course and have not pre-registered, please call (408) 429-4535 to insure that space is still available and to reserve a place. DISCOUNTS: Corporate, faculty, IEEE member, and graduate student discounts and fellowships are available. Please call Karin Poklen at (408) 429-4535 for more information. COORDINATOR: Ronald L. Smith, Institute in Computer Science, (408) 429-2386. FOR FURTHER INFORMATION: Please write Institute in Computer Science, University of California Extension, Santa Cruz, CA 95064, or phone Karin Poklen at (408) 429- 4535. You may also enroll by phone by calling (408) 429-4535. A packet of information on transportation and accommodations will be sent to you upon receipt of your enrollment.