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]

Kirim email ke