Introduction to Languages for Scientific Computing
When: Winter semester 2015
CAMPUS #: 15ws-14775
Contact: Prof. Paolo Bientinesi
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
- Floating point arithmetic
- Conditioning
- History of languages
- Matlab
- C
- Performance
- Numerical libraries
- Mathematica
- Maps, functions
- Fixed & high-precision numbers; symbols
- Imperative vs. functional programming
- Data visualization
Lectures & Exercises
IMPORTANT: Due to the high attendance, for the first few weeks the class will take place in
2181|P11 (MeT P 11), KopernikusstraĆe 14,
with schedule
- Tuesdays, 6.15-7.45pm (lecture)
- Thursdays, 5.15-6.45pm (lecture + exercise)
Office hours
-
Tuesdays, 11am-1pm, by appointment.
AICES R432 (Rogowski Building - Schinkelstrasse 2)
Schedule
-
Tuesday, 20.10 Intro; live demo -
Thursday, 22.10 Floating point arithmetic (pt1/2) [slides] -
Tuesday, 27.10 Floating point arithmetic, (pt2/2) [slides], [examples], [notebook], [pi_up] [pi_down] -
Thursday, 29.10 Languages [slides] [HW#1] Deadline: Wednesday, Nov.4, 23.59pm -
Tuesday, 03.11 Matlab (pt1/4) [Diary] -
Thursday, 07.11 Review of HW1 [solutions] [Challenge #1] Solved! Winner: Fabian Orland -
Tuesday, 10.11 Matlab (pt2/4) [Diary] [m-files] -
Thursday, 12.11 Matlab (pt3/4) [Diary] [fft] [HW#2] Deadline: Wednesday, Nov.18, 23.59pm -
Tuesday, 17.11 Matlab (pt4/4) [Diary] [m-files] -
Thursday, 19.11 Review of HW2 [solutions] [Challenge #2] Deadline: Thursday, Nov.23, noon. Winner: Erik Koene; honorable mention: Robert Lau -
Tuesday, 24.11 Mathematica (pt1/9) [Notebook 1] -
Thursday, 26.11 Mathematica (pt2/9) [Notebook 2] [Notes on FFT] [Challenge #3] Deadline: Sunday, Dec.6, midnight. Winner: SunUng Mun; honorable mention: Erik Koene -
Tuesday, 01.12 Mathematica (pt3/9) [Notebook 3] -
Thursday, 03.12 Mathematica (pt4/9) [Notebook 4] -
Tuesday, 08.12 Mathematica (pt5/9) [Notebook 5] -
Thursday, 10.12 Mathematica (pt6/9) [Notebook 6] [HW#3 / Challenge #4] Deadline: Wednesday, Dec.16, midnight. Winner: William Heymann -
Tuesday, 15.12 Mathematica (pt7/9) [Notebook 7] -
Thursday, 17.12 Mathematica (pt8/9) [Solutions] [Fibonacci] -
Tuesday, 22.12 [Challenge #5] Deadline: Wednesday, Jan.13, 1pm. Winner: Sebastian Achilles -
Tuesday, 12.01 Mathematica (pt9/9) [Sound] [Sequence] [Precision] -
Thursday, 14.01 Mathematica exercises [Notebook] -
Tuesday, 19.01 C (pt1/5) [Archive] -
Thursday, 21.01 C (pt2/5) [Archive] -
Tuesday, 26.01 C (pt3/5) [Archive] -
Thursday, 28.01 C (pt4/5) [Archive] -
Tuesday, 02.02 C (pt5/5) [Archive] -
Thursday, 04.02 Makefile, compilation, linking [Archive] -
Tuesday, 09.02 Exercises and practice questions (Floating point arithmetic, Matlab) FPA lecture updated [slides], [exercises] -
Thursday, 11.02 Exercises and practice questions (Mathematica, C) [exercises]
Exam
- February 16, 5pm, room 1132|101 (HKW 1, HKW 2). [Room assignment]
- March 1, 5pm, room 1090|334 (klPhys, Rog.115).