[Edu-sig] Re: Python at Wesleyan
Mitchell L Model
MLModel@wesleyan.edu
Thu, 25 Jul 2002 21:29:47 -0400
--============_-1184475507==_ma============
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
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
--============_-1184475507==_ma============
Content-Type: text/html; charset="us-ascii"
<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
--></style><title>Re: Python at Wesleyan</title></head><body>
<div>At 5:26 PM -0700 7/25/02, Kirby Urner wrote:</div>
<blockquote type="cite" cite>At 07:59 PM 7/25/2002 -0400, Mitchell L
Model wrote:
<blockquote type="cite" cite>Just joined list and haven't taken the
time to read the archives yet, so maybe<br>
this is a silly post, but I thought it worth putting out there that I
will be<br>
teaching an Introduction to Programming for non-computer science
majors at<br>
Wesleyan University this fall, having just taken a position there as a
visiting<br>
professor. I've convinced the other Computer Science faculty
involved to<br>
abandon their</blockquote>
</blockquote>
<blockquote type="cite" cite><br>
I applaud your enthusiasm for Python, which is a great language
for<br>
beginners, as well as more advanced programmers.<br>
<br>
I think a central question for educators is "Python plus what
else?"<br>
Because, even if Python is eminently teachable, we always want to<br>
provide experiences and familiarity with multiple languages.<br>
<br>
A course which produced students who mostly turned up their nose<br>
re other languages and said "no thanks, just Python for me"
will<br>
have failed, IMO (especially considering the fact that Python is<br>
written in C, Jython in Java). Python should be used as a way
to<br>
deepen appreciation for concepts and languages across the board.<br>
<br>
Python is so good partly because it provides familiarity with<br>
concepts that'll come up again and again, no matter what
tools</blockquote>
<blockquote type="cite" cite>you're using.</blockquote>
<div><br></div>
<div>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:</div>
<div><br></div>
<blockquote>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.)</blockquote>
<blockquote><br></blockquote>
<blockquote>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.)</blockquote>
<blockquote><br></blockquote>
<blockquote>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.</blockquote>
<div><br></div>
<x-sigsep><pre>--
</pre></x-sigsep>
<div><br>
<x-tab> </x-tab>Mitchell L
Model<br>
<x-tab> </x-tab>Visiting
Associate Professor<br>
<x-tab> </x-tab>Computer Science</div>
</body>
</html>
--============_-1184475507==_ma============--