Introduction to Scientific Computing Languages --- 2010-11
[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, Python and C; no prior knowledge of
these languages is required. Depending on time, we will also cover
standard computational tools and Fortran-based libraries like
BLAS, LAPACK, MPI, ...
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: Intro; Matlab; Python; Mathematica; imperative
vs. functional programming; data visualization; C;
high-performance computations; numerical libraries; parallelism.
-
Winter semester 2010-11.
-
CAMPUS #: 10ws-14775
-
Lectures begin: Thursday, October 14 In the morning.
-
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)
-
Lectures:
-
Introduction to the Languages
History of Programming Languages
-
Matlab - part 1
-
Thursday 28: Matlab - part 2 (lecture 2 updated).
-
November 4:
Performance
Matlab - part 3: Visualization.
-
November 11 & 12: Python
-
November 18: Mathematica - part 1
Tutorial
-
November 25: Mathematica - part 2. See the updated Tutorial.
-
December 2: Mathematica - part 3: Visualization.
Programming. See the updated Tutorial.
-
December 9: Floating Point Arithmetic.
-
December 16: C - part 1.
-
January 13: C - part 2.
-
January 20: BLAS, LAPACK, FLAME notation, FLAME@lab.
-
January 27: C challenge. FLAME@Lab.