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.