Got this from the internet. It's interesting idea to see why the
scientists, regardless of their
major or knowledge base, should learn how to program.

http://cns2.uni.edu/~wallingf/blog/archives/monthly/2007-11.html#e2007-11-20T13_28_03.htm


KOkon.

Programming Scientists

Should scientists learn to program? This question arose several times
throughout the SECANT workshop, and it was an undercurrent to most
everything we talked about.

Most of the discipline-area folks at the workshop currently use
programming in their courses. Someone pointed out that this can be an
attractive feature in an elective science course that covers
computational material -- even students in the science disciplines
want to learn a tool or skill they know to be marketable. (I am
guessing that at least some of the times it may be the only thing that
convinces them to take the course!)

Few require a standard programming course from the CS catalog, or a
CS-like course heavy in abstraction. That is usually not the most
useful skill for the science students to learn. In practice, the
scientists need to learn to write only small procedural programs. They
don't really need OOP (which was the topic of a previous talk at the
workshop), though they almost certainly will be clients of rich and
powerful objects.

Python was a popular choice among attendees and is apparently quite
popular as a scripting language in the sciences. The Matter and
Interactions curriculum in physics, developed by Chabay and Sherwood,
depends intimately on simulations programmed -- by physics students --
in VPython, which provides an IDE and modules for fast array
operations and some quite beautiful 3-D visualization. I'm not running
VPython yet, because it currently requires X11 on my Mac and I've
tried to stay native Mac whenever possible. This package looks like it
might be worth the effort.

A scripting language augmented with the right libraries seems like a
slam-dunk for programmers in this context. Physics, astronomy, and
other science students don't want to learn the overhead of Java or the
gotchas of C pointers; they want to solve problems. Maybe CS students
would benefit from learning to program this way? We are trying a
Python-based version of a media computation CS1 in the spring and
should know more about how our majors respond to this approach soon.
The Java-based CS1 using media computation that we ran last year went
well. In the course that followed, we did observe a few gaps that CS
students don't usually have after CS1, so we will need to address
those in the data structures course that will follow the Python-based
offering. But that was to be expected -- programming for CS students
is different than programming for end users. Non-computer scientists
almost certainly benefit from a scripting language introduction. If
they ever need more, they know where to go...

The next question is, should CS faculty teach the programming course
for non-CS students? CS faculty almost always say, "Yes!" Someone at
the workshop said that otherwise programming will be "taught BioPerl
badly in a biology course by someone who only knows how to hack Perl.
Owen Astrachan dared to ask "'taught badly' -- but is it?" The science
students learn what they need to solve problems in their lab. CS profs
responded, well, but their knowledge will be brittle, and it won't
scale, and .... But do the scientists know that -- or even care!? If
they ever need to write bigger, less brittle, more scalable programs,
they know where to go to learn more.

I happen to believe that science students will benefit by learning to
program from computer science professors -- but only if we are willing
to develop courses and materials for them. I see no reason to believe
that the run-of-the-mill CS1 course at most schools is the right way
to introduce non-CS students to programming, and lots of reasons to
believe otherwise.

And, yes, I do think that science students should learn how to
program, for two reasons. One is that science in the 21st century is
science of computation. That was one of the themes of this workshop.
The other is that -- deep in my heart -- I think that all students
should learn to program. I've written about this before, in terms of
Alan Kay's contributions, and I'll write about it again soon. In
short, I have at least two reasons for believing this:

    * Computation is a new medium of communication, and one with which
we should empower everyone, not just a select few.
    * Computer programming is a singular intellectual achievement, and
all educated people should know that, and why.

Big claims to close an entry!

Kirim email ke