Introduction to Languages for Scientific Computing
When: Summer semester 2017
CAMPUS #: 17ss-57513
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 achieve effective prototyping through high-level languages, and write high-performance programs in C and/or Fortran. Programs will be evaluated with respect to metrics such as performance, readability, elegance.
We will discuss programming languages and tools especially suitable for numerical & symbolic computations, data visualization, and high-performance computations. The focus is on Matlab, Mathematica and C; no prior knowledge of these languages is required. We also cover standard computational tools and Fortran-based libraries such as 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
- History of languages
- Matlab
- Data visualization
- Mathematica
- Maps, functions
- Fixed & high-precision numbers; symbols
- Imperative vs. functional programming
- C
- Performance
- Numerical libraries
Lectures & Exercises
Room: 2181|P11 (MeT P 11), KopernikusstraĆe 14
- Tuesdays, 4.15pm-5.45pm (lecture)
- Thursdays, 2.15pm-3.45pm (lecture + exercise)
Office hours
-
Tuesdays, 11am-1pm, by appointment.
AICES R432 (Rogowski Building - Schinkelstrasse 2)
Schedule
-
Tuesday, 18.04 NO CLASS - Vorstellung der Wahlpflicht-Veranstaltungen [PDF] -
Thursday, 27.04 Intro, programming languages [PDF] EXTRA lecture Floating point arithmetic, part 1/3 [PDF] -
Tuesday, 02.05 Floating point arithmetic, part 2/3 [PDF] [Examples] -
Thursday, 04.05 Floating point arithmetic, part 3/3 [PDF] [Examples][PI up][PI down] [Misc exercises] -
Tuesday, 09.05 Matlab, part 1/5 [Diary] [Challenge 1][Solution] Winners: Stephan Christian and Dmitry Manuilov -
Thursday, 11.05 Exercises: FPA [PDF] -
Tuesday, 16.05 Matlab, part 2/5 [Diary][scripts] -
Thursday, 18.05 Matlab, part 3/5 [Diary][scripts] -
Tuesday, 23.05 Matlab, part 4/5 [Diary][scripts2] -
Tuesday, 30.05 Mathematica, part 1/8 [Notebook] [Challenge 2][Solution] Winner: Annika Savelsberg -
Thursday, 01.06 Mathematica, part 2/8 [Notebook] -
Tuesday, 13.06 Matlab, part 5/5, exercises -
Tuesday, 20.06 Conflict [Challenge 3] Honorable mentions: Dmitry Manuilov and Patrick Ziegler -
Thursday, 29.06 Mathematica, part 3/8 [Notebook] -
Tuesday, 04.07 Mathematica, part 4/8 [Notebook] -
Thursday, 06.07 Mathematica, part 5/8 [Notebook] EXTRA lecture 2.15pm-3.45pm + 3.45pm-5.15pm -
Tuesday, 11.07 Mathematica, part 6/8 [Notebook] -
Thursday, 13.07 Mathematica, part 7/8 [Notebook] EXTRA lecture 2.15pm-3.45pm + 3.45pm-5.15pm [Mathematica exercises] [Challenge 4] Winner: Tobias Vogel -
Tuesday, 18.07 C, part 1/4 [Files] [Challenge 5] Winner: Hubert Grawender -
Thursday, 20.07 Mathematica, part 8/8 [Notebook] EXTRA lecture C, part 2/4 [Files] 2.15pm-3.45pm + 3.45pm-5.15pm [Matlab exercises] [Mathematica exercises] [Challenge 6] Winner: David Wlazlo. Honorable mention: Tobias Vogel -
Tuesday, 25.07 C, part 3/4 [Files] -
Thursday, 27.07 C, part 4/4 [Files]
Exam
- 01.08.2017, 13:00-16:00, 1132|303 (HKW 2)
- 01.08.2017, 13:00-16:00, 2181|P11 (MeT P 11)
- 01.08.2017, 13:30-16:00, 1090|334 (klPhys)
- 20.09.2017, 16:00-18:30, 1090|334 (klPhys)