In 1999, I started a course (IN228, renamed to INF3331) about scientific scripting at the University of Oslo. The purpose was to use a real scripting language, primarily Perl, to do all the administrative computer work associated with scientific investigations. During the 90s we had tried to throw the “Camel Book” for Perl4 and the “Unix Power Tools” book at people, but few (if any) understood why and how they should apply such tools to their scientific work.
Within a couple of years, we naturally moved from Perl to Python as the primary scripting language, because Python did the same as Perl, but with a more readable syntax and hence easier maintenance. Students picked up Python significantly faster than Perl, and we started realizing the pedagogical strengths of the Python language. I wrote a book for the course, but the publisher was initially only modestly interested because the market was considered too small. Our gut feeling, however, told that scripting with Python with time would gain a significant position in the scientific computing community. At the time of this writing, this is a fact. Over 2000 students have completed the course, and the book has been very popular world wide.
The course addressed experienced Fortran, C, C++, or Java programmers and aimed at teaching them the power of a dynamically typed environment. Early in the 2000s, our research group started using Python for scientific computations, not only scripting. Our students used Python (with NumPy, SciPy, and friends) as a MATLAB replacement and migrated slow parts of the code to Fortran or C++ when needed. It stroke us that students should learn about this effective numerical computing environment as early as possible.