Introduction to Scientific Computing Languages --- 2011-12
Basic knowledge of numerical linear algebra, programming languages, algorithms.
The goal of the course is to provide the students with tools to 1)
achieve effective prototyping through high-level languages, and 2)
write high-performance 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 high-performance 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 Fortran-based 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.
History of languages
Floating point arithmetic
Fixed & high-precision numbers; symbols
Imperative vs. functional programming
Winter semester 2011-12.
CAMPUS #: 11ws-14775
Lectures begin: Tuesday, October 11, 5pm.
Lectures & Exercises:
Tuesdays, 17.00-18.30 (lecture)
Thursdays, 17.00-18.30 (lecture + exercise)
Rogowski 115 - AICES seminar room (Schinkelstrasse 2)
Office hours: Tuesdays, 11am-1pm
AICES R432 (Rogowski Building - Schinkelstrasse 2)
Note: All the lectures are recorded and made available at
Programs & Programming Languages
History of Programming Languages
Floating Point Arithmetic
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.
Guest lecture: CUDA, by Enrique Quintana-Orti.
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