On Mon, Feb 1, 2010 at 12:45 PM, David MacQuigg <macqu...@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@python.org > http://mail.python.org/mailman/listinfo/edu-sig > _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig