# Experience with Using Python for Teaching Scientific Computing

**Hans Petter Langtangen** (`hpl at simula.no`)

#### May 15, 2014

**Summary.** This essay explains why and how we have chosen Python as the language
of choice for teaching scientific computing at the University of Oslo.
By teaching students Python and numerics from day one, various bachelor
programs have taken advantage of this knowledge and reformed classical
science courses by using programming and numerical simulation
to solve mathematical problems. We have learned several
lessons:

- The choice of Python as a teaching language for scientific computing
has been a great success and is highly recommended.
- Python provides a natural, continuous glue between MATLAB-style
"flat programs", procedural programming, object-oriented programming,
generative programming, and even functional programming.
- It is possible to treat quite advanced problems very early in
the studies. For example, at the end of the first semester our students
implement an object-oriented toolbox for
solving a wide class of nonlinear vibration problems (!).
- Replacing classical mathematical solution techniques by
programming and numerical simulation in science courses is
indeed challenging, but possible and often natural. The experience is very
positive: the relevance of mathematics is much increased and programming
is a great pedagogical tool for learning abstract mathematical thinking.
- Students come with all sorts of laptops. Force everyone to use
Ubuntu as this minimizes the technical hassle with
installing complicated mathematical software.

PDF version of this document (for printing)

Read »