[Edu-sig] Python outside computer science
Rob Malouf
rmalouf at mail.sdsu.edu
Tue Feb 13 06:31:09 CET 2007
To turn things in a more constructive direction, let me start what I
hope will be a new discussion...
Most of what goes on on this list takes as a starting point that the
primary goal is to teach Python programming, or programming in general,
or computer science, or something in that vein. I'm sure there are a
lot of people in my position, though, who use Python in teaching but
aren't really teaching Python. I teach linguistics, and everything I
cover in class is must serve the overall goal of educating linguists.
Python is a useful tool, but that's all it is (for us), and it's just
one of many tools we use. Given limited class time, I'm afraid that if
I have to choose between either including something that will make my
students better linguists or will make them better programmers,
programming will lose.
I guess you could say that in class we use Python like physical
scientists use Matlab -- more as an application than as a programming
language. Python is widely used in traditionally non-computational
fields (linguistics, biology, geography), so I'm sure there's a sizeable
community of people who use Python in this way. So, if any of you are
out there... what have you found works well? What doesn't? What
textbooks do you use (if any)? I find that most of the standard intro
Python texts aren't suitable for me. Zelle's book, for instance, is
great in a lot of respects, but it's got too much emphasis on graphics
for me to use it. Not that that stuff isn't interesting and useful,
it's just that it would be too much of a detour from my primary learning
objectives. I've been using Gauld's book, but the student's don't seem
enthusiastic about it. What books are the biologists using?
Another thing I'm wondering about is how multi-course sequences are set
up. Here at SDSU our computational linguistics M.A. program nominally
takes four semesters, three semesters of coursework and one semester of
thesis writing. We've got a lot of specialized material to cover in
that time. Plus, students often come in with zero background in
computation or math (or, often, linguistics), so we've got a fair bit of
remedial work to do to get them up to speed. And, to make things even
more complicated, non-specialists also take computational linguistics
courses, so it's not unusual for me to have, say, a high school English
teacher going for a multi-cultural education certificate in my one of my
classes. In fact, I depend on that happening to meet my minimum
enrollment numbers, which means I can't afford to drive off potential
students who don't really want to spend a term learning to program (not
that they're *afraid* of programming, just that that's not what they
choose to spend 15 weeks of their life doing).
So, given the constraints, the way we've structured things involves very
little time devoted purely to teaching Python or programming. I spend
maybe a third of a term on Python in the first semester in a course that
covers a lot of other computational tools and methods. Then throughout
the more advanced courses we sneak in Python concepts here and there, as
needed to address problems that come up, so by the end of two years the
hope is students will have absorbed enough programming knowledge for
them to get a job. Of course, the alternative is just to take a
semester out at the beginning and devote it to teaching Python, before
we move on to the linguistics. We could possibly join forces with other
Pythonic departments on campus to solve the minimum enrollment problems,
though that mean some of the more advanced material would have to be cut
from the end of the sequence to make it fit in three semesters. How do
other non-CS computational programs work? What are some of your
experiences?
---
Rob Malouf <rmalouf at mail.sdsu.edu>
Department of Linguistics and Asian/Middle Eastern Languages
San Diego State University
More information about the Edu-sig
mailing list