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, 16.15-17.45pm (lecture)
  • Thursdays, 14.15-15.45pm (lecture + exercise)
First lecture: Tuesday, April 18, 16.15

Office hours

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


  • Tuesday, 18.04 Intro; live demo
  • Thursday, 20.04


  • ???
  • ???