Introduction to Languages for Scientific Computing
Winter semester 2014-15
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
CAMPUS #
14ws-14775
Lectures & Exercises
- Tuesdays, 6.15-7.45pm (lecture)
- Thursdays, 12.15-1.45pm (lecture + exercise)
First lecture: Tuesday, October 21, 18.15
Rogowski 115 - AICES seminar room (Schinkelstrasse 2)
Office hours
-
Tuesdays, 11am-1pm, by appointment.
AICES R432 (Rogowski Building - Schinkelstrasse 2)
Schedule
- Tuesday, 21.10 - Intro; live demo
- Thursday, 23.10 - Floating point arithmetic (1/3) [slides] [notebook]
- Tuesday, 28.10 - Floating point arithmetic (2/3) [slides] [BX] [pi Up] [pi Down]
- Thursday, 30.10 - Floating point arithmetic (3/3) [LU] [LU2]
- Tuesday, 4.11 - Exercises on floating point arithmetic [Exercise sheet]
- Thursday, 6.11 - Languages [quick intro]. Matlab (1/5) [references] [diary].
- Tuesday, 11.11 -
HW1:
winner: Fabian Wendt
Matlab (2/5) [diary]. - Thursday, 13.11 - Matlab (3/5) [diary], [my_fft], [fun].
- Tuesday, 18.11 - Matlab (4/5), exercises [diary], [data.txt], [image], [compressor].
- Thursday, 20.11 - Matlab (5/5) [fft], [diary], [Euler], [feuler] [ode1] [ode2]
- Tuesday, 25.11 - Mathematica (1/9) [Notebook]
- Thursday, 27.11 - 1pm Q&A
- Tuesday, 2.12 - Mathematica (2/9) - functions [Notebook]
- Thursday, 4.12 - HW2a,
winner: Johannes Lange
Mathematica (3/9) - patterns [Notebook] - Tuesday, 9.12 - Mathematica (4/9) - pure functions [Notebook]
- Thursday, 11.12 - Mathematica (5/9) - maps [Notebook]
- Tuesday, 16.12 - HW2b, winner: Madita Nocon
HW2c, honorable mention: Berrendorf, Armborst, Willsch, Nocon
Mathematica (6/9) - programming [Notebook] - Thursday, 18.12 - Mathematica (7/9) - replacement rules
[Notebook]
[Exercises] - Tuesday, 6.01 - [Mathematica exercises] [Solutions]
- Thursday, 8.01 - Mathematica (8/9) - numerics [Notebook]
- Tuesday, 13.01 - C (1/5) [Archive]
- Thursday, 15.01 - Mathematica (9/9) [Notebook] [sqrts.m] [sqsqrt.m] [sqrtsq.m]
- Tuesday, 20.01 - C (2/5) [Archive]
- Thursday, 22.01 - Solutions to HW3
HW3a, winners: Lukas Armborst (x2), Jan-Lukas Wynen. Honorable mentions: Berrendorf, Kolyvanov.
HW3b, winner: Benjamin Joecker - Tuesday, 27.01 - C (3/5) [Archive]
- Thursday, 29.01 - C (4/5) [Archive]
- Tuesday, 03.02 - C (5/5) [Archive] + test exam
- Thursday, 05.02 - test exam
HW4, winner: David Laukamp
Exams
- February 10, 6pm, room 115. COME EARLY!
- March 17, 6pm, room 115.