At 5:26 PM -0700 7/25/02, Kirby Urner wrote:
At 07:59 PM 7/25/2002 -0400, Mitchell L
Model wrote:
Just joined list and haven't taken the
time to read the archives yet, so maybe
this is a silly post, but I thought it worth putting out there that I
will be
teaching an Introduction to Programming for non-computer science
majors at
Wesleyan University this fall, having just taken a position there as a
visiting
professor. I've convinced the other Computer Science faculty
involved to
abandon their
I applaud your enthusiasm for Python, which is a great language
for
beginners, as well as more advanced programmers.
I think a central question for educators is "Python plus what
else?"
Because, even if Python is eminently teachable, we always want to
provide experiences and familiarity with multiple languages.
A course which produced students who mostly turned up their nose
re other languages and said "no thanks, just Python for me"
will
have failed, IMO (especially considering the fact that Python is
written in C, Jython in Java). Python should be used as a way
to
deepen appreciation for concepts and languages across the board.
Python is so good partly because it provides familiarity with
concepts that'll come up again and again, no matter what
tools
you're using.
Good points. Remember, though, that this is the
introductory course for students not planning to major in Computer
Science. They don't necessarily need exposure to multiple
languages, since the goal is simply to introduce the concepts and
techniques of computer programming and develop basic competency in
writing computer programs. However, we will next face three
questions related to your challenge:
What language to use in the introduction to programming
for potential majors -- C++? Java? Python? (Scheme was used for
several years some years past, something I have a lot of sympathy for
but which tends not to work out in practice because the surrounding
computer culture is so different than Lisp's.)
Next semester I will teach the usual data structures
course, to students who will have been taught Java (I think) in the
introductory course. Should I do it in Java? do a quick
immersion to Python and use that? Use several languages?
(The nature of an introductory data structures course has changed
tremendously since I started teaching around 1980, primarily because
contemporary languages provide in their libraries or easily accessible
external modules most of the data structures the implementation of
which the course used to spend most of the time discussing. Now
we can teach the concepts and use of data structures if we want, and
spend less time on the tedious implementation details -- though of
course some of those should be at least shown, we no longer have to
rub student noses in them.)
What do we do about students who take the non-major
introduction and to their surprise find themselves wanting to go on in
Computer Science? They're not ready for the second semester data
structure course, because they missed a lot of the conceptual material
that's in the introduction for majors but not in the introduction for
non-majors. But it might be silly to have them sit through
another introductory programming course, because they will already
know the basic techniques. I don't think Wesleyan has the staff
to offer yet another low-level course, in order to provide non-majors
with an appropriate transition into the major sequence.
--
Mitchell L
Model
Visiting
Associate Professor
Computer Science