Mathematical software programming
Overall Course Objectives
To enable the participants to write software that can solve numerical problems based on a mathematical model.
To give the participants an introduction to imperative and object-oriented programming as well as the ability to employ these paradigms using imperative and object-oriented programming languages. In this course we use C/C++ as C-based programming languages are widely used for programming mathematical software.
The participants are also given an introduction to basic algorithms and data structures that are often used in mathematical software.
To ensure that you, as a participant, develop practical skills, you will work with small mathematical projects in which programming is an indispensable tool. Moreover, you will train software documentation in reports.
See course description in Danish
Learning Objectives
- Evaluate discrete and continuous mathematical expressions.
- Describe and use data structures such as lists, arrays, and sparse matrices.
- Choose appropriate data types and data structures for a given problem.
- Compare iterative and recursive solutions for simple problems.
- Analyze the runtime behavior and the time and space complexity of simple programs.
- Call external (third party) programs and libraries.
- Design, implement, and document a program that solves a mathematical problem.
- Debug and test mathematical software.
- Describe and use basic object-oriented programming concepts such as classes and objects.
- Explain rounding errors and floating point number representation of real numbers.
Course Content
Programming paradigms: imperative programming, object-oriented programming.
Data structures: lists, arrays, sparse matrices.
Programming projects encompass:
– Loading data.
– Calling external programs and libraries (especially numerical).
– Optimization and parallelization.
Recommended prerequisites
02525/02002/02631/02633/02601, or similar courses that provide knowledge of numerical methods and basic concepts in computer science such as loops, variable types, and simple mathematical operations.
Teaching Method
Lectures, exercises, and small programming projects.