First of all, we need to define the term *computing* and what
it contains.

Computing competence has always been a central part of the science and
engineering education. Traditionally, such competence meant mastering
mathematical methods to solve science problems - by pen and paper. In
2015, our candidates are expected to use all available tools to solve
scientific problems; computers primarily, but also pen and
paper. Below, we use the term *algorithms* in the broad meaning:
mathematical methods to solve science problems, with and without
computers.

Computing competence is about

- derivation, verification, and implementation of algorithms
- understanding what can go wrong with algorithms
- overview of important, known algorithms
- understanding how algorithms are used to solve mathematical problems
- reproducible science and ethics
- algorithmic thinking for gaining deeper insights about scientific problems

So, why should basic university education undergo a shift from classical mathematics to modern computing?

- The impact of the computer on mathematics is tremendous: science and industry now rely on solving mathematical problems through computing.
- Computing increases the relevance in education by solving more realistic problems earlier.
- Computing through programming is excellent training of creativity.
- Computing enhances the understanding of abstractions and generalization.
- Computing decreases the need for special tricks and tedious algebra, and shifts the focus to problem definition, visualization, and "what if" discussions.

For the mathematical training, there is one major new component among
the arguments above: *understanding abstractions and
generalization*. While many of the classical methods developed for
continuous models are specialized for a particular problem or a narrow
class of problems, computing-based algorithms are often developed for
problems in a generic form and hence applicable to a large problem
class.

The power of the scientific method lies in identifying a given problem as a special case of an abstract class of problems, identifying general solution methods for this class of problems, and applying a general method to the specific problem (applying means, in the case of computing, calculations by pen and paper, symbolic computing, or numerical computing by ready-made and/or self-written software). This generic view on problems and methods is particularly important for understanding how to apply available, generic software to solve a particular problem.

Computing competence represents a central element in scientific problem solving, from basic education and research to essentially almost all advanced problems in modern societies. Computing competence is simply central to further progress. It enlarges the body of tools available to students and scientists beyond classical tools and allows for a more generic handling of problems. Focusing on algorithmic aspects results in deeper insights about scientific problems.

Today's project in science and industry tend to involve larger teams. Tools for reliable collaboration must therefore be mastered (e.g., version control systems, automated computer experiments for reproducibility, software and method documentation).