Introduction to Scientific Computing Languages  201112
[Presentation]
Prerequisites
Basic knowledge of numerical linear algebra, programming languages, algorithms.
Overview
The goal of the course is to provide the students with tools to 1)
achieve effective prototyping through highlevel languages, and 2)
write highperformance programs in C and/or Fortran. In this
respect, programs will be evaluated with respect to metrics like
performance, readability, elegance.
We will discuss programming languages and tools especially
suitable for numerical & symbolic computations, data
visualization, and highperformance computations. The focus will
be on Matlab, Mathematica and C; no prior knowledge of
these languages is required. We will also cover
standard computational tools and Fortranbased libraries like
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
History of languages
Matlab
Floating point arithmetic
Conditioning
Mathematica
Maps, functions
Fixed & highprecision numbers; symbols
Imperative vs. functional programming
Data visualization
C
Performance
Numerical libraries

Winter semester 201112.

CAMPUS #: 11ws14775

Lectures begin: Tuesday, October 11, 5pm.

Lectures & Exercises:
Tuesdays, 17.0018.30 (lecture)
Thursdays, 17.0018.30 (lecture + exercise)
Rogowski 115  AICES seminar room (Schinkelstrasse 2)

Office hours: Tuesdays, 11am1pm
AICES R432 (Rogowski Building  Schinkelstrasse 2)

Videos:
Video AG
Lectures
Note: All the lectures are recorded and made available at
Video AG

Programs & Programming Languages
History of Programming Languages

Floating Point Arithmetic

Matlab

Matlab, part 2
Correction of Assignment #1.

"\" and "/". Fast Fourier Transform.

Visualization in Matlab.

Mathematica  Part 1.
Intro, lists, replacement rules.

Correction of Assignment #2.

Mathematica  Part 2 & 3.
Functions & patterns.

Mathematica  Part 4 & 5.
Maps, numbers.

Guest lecture: CUDA, by Enrique QuintanaOrti.

Mathematica exercises. Short intro to visualization.

Linear Algebra > Cholesky Factorization, FLAME notation.

C, part 1.

C, part 2.

Fortran libraries: BLAS, LAPACK.

make, Makefile, bash scripting