Introduction to Languages for Scientific Computing --- 2012-13
- Winter semester 2012-13.
- CAMPUS #: 12ws-14775
-
Exam I: Thursday, February 14, 5-7.30pm.
Exam II: Thursday, March 14, 5-7.30pm. -
Lectures & Exercises:
Tuesdays, 17.00-18.30 (lecture)
Thursdays, 17.00-18.30 (lecture + exercise)
Rogowski 115 - AICES seminar room (Schinkelstrasse 2) -
Office hours: Tuesdays, 11am-1pm
AICES R432 (Rogowski Building - Schinkelstrasse 2) - October, Thursday 11; [Intro]
- October, Tuesday 16; Floating Point Arithmetic [Lecture 1]
-
October, Thursday 18; Programs & Programming Languages
[Lecture 2]
History of Programming Languages [Poster] -
October, Tuesday 23; Matlab, part 1
[Lecture]
The session [diary] -
October, Thursday 25; Floating points & Matlab, exercises.
The session [diary] -
October, Tuesday 30; Matlab, part 2 (functions).
The session [diary]
-
November, Tuesday 6; Matlab, examples.
The session [diary] [examples] -
November, Thursday 8; Matlab, visualization [archive]
copyright/licensing -
November, Tuesday 13; HW1
Mathematica; [Notebook], [diary] -
November, Thursday 15; Mathematica
[Notebook]
-
November, Tuesday 20; Mathematica, programming styles, patterns.
[Notebook] -
November, Thursday 22; HW2
Mathematica, how to use patterns.
[Notebook] -
November, Tuesday 27; Pure functions, Mapping.
[Notebook] -
November, Thursday 29; Map*, Replacement Rules.
[Notebook] -
December, Tuesday 4; visualization.
[Notebook]
-
December, Thursday 6; Numerical computations
[Notebook]
Programming. Sound [Notebook] - December, Tuesday 11; Python. (not in the final exam)
- December, Thurday 13; Python. (not in the final exam) [github]
- December, Tuesday 18; Solution of HW3, exercises.
-
January, Tuesday 8; C, part 1.
[Archive] -
January, Thursday 10; C, linking, libraries; Makefiles.
[Archive] -
January, Tuesday 15; C, part 3.
[Archive] -
January, Thursday 17; C, part 4.
[Archive] -
January, Tuesday 22; C, part 5.
[Archive]
-
January, Thursday 24; C, wrapping up.
[typedef], [structs] - January, Tuesday 29; licensing, final exam discussion.
- January, Thursday 31; HW4, final exam discussion.
- Exam I: Thursday, February 14, 5-7.30pm.
- Exam II: Thursday, March 14, 5-7.30pm.
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 languagesMatlab
Floating point arithmetic
Conditioning
Mathematica
Maps, functions
Fixed & high-precision numbers; symbols
Imperative vs. functional programming
Data visualization
C
Performance
Numerical libraries