[Edu-sig] Sage, SciPy or continue with MatLab ???

David Joyner wdjoyner at gmail.com
Mon Feb 1 20:57:44 CET 2010


On Mon, Feb 1, 2010 at 12:45 PM, David MacQuigg
<macquigg at ece.arizona.edu> wrote:
> kirby urner wrote:
>>
...

>
> I'm putting together a proposal for a freshman-level course in CS.
>  Currently we have three courses - one for CS majors (Java), one for
> computer engineers (C), and one for physics and astronomy (C).   Matlab is
> also used in many of our science and engineering classes.  Here it is just a
> tool, not a subject of study in itself.
>
> The course I will propose could serve all departments, and will cover the
> fundamentals common to all.  It could also be an excellent high school
> preparation for college.  The language will almost certainly be Python,
> although we may get as far as introducing a little Java or C.  (This could
> perhaps be an option in the last three weeks - Java for CS majors, and C for
> engineers and scientists.)
>
> Graphics will be very important - everything from simple 2D plots to 3D
> animations.  The focus will be on computing fundamentals, however, not the
> details of how these packages work.  They are just tools to visualize an
> equation or process and aid in the understanding of concepts.
>
> Examples contributed by faculty in math, science and engineering will be an
> outstanding feature of this course.  Here is where we need more than the
> standard library in Python.  We need a Fourier transform that "just works"
> and produces beautiful spectra of various waveforms and images.  We need the
> functionality of MatLab, without its drawbacks.
>
> I've been leaning toward Python/SciPy/MatPlotLib, but recent discussions of
> Sage have me interested in looking at alternatives.  What are the factors we
> need to consider?
>
> 1) Features.  Does the package do everything we might want, now and in the
> future when students use it for later classes and on the job.
> 2) Simplicity.  Is it easy to set up and use on student computers (Windows,
> Mac or Linux)?  Is it easy to learn?  Is it open-source, so students can dig
> into it as deep as they like?   Is it available everywhere without legal
> complications, e.g. MatLab's license?

I think there are binaries for python/scipy at enthought.com for various
platforms, but I'm not positive. You might want to check them out.

IMHO Sage will do what you want but for the windows users (mac+linux installs
are actually fairly easy - with binaries at sagemath.org or you can
compile form source)
you have 2 options:
your students will run Sage from a virtual machine environment (virtualbox is
used, I believe) or run sage from a server (such as at sagenb.org, but
presumably
local to your campus). I am teaching a python+math computation class
now and allow students to either use pure python or sage via a local
sage server. Sage includes scipy and sympy.

I do not have a good argument against matlab. If you and your students
can afford it and you think they need to learn matlab for their career-path
then there is little I can say against that. However, if cost is an issue then
octave may be an option, as it is apparently 90% matlab compatible.

<rant> If you are going to teach students programming you should not start them
out with matlab.</rant> (Sorry, had to get that out of my system.)

I should add that Sage servers are supposed to be able to work with octave
commands (in place of Sage) but I have not tried it. You might want to go
to sagenb.org and sign up for an account and do a "test drive" before
you make a final
decision.



> 3) Universality.  This is more than just popularity (counting users).   We
> need a minimum level of community support (discussion groups, interest from
> employers, programs on SourceForge, books from Amazon, etc).  Availability
> of textbooks is a special consideration in this category.  Ruby, Prothon,
> Scala, etc. (one up from Python?) have nothing comparable to
> Litvin/Zelle/Goldwasser.
> 4) Conformity.  Does it fit in well with existing curricula?  Is there an
> easy transition to Java, C, MatLab, etc.  Can it be used as just a tool in a
> course that has nothing to do with programming?
>
> This last factor is especially difficult for us idealists.  We might like to
> toss out everything in the status quo, and start with a clean slate, but
> that approach will get us nowhere.  We need options all the way from a
> one-hour demo to a whole course centered on the use of these tools.
>
> Before comparing these packages, let's discuss the factors above.  Have I
> left out anything important?


You left out the sympy+octave option, which is cross-platform and
might server your
needs (sympy.org and octave.org).


>
> -- Dave
>
> ************************************************************     *
> * David MacQuigg, PhD    email: macquigg at ece.arizona.edu   *  *
> * Research Associate                phone: USA 520-721-4583   *  *  *
> * ECE Department, University of Arizona                       *  *  *
> *                                 9320 East Mikelyn Lane       * * *
> * http://purl.net/macquigg        Tucson, Arizona 85710          *
> ************************************************************     *
>
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>


More information about the Edu-sig mailing list