Introduction to Languages for Scientific Computing  201314
 Winter semester 201314.
 CAMPUS #: 13ws14775
 Lectures begin: Thursday, October 17, 2.15pm.

Lectures & Exercises:
Mondays, 2.153.45pm (lecture)
Thursdays, 2.153.45pm (lecture + exercise)
Rogowski 115  AICES seminar room (Schinkelstrasse 2) 
Office hours: Tuesdays, 11am1pm
AICES R432 (Rogowski Building  Schinkelstrasse 2)  17.10.2013  Thursday > Introduction
 21.10.2013  Monday > Programs & Programming Languages [Lecture 1]
 24.10.2013  Thursday > Floating Point Arithmetic [Lecture 2]
 28.10.2013  Monday > Charlemagne Lecture, 2pm, Generali room, Super C
 31.10.2013  Thursday > Matlab, part 1 [Lecture 3] [Diary]
 04.11.2013  Monday > Matlab, part 2 [Diary]
 07.11.2013  Thursday > Matlab, part 3; more FPA [Diary] [Files] [FPA]
 11.11.2013  Monday > Matlab, part 4; FFT; Cholesky. [Diary] [Files]
 12.11.2013  Tuesday, 1pm > deadline HW1
 14.11.2013  Thursday > HW1 review. Winner: Henrik Barthels; Mathematica, part 1 [Notebook];
 18.11.2013  Monday > Mathematica, part 2 [Notebook];
 19.11.2013  Tuesday, 1pm > deadline HW2
 21.11.2013  Thursday > HW2 review. Winner: Jan Winkelmann
 25.11.2013  Monday > Mathematica, part 3 [Notebook];
 28.11.2013  Thursday > Mathematica, part 4 [Notebook];
 02.12.2013  Monday > Mathematica, part 5 [Notebook];

05.12.2013  Thursday Double lecture: 2.15pm & 5pm
Mathematica, part 6 [Notebook]; 
09.12.2013 > shifted to Thursday 05.12, 4pm.
Practice questions: Floating point arithmetic  [EX1]
Practice questions: Mathematica  [EX2]  12.12.2013 > shifted to January.
 14.11.2013  Saturday, 1pm > deadline HW3

16.12.2013  Monday > HW3 review.
Winners: Henrik Barthels and Yannick Deuster;
Mathematica, part 7 [Notebook];  19.12.2013  Thursday > Mathematica examples [Notebook];
 09.01.2014  Thursday > review of exercises. [Solutions]
 13.01.2014  Monday > C, introduction [files]
 16.01.2014  Thursday > C [files]
 20.01.2014  Monday > C [files]
 21.01.2014  Tuesday, 1pm > deadline HW4
 23.01.2014  Thursday > HW4 review

27.01.2014  Monday > C
[files]
[BLAS cheat sheet]
[BLAS library]. This is the reference implementation; do not expect performance!
[OpenBLAS]. This is an optimized implementation; do expect speed!  30.01.2014  Thursday > Makefiles (not part of the exam) [files]
 01.02.2014  Saturday, 1pm > deadline HW5
 03.02.2014  Monday > final lecture, wrap up [Cholesky]
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 languagesMatlab
Floating point arithmetic
Conditioning
Mathematica
Maps, functions
Fixed & highprecision numbers; symbols
Imperative vs. functional programming
Data visualization
C
Performance
Numerical libraries
Schedule
Exam dates
February: 13,
March:
April: 3
Send me an email to schedule an appointment > First come, first served.