Buat para penggemar Python...
Dari http://www.oreilly.com/frank/
An Interview with Jeff Elkner
Jeff Elkner is a computer programming teacher at Yorktown High
School in Arlington, Virginia, USA. I met Jeff at the Python Conference in
January. I was inspired by his talk, entitled Using Python in a High
School Computer Science Program because it demonstrated that a high school
teacher had begun delivering on the promise of Python as a first teaching
language. He brought three of his high school students to the conference
with him to discuss the projects they were working on.
Later, at a Birds of a Feather session about the future of Python as a
teaching language for middle school and high school students, Jeff was a
lone, practical representative of classroom experience among a sea of
theorists, professional programmers, computer science majors and (gasp!)
even a book editor. He spoke of ways that teachers could use the methods
of Open Source development to create and share teaching materials that
could form the basis of a new programming curriculum based on Python.
I felt strongly that I had to follow up on Jeff's thoughts and asked to
interview him and a couple of his students. I conducted the following
interview in February with Jeff and two of his Yorktown High students, Lex
Berezhny and Virginia Hafer. Lex is a junior intending to take the second
year of computer science next year. He was one of the students that
joined Jeff at the Python Conference. Virginia is a senior; this class
will be her only high school programming course.
Frank:
Jeff, what led you to use Python in your
first-year computer programming class?
Jeff:
We had switched to teaching C++, from
Pascal, when the College Board switched
to C++ for the AP exam. I was having a
great deal of difficulty with C++. I was
turning off 50 percent of my students. I
found myself fighting with the syntax and I
was really frustrated trying to explain
clearly what computer science was about
while using a language that seemed to get
in the way.
So I went looking for something else. At
that same time, there was a high school
Linux User's Group discussion about
which language was best for teaching
programming in a high school. Someone
on that list suggested Python, and over
half of the people on the list jumped in and
concurred that it would be the ideal
choice for a first language. That's what
led me to investigate it.
Frank:
I'm surprised that there was that much
awareness of a scripting language like
Python. Do you think the awareness
stems from the fact that your high school
is located near Washington D.C., the
home of Guido van Rossum, Python's
creator, and the Center for National
Research Initiatives (Guido's employer
and the sponsor of much Python
development)? Or, do you think there are
that many teachers across the country
who are aware of Python?
Jeff:
Most of the participants in the discussion
aren't teachers; they are students. This
mailing list is for a high school Linux
users' group. Python comes distributed
with Red Hat and most other Linux
distributions. So I think that that crowd is
a little more aware of what's going on
with Python than most other folks would
be.
Frank:
It seems to me that it's not unusual for
students to lead their computer science
teachers into areas where the teachers
wouldn't ordinarily go. Linux is certainly
one of those areas. How were you able to
persuade your department and
administration to let you use this
non-standard language?
Jeff:
I am very fortunate to have a department
head who is supportive of things like this.
She is interested in innovation and in
trying new things. I asked permission
from her to pilot it here at our high school,
and she readily gave me that permission.
So we're just using it at Yorktown now. I
think it's working out really well, and I'm
hoping that we'll be able to extend it into
other schools in the county in the future.
Frank:
Are there other instructors teaching the
same course with C++?
Jeff:
Yes.
Frank:
So you will then have the ability to
compare experiences. Are you doing any
sort of official evaluation, or is evaluation
mostly anecdotal?
Jeff:
It's definitely anecdotal at this point. I'm
hoping to talk to Guido about establishing
some metrics as part of his Computer
Programming for Everyone initiative.
One useful measure, in a couple of years,
will be the success of students in the AP
course because they'll all be taking the
AP exam.
Frank:
As I recall from your presentation at the
Python Conference, everyone who goes
on to the second year will be taking C++.
Jeff:
Correct.
Frank:
It will be a very interesting measure, then,
because what you're really testing is
whether Python or C++ itself is a better
introduction to C++.
Jeff:
Right. I think Python is better.
Frank:
I'll be very happy if that turns out to be the
case. I'd like to ask Lex and Virginia a
couple of questions. How do you feel
about Python? I know you can't compare
it to anything else, but did you find over
the year that you were able to learn
programming pretty well? And did you
enjoy computer science?
Lex:
I have programmed with several other
languages. I started with PHP, which is a
Web scripting language. Then I started
playing around with Perl, and soon after
that, I was introduced to Python. At first, I
didn't really like Python because I thought
it was too simple. But when I rewrote
several Perl programs in Python, I saw
how I could write better and more
readable code. I also noticed how much
more concise Python code is and how
quickly I could write large programs.
Frank:
It's interesting that you didn't start with
Visual Basic or C or any supported
standard language, but with two other
Open Source scripting environments. I
would think that you followed an unusual
path, in terms of what a teacher or a book
editor would suggest. But I wouldn't be
surprised if your experience is more
common for people who are comfortable
looking around on the Web. What drew
you to PHP?
Lex:
I needed a simple scripting language.
Frank:
But how did you come across PHP? PHP
is a language that doesn't even have any
good books yet.
Lex:
I wanted to build a dynamic website, and I
signed up with a service provider that
offered PHP. They also had Perl and a
few other languages, but I thought PHP
would be the easiest to learn. They also
had a lot of example PHP scripts. I don't
think there's any other language that has
so many, so I started learning PHP from
those examples.
Frank:
Virginia, how did you get started?
Virginia:
I began programming when I started the
class this year.
Frank:
So you've been programming now for
about half an academic year. What
interesting tasks are you able to take on
with half a year of Python?
Virginia:
I've been working on a program to list all
the wrestlers on the Yorktown team and
maintain a record of their matches. I want
it to do some of the things which Excel
does in Windows in terms of maintaining
and sorting lists.
Frank:
What led you to take computer science in
your senior year?
Virginia:
I hadn't had the opportunity before my
senior year because my schedule was full.
Also, my dad really pushed computer
science because he thought it would be
good for me.
Frank:
Jeff, what aspects of computer science
are you able to teach more clearly now
because of Python?
Jeff:
It's still a little early to tell, but we've
completed in half a year what we used to
do in a year. I have been able to teach
procedural programming techniques,
introduce students to functions, and get
them to use them with a good degree of
facility. We're going to be starting
object-oriented programming in the next
couple of weeks.
Virginia is working with a group of
students in class who are writing a
Pokemon game program. That idea came
out of the discussion at the Python
conference. It's an interesting problem.
It's large enough to be pretty exciting, I
think, but still doable. I don't think we
could have done anything like that in any
other language.
Frank:
So, the fact that Python is fairly abstract
and hides a lot of the details allows people
to get real stuff done, instead of getting
bogged down in implementation?
Jeff:
Absolutely. For example, string handling
is a nightmare in C++, while reading a
string and writing it out to file in Python is
such a pleasure. I'm having so much fun
with it. It's certainly making programming
a lot more fun to teach.
Frank:
I'm interested that there are students like
Virginia who are getting one year of
computer science, and will not, through
your school, get instruction in C++. Are
you confident, Jeff, that one year of
Python programming will be worthwhile
to them?
Jeff:
I think it will be worthwhile because
Virginia is considering a number of
possible futures. For example, she might
be a physics major. If she wants to script
an application quickly, using Python will
be far more productive than C++. It is
easier to use, so she can get real work
done. If she doesn't go on to major in
computer science, she has a tool that's
useful to her.
Frank:
It does seem like there were a lot of
scientists at the Python Conference.
Jeff:
I'm going to introduce my students to C in
the last month of the year and talk a little
bit about gluing the languages together. So
Virginia will get an introduction to C as
well.
Frank:
That's good. Lex, are you going on to take
the second year of programming?
Lex:
Yes.
Frank:
Is Python a language that you'll continue
to use even after learning C++?
Lex:
Yes. For example, we're writing a large
program called Student Portfolio
[summarized by Lex as an appendix to
Jeff's Python Conference proceedings],
and using Python over C++ is a great
advantage. I will always use Python for
web applications.
Frank:
I recall you mentioning that program at
the Python Conference. Is it going along
okay?
Lex:
Yes, we have two programmers working
on it, Jonah Cohen and myself.
Frank:
Is that a database application?
Lex:
Yes. We're using PostgreSQL and the
PyGresql module. Python is a great glue
language.
Frank:
What about parents, particularly parents
who want their child to take the AP test?
Have you gotten any reactions from
them?
Virginia:
My brother took computer science from
Mr. Elkner a couple years ago, and my
parents both programmed, so they are
pretty familiar with the Yorktown
curriculum. When I went home after the
first day of school and told them that I was
learning to program in Python, they were
concerned as to how useful Python would
be compared to C++. But they've seen
some of the stuff I do. After all, I've got a
web page up, and they don't. So they're
fine with it. They figure everything is all
right as long as I am learning to program,
and I am. I'm currently doing stuff that
they never did when they programmed in
FORTRAN.
Frank:
Jeff, have you heard from concerned
parents?
Jeff:
On Back to School Night, I announced
quite loudly that I was going to be using
Python this year, and nobody objected.
Actually, I'm pleasantly surprised that, so
far, I have not heard any complaints.
Frank:
Jeff, one of the issues that you talked
about at the Python Conference was the
need for teaching materials. Can you talk
a little bit about that? What does Python
need in order to be useful to teachers who
are now using standard languages like
Pascal and C++?
Jeff:
They need textbooks geared toward high
school students, combined with sample
lesson plans and work sheets--the types
of resource materials that exist for all of
the other programs that we have at the
high school.
Frank:
I recall that you are adapting a book for
your class's use.
Jeff:
Yes. I'm adapting How to Think Like a
Computer Scientist, by Allen Downey.
Frank:
Is he allowing you to adapt his book?
Jeff:
Oh yes. In fact, he's even encouraging me
to work on it. It's an open document. It
currently uses C++, but I'm adapting it
for Python.
I think we'll be able to overcome the
shortage of Python teaching materials in a
very short period of time because we will
be leveraging the spirit of the Open
Source software movement. I've already
found, coming out of the Python
Conference, a number of people willing to
develop and send me material. Python
programmers are used to sharing things,
so when they start to create materials, the
culture will encourage them to work
together.
Frank:
So we can do a sort of Open Source
development of educational materials to
support an Open Source language?
Jeff:
I think that's what we need.
===========================================================================
I Made Wiryana (0521-106 5328) Universitas Gunadarma - Indonesia
Rechnernetze und Verteilte Systeme http://nakula.rvs.uni-bielefeld.de/made
Universitaet Bielelfeld Check my e-zine :
[EMAIL PROTECTED] http://nakula.rvs.uni-bielefeld.de/majalah
Pendukung Open Source Campus Agreement - legal, cerdik, mandiri dan hemat
===========================================================================
* Gunadarma Mailing List -----------------------------------------------
* Archives : http://milis-archives.gunadarma.ac.id
* Langganan : Kirim Email kosong ke [EMAIL PROTECTED]
* Berhenti : Kirim Email kosong ke [EMAIL PROTECTED]
* Administrator: [EMAIL PROTECTED]