[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.&nbsp; 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 &quot;Python plus what
else?&quot;<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 &quot;no thanks, just Python for me&quot;
will<br>
have failed, IMO (especially considering the fact that Python is<br>
written in C, Jython in Java).&nbsp; 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.&nbsp; Remember, though, that this is the
introductory course for students not planning to major in Computer
Science.&nbsp; 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.&nbsp; 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?&nbsp; (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.&nbsp; Should I do it in Java? do a quick
immersion to Python and use that?&nbsp; Use several languages?&nbsp;
(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.&nbsp; 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?&nbsp; 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.&nbsp; But it might be silly to have them sit through
another introductory programming course, because they will already
know the basic techniques.&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>Mitchell L
Model<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </x-tab>Visiting
Associate Professor<br>
<x-tab>&nbsp;&nbsp;&nbsp; </x-tab>Computer Science</div>
</body>
</html>
--============_-1184475507==_ma============--