Herbert A. Simon,
"Whether Software Engineering Needs to be Artificially Intelligent",
IEEE Trans. on Software Engineering, vol. SE-12, no. 7 (July 1986),
pp. 726-732.
``... software engineering and artificial Intelligence are either going to
have to join hands or ... software engineering people are going to have to
reinvent artificial Intelligence.''
Basic questions:
- What part of the responsibility can we invest in the system itself?
- What part of the responsibility still has to be exercised by human
beings?
- How do we organize things so that the intelligent part of the
automatic system can communicate effectively with the human part of the
intelligence system?
``What compilers do not do is to solve the problem of converting
a situation that is presented in an unstructured form, as an informal
problem statement. ...
Human beings ... can take unstructured situations and turn them into
formalized situations to which algorithms ... can apply.''
Importance of knowledge:
- Organized so it is easy to retrieve
- Knowledge about data representations
- Knowledge about strategies or higher-order procedures
- Knowledge of task domain
Intermediate goals:
- Human-machine interactive systems
- Formal specification languages
- Natural language understanding
- Database of data representations
- Database of strategies, e.g. contents of Knuth