Introduction to Languages for Scientific Computing

When: Summer semester 2017

CAMPUS #: 17ws-57513

Contact: Prof. Paolo Bientinesi


Basic knowledge of numerical linear algebra, programming languages, algorithms.


The goal of the course is to provide the students with tools to achieve effective prototyping through high-level languages, and write high-performance programs in C and/or Fortran. Programs will be evaluated with respect to metrics such as performance, readability, elegance.

We will discuss programming languages and tools especially suitable for numerical & symbolic computations, data visualization, and high-performance computations. The focus is on Matlab, Mathematica and C; no prior knowledge of these languages is required. We also cover standard computational tools and Fortran-based libraries such as BLAS and LAPACK.

The course is hands on. The students are expected to solve (and compete on) simple programming assignments and to present approach & results in front of the class.

Tentative syllabus

  • Introduction
  • Floating point arithmetic
  • History of languages
  • Matlab
  • Data visualization
  • Mathematica
  • Maps, functions
  • Fixed & high-precision numbers; symbols
  • Imperative vs. functional programming
  • C
  • Performance
  • Numerical libraries

Lectures & Exercises

Room: 2181|P11 (MeT P 11), Kopernikusstra├če 14
  • Tuesdays, 4.15pm-5.45pm (lecture)
  • Thursdays, 2.15pm-3.45pm (lecture + exercise)
First lecture: Thursday, April 27, 2.15pm-3.45pm + 3.45pm-5.15pm

Office hours

  • Tuesdays, 11am-1pm, by appointment.
    AICES R432 (Rogowski Building - Schinkelstrasse 2)



  • 01.08.2017, 13:00-16:00, 1132|303 (HKW 2)
  • 01.08.2017, 13:00-16:00, 2181|P11 (MeT P 11)
  • 01.08.2017, 13:30-16:00, 1090|334 (klPhys)
  • 20.09.2017, 16:00-18:30, 1090|334 (klPhys)