Computing in the 21st Century > Homepage > Speaker Introduction
Academic Symposium      Introduction
Meeting Agenda
Speaker Introduction
Notice
     History
     Media Coverage
Speaker Introduction

Niklaus WIRTH
Professor Emeritus, Computer Science
Swiss Federal Institute of Technology
1984 Turing Award recipient
http://www.cs.inf.ethz.ch/~wirth/



Bio
Niklaus Wirth was born in February 1934 in Winterthur, Switzerland. He studied electrical engineering at ETH (Federal Institute of Technology) in Zürich, graduated in 1959, received an MSc degree from Laval University in Quebec, and a PhD from the University of California at Berkeley in 1963.

Wirth has been an Assistant Professor of Computer Science at Stanford University (1963-67) and, after his return to Switzerland, a Professor of Informatics at ETH from 1968 through 1999. His principal areas of contribution were programming languages and methodology, software engineering, and the design of personal workstations. He designed the programming languages Algol W (1965), Pascal (1970), Modula-2 (1979), and Oberon (1988), was involved in the methodologies of Structured Programming and Stepwise Refinement, and designed and built the workstations Lilith, with high-resolution display, mouse, and high-level language compiler in 1980, and Ceres in 1986.

He has published several text books for courses on programming, algorithms and data structures, and logical design of digital circuits. He has received many prizes and honorary doctorates, including the Turing Award (1984), the IEEE Computer Pioneer (1988), the Award for outstanding contributions to Computer Science Education (ACM 1987), and the IBM Europe Science and Technology Award in 1989.

Presentation title
A Brief History of Software Engineering

Abstract
We present a personal perspective of the Art of Programming. We start with its state around 1960 and follow its development to the present day. The term Software Engineering became known after a conference in 1968, when the difficulties and pitfalls of designing complex systems were frankly discussed. A search for solutions began. It concentrated on better methodologies and tools. The most prominent were programming languages reflecting the procedural, modular, and finally object-oriented styles. Software engineering is intimately tied to their emergence and improvement. Also of significance were efforts of systematizing, even automating, program documentation and testing. Ultimately, analytic verification and correctness proofs were to replace testing.

More recently, the rapid growth of computing power made it possible to apply computing to ever more complicated tasks. This trend dramatically increased the demands on software engineers. Programs and systems became complex and almost impossible to fully understand. However, the sinking cost and the abundance of computing resources inevitably reduced the care for good design. Quality seemed too extravagant, a loser in the race for profit. We should be concerned about the resulting deterioration in quality. Our limitations are no longer given by slow hardware, but by our own intellectual capability. Programming, after all, is NOT easy. From experience we know that most programs could be significantly improved, made more reliable, economical, comfortable to use. What can we do?

 

© 2006 Microsoft Research Asia All rights reserved.