[SciPy-user] Matlab, Scipy and teaching science

Peter Bowyer peter at mapledesign.co.uk
Thu Oct 20 03:24:19 CDT 2005


I'm new to this list, so let me introduce myself.  I'm currently 
doing a Masters investigating ways to teach physics students how to 
program (and to investigate how much programming knowledge they need, 
given 2/3 of the class don't continue on in physics).

In the past as with most physics departments the course was taught as 
an introduction to C or Basic.  This worked fine up to the late 90s 
when most students had experience of programming.  The structure here 
has been to have an introductory course in the 2nd year teaching 
people how to program, and then an optional course in the 3rd year 
introducing computational physics.

There's a fundamental shift in principle in what I am considering, 
moving from the "How to implement numerical integration and 
differential equation" point, to "How to use libraries by others to 
carry out your calculations".  The course currently lasts all of 12 
hours and less than 5% of the students taking it have any knowledge 
of programming at the start.  I did not need to use the material 
taught during the course in the rest of my degree, something which I 
am hoping to improve by changing the angle the course is coming from.

My idea was to teach the basics using Python and scientific 
modules.  However, the question I am consistently coming up against 
is "Why not teach the students Matlab?".  It's a very good point and 
one I can think up no clear answer for.  If the students stay in 
Physics or a related field they will be using Matlab (and 
C/C++/Fortran if needed).  Therefore is there any reason not to teach 
Matlab as the introduction to programming?

My arguments at present are that Matlab is a proprietary tool so the 
cost to students in obtaining copies will be not inconsiderable 
(considering it will only be used for a short course), and that 
Matlab is a specialised tool, so those not interested in going on 
into a physics related field will not find it of any use (unlike Python).

The arguments for Matlab are stronger:
1) It's a standard tool, widely used
2) It is easier to install and maintain (discounting the Enthought 
edition for a moment, Python is CRAP compared with other langauges - 
where is the Package manager to make life easier?)
3) The editor has a good interface (v7 and above) which IDLE lacks 
(no data inspector 'right there')
4) Integrated help for all the scientific functions

Are there any reasons you can think of that Python makes a better 
choice than Matlab?  I myself would far rather use Python (I have 
ideas about how VPython can help the students understand Python) but 
need a more robust reason than a handwaving argument about 
"3D...easier for students to visualise...".

Many thanks, and apologies if this is badly off-topic for the list.

More information about the SciPy-user mailing list