Knowledge Goals
- To understand the basic principles of object-oriented design
- To know what distinguishes a class member from an instance member
- To understand what a responsibility is
- To understand how objects collaborate
- To understand the concept of inheritance
- To understand the concept of a compilation unit
- To understand how using a package facilitates information hiding
- To know some aspects of ethics as related to computing
- To appreciate the differences between programming projects at different scales
Skill Goals
To be able to:
- Develop an initial set of objects for solving a problem, using brainstorming
- Filter an initial set of objects
- Write a CRC card for an object
- Conduct scenarios using CRC cards
- Identify collaborations between objects
- Identify responsibilities for classes and objects
- Convert a CRC card into a Java class
- Convert responsibilities into methods
- Distinguish between superclass and subclass relationships in a design
- Write a compilation unit
- Create and use a package
Object-Oriented
Software Design and
Implementation
1958
Kenneth Olsen, Stan
Olsen, and Harlan
Anderson form the
Digital Equipment
Corp.
1958
Jack Kilby at Texas
Instruments invents
the integrated
circuit
1958
Bell Labs’ modem
data phone makes
possible the
transmission of
binary data through
phone lines
1959
The language Cobol,
Common Business
Oriented Language,
is developed
1959
John McCarthy at
M.I.T. develops the
language Lisp on
the IBM 704 for
artificial intelligence
applications
1959
Japan introduces its
first commercial
transistor computer