Introduction to Languages for Scientific Computing


When: Summer semester 2017

CAMPUS #: 17ws-57513

Contact: Prof. Paolo Bientinesi



Prerequisites

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


Overview

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)

Schedule

  • Tuesday, 18.04 NO CLASS - Vorstellung der Wahlpflicht-Veranstaltungen
    [PDF]
  • Thursday, 27.04 First lecture: 2.15pm-3.45pm
    EXTRA lecture: 3.45pm-5.15pm
    Intro; live demo
  • Tuesday, 02.05
  • Thursday, 04.05
  • Tuesday, 09.05
  • Thursday, 11.05
  • Tuesday, 16.05
  • Thursday, 18.05
  • Tuesday, 23.05
  • Tuesday, 30.05
  • Thursday, 01.06
  • Tuesday, 13.06
  • Tuesday, 20.06 Conflict
  • Thursday, 22.06 Conflict
  • Tuesday, 27.06 Conflict
  • Thursday, 29.06
  • Tuesday, 04.07
  • Thursday, 06.07 EXTRA lecture: 2.15pm-3.45pm + 3.45pm-5.15pm
  • Tuesday, 11.07
  • Thursday, 13.07 EXTRA lecture: 2.15pm-3.45pm + 3.45pm-5.15pm
  • Tuesday, 18.07
  • Thursday, 20.07 EXTRA lecture: 2.15pm-3.45pm + 3.45pm-5.15pm
  • Tuesday, 25.07
  • Thursday, 27.07

Exam

  • ???
  • ???