Andrew Olson's research concerns the development of computer systems that provide versatile environments to augment a person's capability to solve complex problems. Society is now on the threshold of creating a very powerful tool for solving problems that engages the user and the machine on a level of communication that approaches a human's. The achievement of this capability will mark a genuine paradigm shift in human/machine interaction. Computers will become generalized, not just application specific, extensions of humans.
The history of communication between the human and the computer exhibits a long term trend, which progresses from a user's weak control over a passive machine towards coperative interaction among humans and computers via a broad, bi-directional band of information exchange. Punched cards and computer printouts typified the interactions in the earlier case. At that time, Dr. Olson's research focused on developing tools for numerical and symbolic simulation and decision making. The arrival of effective symbol manipulation languages stimulated the extension of this work into providing computer support for performing symbolic mathematics. In particular, he lay foundations for combining symbolic and numeric algorithms so that a computer could automatically generate efficient numerical programs from symbolic mathematical expressions. The scientist or engineer would then use these in numerical simulations. As the microcomputer replaced the central computer, the capability for interaction between the person and th
e machine increased significantly. A result of this was his design for software to enable the user to produce such symbolic-numeric procedures more easily via interaction.
The creation of icon-based user interfaces extended the trend of elevating the computer's support of the user. The design and implementation of a visual programming language for performing symbolic mathematical computation was one of his contributions. This particular language reflected the newly spreading Internet by permitting the user to work within a desktop machine's iconic environment but access the power of a large mainframe in response to the great resource demands of computer algebra algorithms. It was one of the first visual programming languages for computation on distributed systems. This genre represents a significant broadening of the bandwidth and distribution of information passing between the computer system and the user.
His work on the object-oriented structure underlying iconic systems has shown how the object-oriented philosophy used in software engineering can be employed in the modeling and analysis of the mental perception the human has while interacting with the machine. Employed thusly, it provides a backbone that supports a smooth transition from the human perceptual model of the machine's interface through analysis and design to the implementation of the computer system. This is helping to break down the traditional barrier that has existed between the human-oriented user interface analyst and the machine-oriented system developer by providing them with a common methodology for creating satisfying, effective user/machine interfaces. His results also lay a mathematical foundation from which to understand one of the many intangible concepts, consistency, with which they must grapple.
Virtual Reality and Augmented Reality represent the current breadth of the human/machine communication spectrum. VR presents to the human a natural-like perception of a computer-generated world. AR merges this with real world images to project a richer environment to the human. This is the visual and system aspect of the communication. A challenging question arising on the human side is how these systems can be directed to augment the human's natural faculties in solving problems. Dr. Olson and Dr. Eng-Hock Chia are collaborating in an investigation of how computer systems can cooperate with the human so as to increase the human's creativity. Their work includes a study of combining computers with the creative process of university students in solving problems. The results of this will shed light on this question. The ultimate goal is to understand better how to design the interaction process so that the human and computer conduct synergistically the search for a problem's solution.
Component-based architectural engineering methods for software systems
Object-oriented engineering methodologies
Human/machine interface analysis and design
Visual programming languages
Numerical and non-numerical computational algorithms
Analysis & Functional Analysis, Artificial Intelligence/Cybernetics, Calculus, Component-based Development, Computer Applications, Computer Interface, Computer Programming Languages, Computer Software, Holography, Human Factors in Engineering, Integer Programming, Software Architecture
Training or mentoring of industrial teams in modern software systems development processes.
Evaluation of ongoing processes to achieve improvement.