| Information Science and Digital Technology form an immensely complex and wide subject that extends from social implications of technological development to deep mathematical foundations of the techniques that make this development possible. This puts very high demands on the education of computer science and engineering. To be an efficient engineer working either on basic research problems or immediate applications, one needs to have, in addition to social skills, a solid understanding of the foundations of information and computer technology. A difficult dilemma in designing courses or in education in general is to balance the level of abstraction with concrete case studies and practical examples.
In the education of mathematical methods, it is possible to start with abstract concepts and often quite quickly develop the general theory to such a level that a large number of techniques that are needed in practical applications emerge as ”simple” special cases. However, in practice, this is seldom a good way to train an engineer or researcher because often the knowledge obtained in this way is fairly useless when one tries to solve concrete problems. The reason, in our understanding, is that without the drill of working with concrete examples, the human mind does not develop the ”feeling” or intuitive understanding of the theory that is necessary for solving deeper problems where no recipe type solutions are available.
In this book, we have aimed at finding a good balance between the economy of top-down approach and the benefits of bottom-up approach. From our teaching experience, we know that the best balance varies from student to student and the construction of the book should allow a selection of ways to balance between abstraction and concrete examples. |