Introduction to Scientific Computing Languages --- 2011-12
[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 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.
Tentative syllabus
Introduction
History of languages
Matlab
Floating point arithmetic
Conditioning
Mathematica
Maps, functions
Fixed & high-precision numbers; symbols
Imperative vs. functional programming
Data visualization
C
Performance
Numerical libraries
-
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)
-
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 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