This book presents a selection of subjects which the authors deem to be important for information systems engineers. The book is intended for introductory teaching. We have tried to write the book in such a way that students with only fragmented knowledge of computers are able to read the book without too many difficulties. Students who have had only an intro ductory course in computer programming should be able to read most of the book. We have tried to achieve simplicity without compromising on depth in our discussions of the various aspects of information systems engineering. So it is our hope that also those who have deeper knowledge in computing may find pleasure in reading parts of the book. The writing of a textbook is a major undertaking for its authors. One is quite often forced to reexamine truisms in the subject area, and must be prepared to reevaluate one's opinions and priorities as one learns more. In particular this is so in new fields, where formalisms have been scarcely used, and where consensus has not yet emerged either on what constitutes the subject area or on how practical problems within the field shall be approached. Contemporary practice in computer applications is confronted with an increasingly complex world, both in a technical sense and in the complexity of problems that are solved by computer.