Course Unit


Computer programming and parallel computing

Code: DT0641
Unit Coordinator: Dirk Praetorius, Rudolf Frühwirth, Sascha Hunold, Jesper Larsson Träff
Programme: Erasmus Mundus
ECTS Credits: 8
Semester: 2
Year: 1
Campus: Vienna University of Technology
Language: English
  • Scientific programming in mathematics:

    formulate (certain) mathematical problems in algorithmic form,

    implement these elementary algorithms in C and C++,

    explain the difference between imperative and object-oriented programming,

    present and explain own solutions, and

    constructively discuss and analyze own solutions as well as those of other students.


  • Programming with MATLAB:

    design, debug and test programs in the MATLAB language

    solve easy to moderately difficult problems in statistics and applied mathematics using MATLAB


  •  Basics of Parallel Computing:

    Understand and express asymptotic running time and work of parallel algorithms

    Understand parallel algorithm using the PRAM model with respect to running time and work

    Understand and appreciate characteristics of thread models for parallel computing

    Read and write programs in OpenMP

    Read and write programs in MPI

    Understand and appreciate task parallel models for parallel computing

  • Scientific programming in mathematics:

Object oriented design and programming in C++: Representation of integer and floating point numbers. Conditioning of given problems. Computational cost of algorithms. Variables and standard data types. Pointers. Functions and recursion. Call by value vs. call by reference. Loops, Objects and classes (resp. structures), Operator overloading, Inheritance and virtual. 

  • Programming with MATLAB:

MATLAB syntax (command- and object-oriented), graphical representations, problems in linear algebra, optimization and statistics, solution of ordinary differential equations by functions in the various toolboxes.

  • Basics of Parallel Computing:

Motivation and goals of parallel computing, parallel computer architectures, programming models, performance measurement and analysis, introduction to programming paradigms such as MPI (Message Passing Interface), Pthreads, and OpenMP. Other aspects and languages for programming multi-core processors.

  • Programming with MATLAB:

Basic knowledge of higher mathematics (functions, linear algebra, ordinary differential equations)

  • Basics of Parallel Computing:

Knowledge of programming languages, computer architectures, operating systems. Basic Algorithms and Datastructures (asymptotic worst-case analysis). Programming skills in C, C++, Fortran or Java.

Reading list:
  • Scientific programming in mathematics:

lecture notes

  • Programming with MATLAB:

Otto and Denier, An Introduction to Programming and Numerical Methods in MATLAB

Brian Hahn, Essential MATLAB for Engineers and Scientists

Stormy Attaway, Matlab: A Practical Introduction to Programming and Problem Solving

  •  Basics of Parallel Computing:

    Rauber, Rünger: Parallel programming. Second Edition, Springer 2013.

    Schmidt, Gonzalez-Dominguez, Hundt, Schlarb: Parallel Programming. Concepts and Practice. Morgan Kaufmann 2018.


Related Articles

InterMaths Network
A network of 12 European Universities, coordinated by Department of Information Engineering, Computer Science and Mathematics (DISIM) at University of L'Aquila in Italy (UAQ)