General learning outcomes for computing competence

Learning outcomes for numerical algorithms:

Learning outcomes for symbolic computing: Learning outcomes for programming: Learning outcomes for verification: Learning outcomes for mathematical modeling: Learning outcomes for presentation of results:
What is deep knowledge?

By deep knowledge we here mean the understanding of the underlying fundamental ideas and concepts from which a plethora of seemingly different methods and technologies can be derived. In other words, the deep knowledge brings structure to all the technical details.

Obtaining this type knowledge requires time in class and a lot of exercises. In addition, the students need to reflect about theory and practice. The reflection process is often difficult to implement. Below are some suggestions.

A useful concept is simplify, understand, and then generalize. Giving a superficial overview of a bunch of unrelated methods and their applications to unrelated scientific problems equips the students with a wide toolbox, but fails to enhance a fundamental understanding of how multidisciplinary topics play together. Instead, we believe in the following list.

  1. Pick a few selected classes of problems,
  2. start out with simplified models,
  3. apply general, fundamental ideas to construct algorithms,
  4. understand all details to correctly implement the algorithms,
  5. understand how to judge the numerical quality of the algorithms,
  6. understand how to verify that the computations are mathematically correct.
The verification process forces the student to reflect on all the points: What type of problem is actually solved? How can I test that the solution is right?

After obtaining an understanding of the simplified problem, one can generalize the models to real applications, but illustrate how the insight from the simplified models and methods gives very valuable knowledge when attacking the generalizations. The focus on simplified models help to detach the mathematics from a lot of discipline-dependent application details and cultivate the common mathematical and implementational ideas.

This philosophy is closely related to the Key principle stated earlier:

  1. solving a complicated problem first starts with the purpose of breaking up the problem into subtasks that belong to general classes of well-studied problems in mathematics,
  2. each subproblem is understood with great help simplified models in that class,
  3. and finally a synthesis of the subproblems can solve the original problem.

(hpl 1: Need to highlight educational methods: instruction based teaching, project work, ...)