Languages for Scientific Computing 1 --- 2009-10
Basic knowledge of numerical methods, numerical linear algebra, programming languages, algorithms.
We will compare and contrast languages especially suitable for numerical
computations, symbolic computations, and high-performance computations:
Mathematica, Matlab, C, Fortran. We will also cover standard tools and
libraries for scientific and parallel computations: BLAS, LAPACK, MPI,
OpenMP... An introduction to Python should conclude the semester.
Different programming paradigms will be introduced: functional
vs. imperative, discrete vs. numerical vs. symbolic. Programs will be
evaluated with respect to metrics like performance, size, elegance.
This first module focuses on numerical computations, high-performance and
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.
Winter semester 2009-10.
CAMPUS #: 09ws-14775
Lectures begin: Thursday, October 15th. In the afternoon.
Lectures & Exercises:
Thursdays, 10.30-12.00, Rogowski 115 - AICES seminar room (Schinkelstrasse 2)
Thursdays, 17.00-18.30, Rogowski 115 - AICES seminar room (Schinkelstrasse 2)
Office hours: Tuesdays, 11am-1pm, AICES R432 (Rogowski Building - Schinkelstrasse 2)
Oct.22nd: Introduction to Programming
History of Programming Languages
Oct.29th: Mathematica. Replacements rules, assignments, functions.
Mathematica pt2: Lists, functional constructs, programming constructs.
Nov.5th: Classes moved to January 15th.
Nov.12th: Floating point arithmetic.
Nov.19th: Matlab demo. Fast Fourier Transform.
Nov.26th: Visualization in Matlab.
Dec.3rd: Intro to C (part 1).
Book: "The C Programming Language", by Brian Kernighan & Dennis Ritchie.
Visualization in Mathematica.
Dec.10rd: Intro to C (part 2).
Dec.17rd: Numerical Linear Algebra libraries. High-performance.
Jan.7th: FLAME, a language and a library for dense linear algebra.
Jan.14th & 15th: Python and extreme programming.
Jan.28th: Programming the Cell Broadband Engine.
Feb.2nd: How to give a presentation.
Afternoon: Eigensolvers for Multicore Processors and Massively Parallel Supercomputers.